Programiranje

Kaj je odprtokodna programska oprema? Razloženi odprtokodni in FOSS

V osnovi vsake programske opreme, ki jo uporabljate, je izvorna koda, ki izda ukaze in obdeluje podatke, ki programski opremi omogočajo, da počne to, kar počne. Vprašanje, kdo bi moral imeti pravico pogledati, spremeniti ali prerazporediti to izvorno kodo, je že dolgo ena temeljnih ideoloških ločnic v svetu računalništva.

Zagovorniki odprtokodne programske opreme, kot že ime pove, se spustijo na stran odprtosti; menijo, da bi morali imeti ljudje pravico dostopa do izvorne kode programske opreme, ki jo uporabljajo. Kot bomo videli, pa je v praksi veliko raznolikosti, ki spada pod to oznako. Različne vrste odprtokodne programske opreme obstajajo v skoraj vseh nišah, ki si jih omislite - pravzaprav odprtokodna prevladuje nad mnogimi izmed njih.

Kaj je odprtokodna programska oprema, kaj brezplačna in ali se razlikujejo?

Kratka opredelitev odprtokodne programske opreme je, da gre za programsko opremo, katere osnovno kodo je mogoče pregledati, spremeniti in znova distribuirati. (Obstaja daljša in bolj uradna definicija, do katere bomo prišli kmalu.) "Spremenjeni in prerazporejeni" deli so resnično ključni za odprtokodno filozofijo. Kljub temu, da bi ime lahko pomenilo, preprosto odpiranje izvorne kode, da jo lahko ljudje pogledajo, ne pomeni, da je odprtokodna.

Izraz »odprtokodna programska oprema« je na nek način retronim: v zgodnjih desetletjih računalništva je bila izvorna koda programske opreme na voljo samo po sebi in jo je mogoče prosto izmenjati med raziskovalci in znanstveniki iz industrije. Računalnikov je bilo malo in uporabniki naj bi jih močno spremenili, zato so ljudje potrebovali dostop do kode. Programska oprema je bila v mnogih pogledih videti kot dodatek k računalniški strojni opremi; Šele leta 1974 ni bilo niti zakonito ugotovljeno, da je programska oprema predmet avtorskih pravic. Ko pa se je začela doba mikroračunalnikov v poznih sedemdesetih letih, se je industrija začela preusmerjati v stališče, da je programska oprema nekaj, kar ima samo po sebi denarno vrednost, in da je mogoče in bi bilo treba omejiti dostop do osnovne kode, da bi zaščitili ustvarjalce programske opreme. pravice. Slavno odprto pismo Billa Gatesa iz leta 1976 ljubiteljem, ki se pritožuje nad razširjenim piratstvom Microsoftovega prvega izdelka, tolmača Altair BASIC, je prelomni dokument tega premika.

Medtem ko je hitro razvijajoča se industrija programske opreme te nove ideje hitro prevzela, so se nekateri odmaknili od njih. Eden najzgodnejših nasprotnikov je bil Richard Stallman, ki je ustanovil Fundacijo za prosto programsko opremo (FSF) leta 1985. "Brezplačno" v brezplačni programski opremi naj bi pomenilo svobodo uporabnikov pri spreminjanju in distribuciji kode, kot jim je všeč; v tem smislu ni pravila o zaračunavanju denarja za brezplačno programsko opremo. Pogosto ločimo med "brezplačno kot pri brezplačnem pivu" in "brezplačno kot pri svobodi govora", pri čemer je v slednjem taboru brezplačna programska oprema.

Kljub temu je ideja o brezplačni programski opremi marsikoga v zasebni industriji, ki navsezadnje niso ljubitelji dajanja stvari, vznemirila. Leta 1998 je Christine Peterson besedno zvezo »odprtokodna« skovala deloma kot poskus, da bi idejo naredili bolj dostopno za novince, zlasti tiste, ki delajo v profitnih podjetjih. Čeprav se je Stallman upiral izrazu odprtokodna beseda in rekel, da se odvrača od prvotnih političnih in filozofskih idej proste programske opreme, je prevladujoči stavek, ki opisuje ta koncept. Vennov diagram proste in odprtokodne programske opreme se dovolj prekriva, da se včasih obe združita pod kratico FOSS (brezplačna in odprtokodna programska oprema). Na splošno je vsa brezplačna programska oprema odprtokodna, čeprav ima majhen del odprtokodne programske opreme licenčne pogoje, kar pomeni, da ni brezplačna (o odprtokodnih licencah v trenutku več).

Koncept brezplačne in odprtokodne programske opreme je povzročil še eno retronimsko definicijo: »lastniška programska oprema,” katero koli programsko opremo, ki ni odprtokodna.

Licence za odprtokodno programsko opremo

