Zamisel o brezplačni in odprtokodni programski opremi (Free and Open Source Software – FOSS) je v svetu, kjer digitalna tehnologija prevzema oblast, svetilnik dostopnosti, inovativnosti in skupinskega dela. FOSS pomeni temeljno spremembo pri ustvarjanju, souporabi in uporabi programske opreme.
FOSS ohranja pravice uporabnika programske opreme do državljanske svobode prek “štirih temeljnih svoboščin” proste programske opreme. Druge prednosti uporabe FOSS vključujejo nižje stroške programske opreme, večjo varnost pred zlonamerno programsko opremo, stabilnost, zasebnost, možnosti za izobraževalno uporabo in večji nadzor nad lastno strojno opremo.
Štiri bistvene svoboščine
Program je svobodna programska oprema, če imajo uporabniki programa štiri bistvene svoboščine:
- Svobodo, da program zaženete, kakor želite, za kakršen koli namen.
- Svoboda preučevanja delovanja programa in njegovega spreminjanja, da bo računal po vaših željah – predpogoj za to je dostop do izvorne kode.
- svoboda razširjanja kopij, da lahko pomagate drugim.
- svoboda, da kopije svojih spremenjenih različic razširjate drugim. S tem lahko celotni skupnosti omogočite, da ima koristi od vaših sprememb. Predpogoj za to je dostop do izvorne kode.
Program je torej prosta programska oprema, če uporabnikom ustrezno zagotavlja vse te svoboščine. V nasprotnem primeru je nesvobodna. V vsakem danem primeru morajo te svoboščine veljati za vsako kodo, ki jo nameravamo uporabljati ali za katero želimo, da jo uporabljajo drugi. Za primer lahko vzamemo program A, ki samodejno zažene program B za obravnavo nekaterih primerov. Če nameravamo razširjati program A v trenutni obliki, to pomeni, da bodo uporabniki potrebovali program B, zato moramo presoditi, ali sta tako program A kot program B svobodna. Če pa nameravamo program A spremeniti tako, da ne bo uporabljal programa B, mora biti prost samo program A; program B za ta načrt ni pomemben.
Prosta programska oprema je lahko komercialna
“Prosta programska oprema” ne pomeni “nekomercialna”. Nasprotno, prosti program mora biti na voljo za komercialno uporabo, komercialni razvoj in komercialno distribucijo. Ta politika je temeljnega pomena – brez nje prosta programska oprema ne bi mogla doseči svojih ciljev.
Malo podrobneje o štirih bistvenih svoboščinah:
- Svoboda izvajanja programa po lastnih željah
Svoboda izvajanja programa pomeni svobodo, da ga lahko katera koli oseba ali organizacija uporablja na katerem koli računalniškem sistemu, za katero koli splošno nalogo in namen, ne da bi morala o tem komunicirati z razvijalcem ali katero koli drugo določeno entiteto. Pri tej svobodi je pomemben namen uporabnika in ne namen razvijalca; kot uporabnik lahko program prosto uporabljate za svoje namene, in če ga distribuirate drugim osebam, ga te lahko potem prosto uporabljajo za svoje namene, vendar jim svojih namenov nimate pravice vsiljevati.
Svoboda izvajanja programa po vaših željah pomeni, da vam ni prepovedano ali preprečeno, da bi ga izvajali. To nima nobene zveze s tem, kakšno funkcionalnost ima program, ali je tehnično sposoben delovati v določenem okolju in ali je uporaben za določeno računalniško dejavnost.
Na primer, če koda samovoljno zavrne nekatere pomembne vhodne podatke ali celo brezpogojno odpove, je lahko program manj uporaben, morda celo popolnoma neuporaben, vendar uporabnikom ne odreka svobode izvajanja programa, zato ni v nasprotju s svobodo 0. Če je program prost, lahko uporabniki premagajo izgubo uporabnosti, saj svoboščini 1 in 3 uporabnikom in skupnostim omogočata izdelavo in razširjanje spremenjenih različic brez samovoljne moteče kode.
“Kakor želite” po možnosti vključuje tudi “sploh ne”, če je to tisto, kar želite. Zato ni potrebe po ločeni “svobodi, da programa ne zaženete”.
- Svoboda preučevanja izvorne kode in spreminjanja
Da bi bili svoboščini 1 in 3 (svoboda uvajanja sprememb in svoboda objave spremenjenih različic) smiselni, morate imeti dostop do izvorne kode programa. Zato je dostopnost izvorne kode nujen pogoj za prosto programsko opremo. Zastrta “izvorna koda” ni prava izvorna koda in ne šteje za izvorno kodo.
Izvorna koda je opredeljena kot prednostna oblika programa za izvajanje sprememb. Tako je izvorna koda različice programa, ki jo razvijalec spremeni, kakršno koli obliko spremeni, da bi razvil program, izvorna koda različice tega razvijalca.
Svoboda 1 vključuje svobodo uporabe vaše spremenjene različice namesto izvirnika. Če je program dobavljen v izdelku, ki je zasnovan tako, da omogoča zagon spremenjenih različic nekoga drugega, ne omogoča pa zagona vaše različice – postane svoboda 1 prazna utvara in ne praktična resničnost. Te binarne datoteke niso prosta programska oprema, čeprav je izvorna koda, iz katere so sestavljene, prosta.
Eden od pomembnih načinov spreminjanja programa je združevanje razpoložljivih prostih podprogramov in modulov. Če licenca programa določa, da ne morete združiti obstoječega modula z ustrezno licenco – na primer, če zahteva, da ste imetnik avtorskih pravic za vsako dodano kodo – potem je licenca preveč omejujoča, da bi jo lahko označili za prosto.
Poseben primer svobode 1 je izbris kode programa, tako da se program vrne, ko ne stori ničesar, ali da se prikliče kakšen drug program. Tako svoboda 1 vključuje “svobodo izbrisa programa”.
- Svoboda razširjanja po želji: osnovne zahteve
Svoboda razširjanja (svoboščini 2 in 3) pomeni, da lahko kopije s spremembami ali brez njih brezplačno ali z zaračunavanjem nadomestila za razširjanje razširjate komur koli kjer koli. Svoboda tega početja (med drugim) pomeni, da vam za to ni treba prositi ali plačati za dovoljenje. Prav tako morate imeti svobodo, da naredite spremembe in jih zasebno uporabljate pri svojem delu ali igri, ne da bi sploh omenili, da obstajajo. Če svoje spremembe objavite, o tem ne bi smeli biti dolžni obvestiti nikogar posebej ali na kakršen koli poseben način.
Svoboda 3 vključuje svobodo, da spremenjene različice objavite kot brezplačno programsko opremo. Svobodna licenca lahko dovoljuje tudi druge načine objave; z drugimi besedami, ni nujno, da gre za licenco copyleft. Vendar pa licenca, ki zahteva, da spremenjene različice niso svobodne, ne izpolnjuje pogojev za svobodno licenco.
Svoboda razširjanja kopij mora vključevati binarne ali izvedljive oblike programa ter izvorno kodo tako za spremenjene kot nespremenjene različice. (Distribucija programov v izvedljivi obliki je potrebna za udobno namestitev brezplačnih operacijskih sistemov.) V redu je, če za določen program ni mogoče pripraviti binarne ali izvedljive oblike (saj nekateri jeziki te funkcije ne podpirajo), vendar morate imeti možnost, da take oblike razširjate, če najdete ali razvijete način za njihovo pripravo.
Copyleft
Določene vrste pravil o načinu distribucije proste programske opreme so sprejemljive, če niso v nasprotju z osrednjimi svoboščinami. Na primer, copyleft (zelo preprosto povedano) je pravilo, da pri razširjanju programa ne smete dodajati omejitev, ki bi drugim ljudem onemogočile osrednje svoboščine. To pravilo ni v nasprotju z osrednjimi svoboščinami, temveč jih varuje.
Prednosti pred lastniško programsko opremo
- Osebni nadzor, prilagodljivost in svoboda
Uporabniki FOSS imajo koristi od štirih temeljnih svoboščin za neomejeno uporabo, preučevanje, kopiranje, spreminjanje in razširjanje te programske opreme s spremembami ali brez njih. Če želijo spremeniti funkcionalnost programske opreme, lahko spremenijo kodo in po želji razširjajo tako spremenjene različice programske opreme ali pogosto – odvisno od odločitvenega modela programske opreme in drugih uporabnikov – celo spodbujajo ali zahtevajo, da se take spremembe izvedejo s posodobitvami prvotne programske opreme.
- Zasebnost in varnost
Namesto da bi morali zaupati prodajalcem programske opreme, lahko uporabniki FOSS sami pregledajo in preverijo izvorno kodo ter zaupajo skupnosti prostovoljcev in uporabnikov. Ker je lastniška koda običajno skrita javnosti, se lahko morebitnih ranljivosti v njej zavedajo le prodajalci sami in hekerji, medtem ko FOSS vključuje čim več ljudi za hitro razkritje napak.
- Nizki stroški ali brez stroškov
Koda FOSS je pogosto brezplačna, čeprav se donacije pogosto spodbujajo. To uporabnikom omogoča tudi boljše testiranje in primerjavo programske opreme.
- Kakovost, sodelovanje in učinkovitost
FOSS omogoča boljše sodelovanje med različnimi strankami in posamezniki s ciljem razviti najučinkovitejšo programsko opremo za uporabnike ali primere uporabe, medtem ko je lastniška programska oprema običajno namenjena ustvarjanju dobička. Poleg tega v mnogih primerih več organizacij in posameznikov prispeva k takšnim projektom kot k lastniški programski opremi.
Pomanjkljivosti v primerjavi z lastniško programsko opremo
- Varnost in podpora uporabnikom
V skladu z Linusovim zakonom je večja verjetnost, da bodo morebitne pomanjkljivosti hitro odkrite in odpravljene, in sicer čim več ljudi lahko vidi in preizkusi določeno kodo. Vendar to ne zagotavlja visoke stopnje sodelovanja. Če za komercialnim izdelkom stoji skupina strokovnjakov s polnim delovnim časom, je lahko v nekaterih primerih boljši od FOSS. Poleg tega lahko objavljena izvorna koda hekerjem olajša iskanje ranljivosti v njej in pisanje podvigov. Vendar to predpostavlja, da so takšni zlonamerni hekerji učinkovitejši od hekerjev belih klobukov, ki odgovorno razkrivajo ali pomagajo odpravljati ranljivosti, da ne prihaja do uhajanja ali iznosa kode in da je povratni inženiring lastniške kode za zlonamerne hekerje pomembna ovira.
- Združljivost strojne in programske opreme
Včasih FOSS ni združljiv z lastniško strojno opremo ali določeno programsko opremo. To je pogosto posledica tega, da proizvajalci ovirajo FOSS, na primer tako, da ne razkrijejo vmesnikov ali drugih specifikacij, ki jih člani gibanja FOSS potrebujejo za pisanje gonilnikov za njihovo strojno opremo, ker na primer želijo, da stranke uporabljajo samo njihovo lastno programsko opremo ali ker bi lahko imeli koristi od partnerstva.
- Napake in manjkajoče funkcije
Čeprav odprtokodna programska oprema (FOSS) včasih ponuja boljše funkcionalnosti in stabilnost v primerjavi z lastniškimi ekvivalenti, pogosto vsebuje več neodpravljenih napak in manjkajočih funkcij. Stopnja teh pomanjkljivosti se razlikuje od primera do primera in je odvisna od zanimanja in angažiranosti v določenem projektu. Kljub temu pa je eden od ključnih prednosti FOSS možnost, da jo izboljša vsak, ki ima ustrezno motivacijo, čas in znanje.
Eden od ključnih izzivov, ki se pojavlja pri razvoju FOSS, je omejen dostop do ključnih standardov, ki so pogosto zaščiteni z dragimi licencami ali sporazumi o nerazkrivanju, kot je na primer format DVD-Video. Kljub temu pa je prav to omejevanje dejansko spodbudilo razvoj FOSS, saj je bila skupnost prisiljena iskati alternative, ki bi bile bolj odprte in dostopne. Lahko se torej zgodi, da so uporabniki FOSS prisiljeni ostati odvisni od izvajalcev ali ponudnikov programske opreme, ki imajo dostop do teh ključnih standardov. Ta odvisnost lahko privede do neželenih posledic, kot so nepošteno zaračunavanje ali omejevanje funkcionalnosti, ki niso v interesu uporabnikov, kar postavlja vprašanje trajnosti in etike v digitalnem okolju.
- Manj jamstva za razvoj
Pogosto je manj gotovosti, da bodo projekti FOSS pridobili potrebna sredstva in sodelovanje za nadaljnji razvoj, kot pri komercialni programski opremi, ki jo podpirajo podjetja. Vendar podjetja pogosto ukinejo projekte, ker so nerentabilni, vendar se lahko velika podjetja zanašajo na odprtokodno programsko opremo in jo zato tudi soustvarjajo. Po drugi strani pa, če prodajalec lastniške programske opreme preneha z razvojem, ni drugih možnosti; medtem ko ima pri odprti programski opremi vsak uporabnik, ki jo potrebuje, še vedno pravico in izvorno kodo, da jo še naprej razvija sam ali pa za to plača tretji osebi.
Koncept brezplačne in odprtokodne programske opreme ne le odpira vrata inovacijam, temveč tudi poudarja pomembnost svobode uporabnikov v digitalni dobi. Z ohranjanjem štirih temeljnih svoboščin – izvajanja, preučevanja, razširjanja in spreminjanja programske opreme – FOSS spodbuja sodelovanje, prilagodljivost in varnost v digitalnem svetu. Kljub izzivom in pomanjkljivostim FOSS ostaja ključno orodje za oblikovanje boljšega in bolj svobodnega digitalnega sveta. S svojimi načeli in prednostmi še naprej spreminja način, kako razmišljamo o in uporabljamo programske rešitve, ter prispeva k ustvarjanju bolj odprte in inovativne digitalne prihodnosti.
Avtorica prispevka: Lea Bogosavljević
O nas
Zavod Rhea se posveča izboljšanju dostopa do storitev in povečanju ozaveščenosti o digitalni pismenosti, zlasti pri ranljivih skupinah. S spodbujanjem digitalne pismenosti ljudem omogočamo boljšo uporabo digitalnih orodij in izboljšamo kakovost življenja. Prav tako se trudimo povečati dostopnost odprtokodne in pregledne programske opreme za trenutne in potencialne uporabnike. Več o nas in naših programih lahko izveste na https://www.rhea.si/.
Viri:
GNU.org. The Free Software Definition. Pridobljeno na https://www.gnu.org/philosophy/free-sw.html#four-freedoms
Clarke, R., Dorwin, D. Is Open Source Software More Secure? University of Washington, Department of Computer Science & Engineering. Pridobljeno na https://courses.cs.washington.edu/courses/csep590/05au/whitepaper_turnin/oss(10).pdf
Noyes, K. (5.11.2010). 10 Reasons Open Source Is Good for Business. PCWorld. Pridobljeno na https://www.pcworld.com/article/498425/10_reasons_open_source_is_good_for_business.html
GNU.org. When Free Software Isn’t (Practically) Superior. Pridobljeno na https://www.gnu.org/philosophy/when-free-software-isnt-practically-superior.en.html