Programmēšana

Kas ir atvērtā pirmkoda programmatūra? Atklātais kods un FOSS ir izskaidroti

Katras izmantotās programmatūras pamatā ir pirmkods, kas izdod komandas un apstrādā datus, kas ļauj programmatūrai darīt to, ko tā dara. Jautājums par to, kam vajadzētu būt tiesībām aplūkot, mainīt vai izplatīt šo pirmkodu, jau sen ir bijusi viena no fundamentālajām ideoloģiskajām atšķirībām skaitļošanas pasaulē.

Atklātā pirmkoda programmatūras atbalstītāji, kā norāda nosaukums, nonāk atklātības pusē; viņi uzskata, ka cilvēkiem vajadzētu būt tiesībām piekļūt viņu izmantotās programmatūras pirmkodam. Tomēr, kā redzēsim, praksē ir daudz dažādu, kas ietilpst šajā etiķetē. Dažāda veida atvērtā koda programmatūra pastāv gandrīz katrā nišā, par kuru vien var iedomāties - patiesībā daudzās no tām dominē atvērtā koda programmatūra.

Kas ir atvērtā koda programmatūra, kas ir bezmaksas programmatūra - un vai tās atšķiras?

Īsumā atklāta pirmkoda programmatūra ir tā, ka tā ir programmatūra, kuras pamatā esošo kodu var pārbaudīt, mainīt un izplatīt tālāk. (Pastāv garāka un oficiālāka definīcija, pie kuras mēs mazliet nonāksim.) “Mainītās un pārdalītās” daļas patiešām ir atvērtā pirmkoda filozofijas atslēga. Neskatoties uz to, ko varētu nozīmēt nosaukums, vienkārši atverot pirmkodu, lai cilvēki to varētu aplūkot, tas nepadara to par atvērtu avotu.

Dažos aspektos termins “atvērtā pirmkoda programmatūra” ir retronīms: Datorzinātnes pirmajās desmitgadēs programmatūras pirmkods bija pieejams kā pašsaprotams un brīvi apmainīts starp pētniekiem un nozares zinātniekiem. Datoru bija maz un tālu, un sagaidāms, ka to lietotāji to plaši pārveidos, tāpēc cilvēkiem bija nepieciešama piekļuve kodam. Daudzos veidos programmatūra tika uzskatīta par datora aparatūras papildinājumu; tikai 1974. gadā pat likumīgi tika noteikts, ka programmatūra ir pakļauta autortiesībām. Bet, tā kā 70. gadu beigās iestājās mikrodatoru laikmets, nozare sāka pāriet uz nostāju, ka programmatūra ir kaut kas tāds, kam pašai par sevi ir naudas vērtība, un piekļuvi pamatā esošajam kodam var un vajadzētu ierobežot, lai aizsargātu programmatūras radītājus tiesības. Bila Geitsa slavenā atklātā vēstule 1976. gadā hobijiem, kuri sūdzas par Microsoft pirmā produkta - Altair BASIC tulka - plašo pirātismu, ir šīs maiņas ūdensšķirtne.

Kaut arī strauji augošā programmatūras industrija ātri pārņēma šīs jaunās idejas, daži cilvēki pret tām atteicās. Viens no pirmajiem pretiniekiem bija Ričards Stallmans, kurš 1985. gadā nodibināja Brīvās programmatūras fondu (FSF). Brīvās programmatūras “bezmaksas” ir domāts lietotāju brīvībai mainīt un izplatīt kodu, kā viņiem patīk; šajā ziņā nav noteikumu par naudas iekasēšanu par bezmaksas programmatūru. Bieži tiek nošķirti “brīvi kā brīvā alū” un “brīvi kā vārda brīvībā”, brīvā programmatūra atrodoties pēdējā nometnē.