Vse pravice in odgovornosti v zvezi z odprtokodno programsko opremo določajo licence, pod katerimi se ta programska oprema distribuira. Ko se je uveljavila pravna doktrina, da je programska oprema predmet avtorskih pravic, so se začele pisati licence za programsko opremo, ki zagotavljajo pogodbo med lastnikom avtorskih pravic in uporabnikom, ki uporabniku dovoljuje izvajanje programske opreme na osebnem računalniku.

Licence za programsko opremo so prvotno obstajale za omejevanje vedenja uporabnikov in zaščito pravic proizvajalca programske opreme. Toda zagovorniki brezplačne programske opreme so ugotovili, da lahko spremenijo prvotni namen licenc: licenca programskega paketa lahko namesto tega zahteva, da je osnovna koda na voljo vsem, ki uporabljajo programsko opremo, in da imajo uporabniki pravico do urejanja in distribucije te kode. Prva licenca za odprtokodno programsko opremo (čeprav je pred datumom) je verjetno obvestilo o dovoljenju za kopiranje GNU Emacs, izdano leta 1985 za različico urejevalnika besedil Emacs, ki ga je napisal FSF's Stallman.

Od takrat se je število brezplačnih in odprtokodnih licenc povečalo, pri čemer je vsaka določala nekoliko drugačne pogoje za uporabo licenčne kode; Wikipedia ima precej dober grafikon s podrobnostmi o najpomembnejših licencah. Po definiciji katera koli od teh odprtokodnih licenc uporabnikom daje tri temeljne svoboščine, da lahko berejo, urejajo in distribuirajo izvorno kodo; glavno področje, kjer se razlikujejo, je v izrazih, ki jih nalagajo za prerazporeditev:

  • Dovoljene licence vam omogočajo distribucijo katere koli izvorne kode, kot se vam zdi primerno. Lahko na primer vzamete izvorno kodo, izdano z dovoljenjem za dovoljenje, jo vključite v svojo programsko opremo in nato to programsko opremo izdate pod lastniško licenco. Licenca BSD je ena najbolj znanih dovolilnic.
  • Licence Copyleft zahtevajo, da je vsaka prerazporejena koda, ki vključuje licenčno kodo, prav tako izdana s podobno licenco. Različne različice GNU Public License (GPL) iz FSF so licence copyleft in njihov cilj je, da od razvijalcev zahtevajo, da jo plačajo naprej, tako da si delijo koristi, ki so jih dobili z vključitvijo odprtokodne kode v svoj projekt.

Zanimivo je, da so se ideje za te licence razširile tudi izven sveta programske opreme. Creative Commons je pravna infrastruktura za uporabo podobnih izrazov za pisna ali vizualna umetniška dela.

Odprtokodna definicija in odprtokodna pobuda

Odprte kode po svoji naravi ne nadzoruje noben subjekt ali organizacija. Leta 1998 je skupina uglednih razvijalcev, med katerimi sta Bruce Perens in Eric S. Raymond, ustanovila Open Source Initiative (OSI), neprofitno organizacijo, namenjeno zagovorništvu odprtokodnih programov v večji programski industriji. OSI je leta 1999 poskušal in ni uspel zaščititi izraza odprtokodni; kljub temu je njihova formalna odprtokodna definicija s konsenzom okvir, ki mu sledijo vse licence, ki se imenujejo odprtokodne. Poleg svobode pregleda, spreminjanja in distribucije kode, o kateri smo že govorili, odprtokodna definicija prepoveduje licence, ki diskriminirajo določene skupine ali ljudi, ki preprečujejo uporabo kode za določen namen ali področje, ali od izvajanja na določeni napravi ali tipu naprave.

Odprtokodni razvoj in odprtokodni projekti

Razvoj z uporabo odprtokodne kode poteka v vseh okoljih, od univerz do velikih korporacij, in pogosto sledi istim vzorcem kot katera koli druga vrsta razvoja programske opreme. Obstaja pa posebna vrsta odprtega procesa razvoja skupnosti, ki je povezan z odprtokodno kodo. Eric S. Raymond je v svojem vplivnem eseju "Katedrala in bazar" predstavil svojo vizijo tega procesa, kjer lahko kdo dostopa do kode, v zbirko kod pa so dodane posodobitve široko razširjene skupine razvijalcev, njihov interes narekuje.

Odprtokodni razvoj te vrste je organiziran okoli odprtokodnih projektov. Ti včasih delujejo na enem samem delu programske opreme in včasih na celotnem naboru aplikacij. Programska oprema za nadzor različic vzdržuje prispevke vseh. GitHub je verjetno najbolj priljubljen.

