Odprtokodna programska oprema
Odprto kodna programska oprema je programska oprema pri kateri imamo prost dostop do kode, v to kodo lahko vsakdo posega in jo razpečuje. Veljati pa morajo naslednji pogoji:
- Svobodna redistribucija. Licenca ne sme omejevati prosto prodajo programske opreme kot komponente združenih programskih paketov. Za programsko opremo se tudi ne sme zahtevati nikakršne vrste plačila.
- Izvorna koda. Program mora vsebovati izvorno kodo ali pa mora biti prosto dostopna. Prav tako ni dovoljeno zakrivanje kode ali kakršnokoli oteževanje dostopa do nje.
- Izpeljana dela. Licenca more dovoljevati modifikacije in izdelavo izpeljanih del iz te programske opreme, prav tako mora dovoljevati razširjanje teh del pod istimi licenčnimi pogoji kot original.
- Integriteta avtorja izvorne kode. Licenca lahko omejuje, da morajo biti izpeljani izdelki distribuirani pod drugačnim imenom.
- Prepoved diskriminacije med osebami in skupinami. Licenca ne sme diskriminirati nobene osebe ali skupino oseb.
- Prepoved diskriminacije posameznih področij dejavnosti. Licenca ne sme nikogar omejevati pri uporabi programa na posameznem področju dejavnosti.
- Distribucija Licence. Licenčne pravice se nanašajo na vsakogar, ki prejme program brez kakršnih koli postopkov.
- Licenca ne sme biti specifična za produkt. Pravice, vezane na program, ne smejo biti odvisne od tega, ali je program del določene programske distribucije.
- Licenca ne sme omejevati druge programske opreme. Licenca ne sme imeti omejitev nad programsko opremo, ki je razširjena skupaj z licenčno programsko opremo.
- Licenca more biti nevtralna do tehnologije.
Prednosti
Obstaja kar nekaj prednosti odprte programske opreme pred komercialno, najbolj pomembna pa je možnost spreminjanja in popravljanja kode. To omogoča neomejeno spreminjanje in popravljanje programske opreme. Prva prednost tega je, da se izognemo slabosti enega samega razvijalca oz. ponudnika, ker lahko izvorno kodo spreminja vsak, kar pomeni da ni omejitve pri podpori programske opreme kot pri komercialni programski opremi. Saj, ko se podjetje odloči prenehati nuditi podporo programski opremi ta nima več podpore zaradi licence nad programsko opremo. Druga prednost spreminjanja in popravljanja kode pa je fleksibilnost oz. svoboda programske opreme, saj lahko vsakdo spremeni njeno funkcionalnost in obliko.
Ostale prednosti
- ni stroškov nabave programske opreme.
- nižja ranljivost za viruse, manj varnostnih lukenj, posledično manj napadov na programsko opremo.
Slabosti
- največja slabost odprto kodne programske opreme so nedokončani izdelki, saj veliko programske opreme ne doseže končnega izdelka ampak ostane v tako imenovani beta fazi razvoja.
- v večini primerov je problem neprijazen uporabniški vmesnik, kateri oteži delo s programom predvsem uporabnikom, ki se ne spoznajo na računalništvo.
- kompatibilnost programa z operacijskim sistemom.
- podpora je lahko tako kot prednost tudi slabost pri odprto kodnem programju, saj ni zagotovljena od nikogar oz. je lahko slabo izvedena.
- težak začetek projekta, saj mora biti zadostno število zainteresiranih in motiviranih razvijalcev, da dokončajo projekt.
Zgodovina in razvoj
Open Source Definition si je zamislil Bruce Perens, nekdanji vzdrževalec Debian GNU/Linuxa. Leta 1997 je po elektronski pošti odprl razpravo z ostalimi sorazvijalci. Med drugim je zapisal tudi to:
Debian bo ostal 100 odstotno prosto programje, da bodo skupnosti poročali o novitetah in ne bodo prikrivali napak. V duhu tega besedila in Debian Free Software Guidelines (DFSG) je nastal OSD, ki pa ni licenca ampak standard, na katerem slonijo licence.
Uporaba in avtorske pravice pri odprto kodni programski opremi
Pogoji uporabe in distribucije posameznih delov odprte programske kode ali programskih produktov kot celote so določeni v okviru ene od licenčnih pogodb, ki jih določa združenje Open Source Initiative (OSI) oziroma v okviru pravic in načel, ki jih uveljavlja združenje Free Software Foundation (FSF) . Večina odprto kodnih licenc omogoča trajno last razvite programske rešitve. V teh primerih ni nujno slediti zahtevam, po včasih neželenih, nadgradnjah informacijskih sistemov pod pritiski lastnikov licenčnih pravic. Vsak avtor računalniškega programa ima samodejno avtorske pravice nad programom in ima možnost omejiti pravice kopiranja, uporabe ali spreminjanja svojega programa. Uporabnik pridobi pravico do uporabe programa v skladu z dovoljenji avtorja. Licenca točno določa, kaj uporabnik lahko počne s programsko opremo, kakšne pogoje mora izpolnjevati in kakšne so njegove pravice. Glavni pogoj je seveda plačilo kupnine za programsko opremo. Odprta koda uporablja precej drugačen pristop, saj je programska oprema na voljo brezplačno, licenca, ki ureja pravice uporabnika, pa dovoljuje tudi spreminjanje programske kode. To dovoljuje vsem, da dodajo drugo funkcionalnost, popravijo napake v kodi ali naredijo program bolj učinkovit. Vsakdo lahko torej popravlja in spreminja programsko kodo in pravzaprav veliko ljudi to tudi počne. Število ljudi, ki prispevajo k rešitvi, se tako zelo poveča. Dovoljeno je tudi prodajati spremenjeno programsko opremo, ne da bi s prvim avtorjem delili dobiček. Prav tu je tudi ena od nevarnosti za programerska podjetja, saj licenca po navadi jasno zahteva, da je v primeru uporabe odprte kode treba tudi lastno rešitev, ki temelji na tej odprti kodi, ponuditi skupaj z izvorno kodo. Marsikateri ponudnik programske opreme se, razumljivo, težko sprijazni s tem. Licence, pod katerimi je na voljo odprta koda, se precej razlikujejo. Med najbolj uporabljanimi so: BSD, GPL, LGPL in MPL.
- Berkeley Software Distribution (BSD) licenca je zelo preprosta, saj dovoljuje uporabo programske opreme, distribucijo izdelka in izvorne kode. Dovoljeno je spreminjanje in vključevanje v drugo programsko opremo brez omejitev. Edina zahteva je, da se navede imena vseh avtorjev v izvorni kodi in dokumentaciji programa. Imen avtorjev ni dovoljeno uporabljati za promocijo izdelka brez predhodnega pisnega dovoljenja.
- GNU General Public Licence (GPL) je najbolj znana licenca, ki omogoča uporabo, kopiranje in distribucijo programske opreme. Dovoljena sta tudi spreminjanje programske opreme ali uporaba programske kode, vendar je distribucija programske opreme, ki temelji na programski opremi, licencirani po GPL, dovoljena le pod licenco GPL, to pa pomeni, da tovrstne programske opreme ni mogoče prodajati in ni mogoče omejevati njene uporabe. Sprememb ali dodatkov k programski opremi pa ni treba javno objaviti. Spremembe, ki si jih neko podjetje naredi zase, lahko ostanejo skrivnost. Obveza do objavljanja modifikacij in dodatkov nastane takrat, ko se oseba, ki je spremenila programsko opremo, odloči, da jo bo razpečevala.
- Library General Public License (LGPL) je variacija GPL licence in je namenjena programskim knjižnicam (na primer DLL), torej programom s funkcijami, ki jih je mogoče izkoristiti v drugih programih. Uporaba tovrstnih programskih knjižnic v nobenem smislu ne omejuje programa, ki jih uporablja. Gre torej lahko za komercialni izdelek in podobno. Spremembe knjižnice pa so lahko razširljive le v skladu z licenco LGPL, ki je v tem pogledu enaka licenci GPL, kar pomeni, da morajo biti razpečevane z izvorno kodo in brez omejitev uporabe.
- Mozilla Public Licence (MPL) je licenca, ki dovoljuje brezplačno uporabo in distribucijo programske opreme. Vsakdo, ki razpečuje spremembe ali dodatke k izdelku, mora dovoliti enake pravice za njegov kos programske opreme in kombinacijo izvirnega dela in njegove rešitve. Pogoj za distribucijo je tudi, da je izvorna koda na voljo, kar pomeni, da je lahko vključena v distribucijo, lahko pa je na voljo na kakšni spletni strani. MPL je dovoljeno vključevati tudi v licenčno programsko kodo v lastne izdelke, a mora biti za ta del na voljo izvorna koda.