Tomēr brīvās programmatūras ideja daudziem privātajā industrijā esošajiem cilvēkiem, kuri galu galā nebija lietu atdošanas fani, nervozēja. 1998. gadā Kristīne Pētersone izteica frāzi “atvērtais kods” daļēji kā mēģinājumu padarīt ideju pieejamāku jaunpienācējiem, īpaši tiem, kas strādā peļņas gūšanas uzņēmumos. Lai gan Stallmans ir pretojies terminam atvērtā koda, sakot, ka tas novēršas no brīvās programmatūras sākotnējām politiskajām un filozofiskajām idejām, tā ir kļuvusi par dominējošo frāzi, kas raksturo šo jēdzienu. Brīvās un atvērtā pirmkoda programmatūras Venna diagramma pietiekami pārklājas, ka dažreiz abas tiek apvienotas ar saīsinājumu FOSS (bezmaksas un atvērtā koda programmatūra). Kopumā visa bezmaksas programmatūra ir atvērta pirmkoda, lai gan nelielai daļai atvērtā pirmkoda programmatūras ir licences noteikumi, kas nozīmē, ka tā nav bezmaksas (vairāk par atvērtā koda licencēšanu vienā mirklī).

Bezmaksas un atvērtā pirmkoda programmatūras jēdziens radīja vēl vienu retronīmu definīciju: “patentēta programmatūra,” jebkura programmatūra, kas nav atvērta pirmkoda.

Atvērtā koda programmatūras licences

Visas tiesības un pienākumus, kas saistīti ar atvērtā pirmkoda programmatūru, nosaka licences, ar kurām programmatūra tiek izplatīta. Kad nostiprinājās juridiskā doktrīna par programmatūras autortiesībām, programmatūras licences sāka rakstīt, lai noslēgtu līgumu starp autortiesību īpašnieku un lietotāju, dodot lietotājam atļauju izpildīt programmatūru personālajā datorā.

Programmatūras licences sākotnēji pastāvēja, lai ierobežotu lietotāju rīcību un aizsargātu programmatūras ražotāja tiesības. Bet brīvās programmatūras aizstāvji saprata, ka viņi var mainīt licenču sākotnējo mērķi: programmatūras paketes licence var prasīt, lai pamatā esošais kods būtu pieejams visiem, kas lieto programmatūru, un lietotājiem būtu tiesības rediģēt un pārdalīt šo kodu. Pirmā atvērtā koda programmatūras licence (kaut arī tā ir pirms šī termina), iespējams, ir GNU Emacs paziņojums par kopēšanas atļauju, kas tika izlaists 1985. gadā Emacs teksta redaktora versijai, kuru uzrakstīja FSF Stallman.

Kopš tā laika bezmaksas un atvērtā pirmkoda licenču skaits ir pieaudzis, un katrs no tiem nosaka nedaudz atšķirīgus noteikumus licencētā koda izmantošanai; Wikipedia uztur diezgan labu diagrammu ar detalizētu informāciju par vissvarīgākajām licencēm. Pēc definīcijas jebkura no šīm atvērtā pirmkoda licencēm piešķir lietotājiem trīs pamatbrīvības - lasīt, rediģēt un pārdalīt pirmkodu; Galvenā joma, kurā tās atšķiras, ir termini, ko tie uzliek pārdalīšanai:

  • Atļautās licences ļauj pārdalīt jebkuru avota kodu, kā jūs uzskatāt par piemērotu. Piemēram, jūs varētu paņemt pirmkodu, kas izlaists saskaņā ar atļauto licenci, iekļaut to savā programmatūrā un pēc tam atbrīvot šo programmatūru ar patentētu licenci. BSD licence ir viena no slavenākajām visatļautīgākajām licencēm.
  • Copyleft licences pieprasīt, lai jebkurš pārdalītais kods, kas ietver licencēto kodu, tiktu izlaists arī ar līdzīgu licenci. Dažādas FSF GNU publiskās licences (GPL) versijas ir copyleft licences, un to mērķis ir pieprasīt izstrādātājiem to samaksāt, daloties ieguvumos, ko viņi saņēma no atvērtā pirmkoda iekļaušanas savā projektā.

Ir interesanti atzīmēt, ka šo licenču idejas ir izplatījušās ārpus programmatūras pasaules. Creative Commons ir likumīga infrastruktūra, lai līdzīgus noteikumus piemērotu rakstiskiem vai vizuāli mākslinieciskiem darbiem.