Odprtokodni projekti, ki jih včasih začne ena oseba, so praviloma samoorganizirane, majhne internetne skupnosti, in čeprav lahko kdo prispeva k kateremu koli projektu, običajno večino dela relativno majhen nabor razvijalcev. Včasih projekt lahko sponzorira profitno podjetje, ki namerava uporabiti programsko opremo, ki jo proizvaja, celo tako daleč, da bo na plačilne liste postavilo najuglednejše razvijalce projekta.

Odprtokodni primeri

Odprtokodna programska oprema je v resnici vseprisotna in ustvarja večino temeljev sodobnega interneta. Morda je najbolj znan odprtokodni projekt Linux, odprtokodna različica Unixa, ki poganja milijone strežnikov. Drugi pomembni in izjemno pomembni projekti vključujejo spletni strežnik Apache, bazo podatkov MySQL in WordPress. Številni razvojni okviri so izdani kot odprtokodni, od Ruby on Rails do Microsoftovega .Net Core.

Odprtokod je bil manj uspešen pri izdelavi programske opreme za domače računalnike, namenjene običajnim uporabnikom. Kljub visokim stroškom lastniških programskih paketov, kot sta Microsoft Word in Adobe Photoshop, odprtokodni kolegi, kot sta OpenOffice in GIMP, nikoli niso uspeli najti niše poleg trdnih navdušencev, predvsem zato, ker je odprtokodna skupnost tradicionalno dala prednost funkcijam in prilagodljivosti pred enostavnostjo uporaba. (Zaklepanje datotek v obliki lastniških prodajalcev ni pomagalo.) Tudi Linux, katerega zagovorniki že od poznih devetdesetih let trdijo, da je odprtokodni OS le eno leto oddaljen od prevlade na namizju, še nikoli ni zares skočil na potrošniški prostor. Odprtokod se na splošno uporablja za infrastrukturo veliko bolj kot za programsko opremo za končne uporabnike. Toda premik od monolitne programske opreme, ki jo izvajate lokalno, do aplikacij SaaS, je blaginja odprtokodne infrastrukture, saj infrastrukture v oblaku v veliki meri temeljijo na skladih, v katerih prevladuje odprtokodna programska oprema.

Se spomnite, kaj smo rekli o profitnih podjetjih, ki podpirajo odprtokodno kodo? Pogosto se ti projekti izdelujejo z dovoljenimi licencami, zato lahko ta podjetja postavijo odprto kodo v jedro lastniške ponudbe, hkrati pa vzporedno s projektom skupnosti vzdržujejo ločeno bazo odprtokodnih kod. Na primer, mobilni OS Android ima v jedru Linux; vsi Appleovi mobilni in namizni operacijski sistemi temeljijo na Darwinu, odprtokodnem operacijskem sistemu, ki je bil prvotno izpeljan iz BSD Unix. Tudi Googlov Chrome temelji na odprtokodnem brskalniku Chromium.

Odprtokodna skupnost in odprtokodno gibanje

Odprtokod je več kot le razvojni proces; to je filozofija, do katere so ljudje navdušeni, in gre za družbeno skupnost, ki se ji lahko pridruži vsak, ki ima spretnosti programiranja. Pravzaprav gre za celo vrsto skupnosti, kot pravi Linux Foundation. (Obstoj neprofitnih organizacij, kot sta fundacija Linux in OSI, je pomemben vidik te skupnosti.) Florian Effenberger ima odličen esej o tem, kako je odprtokodna skupnost obogatila njegovo življenje.

Pogosto boste slišali ljudi, ki govorijo o odprtokodnem gibanju ali gibanju proste programske opreme, ki ima konotacijo politike in zagovarjanja. Veliko ljudi v odprtokodni skupnosti se je zavzemalo za široko sprejemanje odprtokodne programske opreme iz različnih razlogov: menijo, da odprtokodna koda proizvaja samo po sebi boljšo kodo ali pa menijo, da je dostop do izvorne kode temeljna pravica, ki bi jo morali uživati ​​uporabniki računalnikov, ali neka kombinacija obeh. Danes se zdi ta vidik skupnosti nekoliko manj viden, morda pa zato, ker je v mnogih pogledih zmagala odprta koda. Takratni izvršni direktor Microsofta Steve Ballmer je leta 2001 dejal, da je Linux zaradi svoje odprtokodne licence "rak, ki se v smislu intelektualne lastnine veže na vse, česar se dotakne." Danes je Microsoft obsežen uporabnik in proizvajalec odprtokodne programske opreme. To je na kratko zadnji dve desetletji odprtokodne zgodovine.

Odprtokodni prenos programske opreme

Bi radi začeli brskati in se ukvarjati z odprtokodnimi projekti? Oglejte si stran Projects and Applications opensource.com, zavihek GitHub Explore ali Zemljevid programske opreme odprtokodne razvojne mreže. Obstaja veliko za radovedneže katere koli stopnje spretnosti.

$config[zx-auto] not found$config[zx-overlay] not found