Atvērtā koda definīcija un atvērtā pirmkoda iniciatīva

Atvērto pirmkodu pēc savas būtības nekontrolē neviena vienība vai organizācija. 1998. gadā grupa ievērojamu izstrādātāju, ieskaitot Brūsu Perensu un Ēriku S. Reimondu, nodibināja atvērtā pirmkoda iniciatīvu (OSI) - bezpeļņas organizāciju, kas veltīta atvērtā pirmkoda aizstāvībai lielākajā programmatūras nozarē. OSI 1999. gadā mēģināja un neizdevās preču zīmi apzīmēt kā atvērta pirmkoda; neskatoties uz to, viņu oficiālā atvērtā koda definīcija pēc vienprātības principa ir sistēma, kurai seko visas licences, kuras sevi dēvē par atvērtā koda. Papildus brīvībai pārbaudīt, modificēt un pārdalīt kodu, par kuru mēs jau runājām, atvērtā koda definīcija aizliedz licences, kas diskriminē noteiktas grupas vai cilvēkus, kas neļauj kodu izmantot noteiktam mērķim vai darbības jomai, vai no palaišanas noteiktā ierīcē vai ierīces tipā.

Atvērtā koda izstrāde un atvērtā pirmkoda projekti

Izstrāde, izmantojot atvērtā koda kodu, notiek visu veidu vidēs, sākot no universitātēm un beidzot ar lielām korporācijām, un bieži notiek pēc tādiem pašiem modeļiem kā jebkura cita veida programmatūras izstrāde. Bet pastāv īpaša veida atklāts kopienas attīstības process, kas ir saistīts ar atvērto avotu. Ietekmīgajā esejā “Katedrāle un tirgus” Ēriks S. Reimonds izklāstīja savu redzējumu par šo procesu, kur ikviens var piekļūt kodam, un koda bāzei tiek pievienoti atjauninājumi no plaši izplatītas izstrādātāju grupas, kas ieejas un izkļūst kā viņu interese diktē.

Šāda veida atvērtā koda izstrāde tiek organizēta ap atvērtā pirmkoda projektiem. Dažreiz tie strādā pie viena programmatūras gabala un dažreiz ar visu saistīto lietojumprogrammu komplektu. Versiju vadības programmatūra nodrošina visu ieguldījumu atbilstību. GitHub, iespējams, ir vispopulārākais.

Dažreiz to sāk viens cilvēks, bet atvērtā pirmkoda projekti parasti ir pašu organizēti, mazi interneta kopienas, un, lai arī ikviens var dot savu ieguldījumu jebkurā projektā, pie vairuma parasti strādā salīdzinoši neliels izstrādātāju kopums. Dažreiz projektu var sponsorēt bezpeļņas uzņēmums, kas plāno izmantot tā ražoto programmatūru, pat tik tālu, ka projekta ievērojamākos izstrādātājus ievieto algu sarakstā.

Atvērtā koda piemēri

Atvērtā pirmkoda programmatūra faktiski ir visuresoša un rada lielu mūsdienu interneta pamatu. Varbūt slavenākais atvērtā koda projekts ir Linux, atvērtā koda Unix variants, kas nodrošina miljoniem serveru. Citi nozīmīgi un ārkārtīgi svarīgi projekti ietver Apache tīmekļa serveri, MySQL datu bāzi un WordPress. Kā atvērts avots tiek izlaisti daudzi izstrādes ietvari, sākot no Ruby on Rails līdz Microsoft .Net Core.

Atklātajam kodam nav tik veiksmīgi izveidot mājas datoru programmatūru, kas paredzēta parastajiem lietotājiem. Neskatoties uz patentēto programmatūras pakotņu, piemēram, Microsoft Word un Adobe Photoshop, augstajām izmaksām, atvērtā pirmkoda kolēģiem, piemēram, OpenOffice un GIMP, nekad neizdevās atrast nišu, kas pārsniedz aizraujošos entuziastus, lielā mērā tāpēc, ka atvērtā pirmkoda kopiena tradicionāli ir piešķīrusi prioritāti funkcijām un elastīgumam, nevis vienkāršībai. izmantot. (Failu formāta bloķēšana no patentētiem pārdevējiem nav palīdzējusi.) Pat Linux, kura aizstāvji kopš 1990. gadu beigām apgalvoja, ka atvērtā pirmkoda OS ir dominējusi tikai gadu, lai dominētu darbvirsmā, nekad nav izdevies pāriet uz patērētāja telpa. Kopumā atklāto avotu infrastruktūrai izmanto daudz vairāk nekā galalietotāju programmatūrai. Bet pāreja no monolītās programmatūras, kuru palaižat lokāli, uz SaaS lietotnēm ir ieguvums atvērtam avotam, jo ​​uz mākoņiem balstītas infrastruktūras lielā mērā balstās uz kaudzēm, kurās dominē atvērtais avots.

Vai atceraties, ko mēs teicām par bezpeļņas uzņēmumiem, kas atbalsta atvērto pirmkodu? Bieži vien šie projekti tiek ražoti ar atļautu licenci, tāpēc šie uzņēmumi var ievietot atvērto pirmkodu savu patentēto piedāvājumu pamatā, vienlaikus kā kopienas projekts vienlaikus uzturot atsevišķu atvērtā pirmkoda koda bāzi. Piemēram, Android mobilās operētājsistēmas pamatā ir Linux; visas Apple mobilās un darbvirsmas operētājsistēmas ir balstītas uz Darvinu, atvērtā koda operētājsistēmu, kas sākotnēji iegūta no BSD Unix. Pat Google pārlūka Chrome pamatā ir atvērtā koda pārlūks ar nosaukumu Chromium.

Atvērtā koda kopiena un atvērtā pirmkoda kustība

Atklātais kods nav tikai attīstības process; tā ir filozofija, par kuru cilvēki aizraujas, un tā ir sociālā kopiena, kurā var pievienoties ikviens, kam ir programmēšanas prasmes. Patiesībā tā ir vesela virkne kopienu, kā to saka Linux Foundation. (Bezpeļņas organizāciju, piemēram, Linux Foundation un OSI, esamība ir svarīgs šīs kopienas aspekts.) Florianam Effenbergeram ir lieliska eseja par to, kā atvērtā pirmkoda kopiena bagātināja viņa dzīvi.

Jūs bieži dzirdēsiet cilvēkus runājam par atvērtā pirmkoda vai brīvās programmatūras kustību, kurai ir konotācija politikai un aizstāvībai. Daudzi cilvēki atvērtā pirmkoda sabiedrībā dažādu iemeslu dēļ ir mudinājuši plaši izmantot atvērtā pirmkoda programmatūru: pēc viņu domām, atklātais avots ražo pēc būtības labāku kodu vai arī viņi domā, ka piekļuve pirmkodam ir pamattiesības, kas būtu jāizbauda datoru lietotājiem. vai kāda no abām kombinācijām. Šis kopienas aspekts mūsdienās šķiet mazliet mazāk redzams, bet varbūt tas ir tāpēc, ka daudzējādā ziņā uzvarēja atklātais kods. Vēl 2001. gadā toreizējais Microsoft izpilddirektors Stīvs Ballmers sacīja, ka atvērtā pirmkoda licences dēļ Linux ir “vēzis, kas intelektuālā īpašuma izpratnē piesaista visu, kam tas skar”. Mūsdienās Microsoft ir plašs atvērtā koda programmatūras lietotājs un ražotājs. Īsumā tās ir pēdējās divas atklātā pirmkoda vēstures desmitgades.

Atvērtā koda programmatūras lejupielāde

Vai vēlaties sākt pārlūkot un nodarboties ar atvērtā pirmkoda projektiem? Apskatiet opensource.com lapu Projekti un lietojumprogrammas, GitHub cilni Izpētīt vai Atvērtā koda izstrādes tīkla programmatūras karti. Ir daudz ziņkārīgiem cilvēkiem ar jebkuru prasmju līmeni.