Programavimas

Kas yra atvirojo kodo programinė įranga? Paaiškinta atvirojo kodo ir FOSS

Kiekvienos naudojamos programinės įrangos dalis yra šaltinio kodas, kuris išleidžia komandas ir tvarko duomenis, leidžiančius programinei įrangai daryti tai, ką ji daro. Klausimas, kas turėtų teisę pažvelgti, pakeisti ar platinti tą šaltinio kodą, jau seniai buvo vienas iš pagrindinių ideologinių takoskyrų skaičiavimo pasaulyje.

Atvirojo kodo programinės įrangos šalininkai, kaip rodo pavadinimas, atsiduria atvirumo pusėje; jie mano, kad žmonės turėtų turėti teisę pasiekti savo naudojamos programinės įrangos šaltinio kodą. Vis dėlto, kaip pamatysime, praktikoje yra daug įvairovės, kuri patenka į tą etiketę. Įvairių rūšių atvirojo kodo programinė įranga egzistuoja beveik visose nišose, apie kurias galite galvoti - tiesą sakant, daugelyje jų dominuoja atvirasis šaltinis.

Kas yra atvirojo kodo programinė įranga, kas yra nemokama programinė įranga ir ar jie skiriasi?

Trumpas atvirojo kodo programinės įrangos apibrėžimas yra tai, kad tai yra programinė įranga, kurios pagrindinį kodą galima ištirti, pakeisti ir platinti. (Yra ilgesnis ir oficialesnis apibrėžimas, kurį šiek tiek pasieksime.) „Pakeistos ir perskirstytos“ dalys iš tiesų yra raktas į atvirojo kodo filosofiją. Nepaisant to, ką šis pavadinimas gali reikšti, paprasčiausiai atidarant šaltinio kodą, kad žmonės galėtų į jį žiūrėti, jis netampa atviro kodo.

Tam tikru požiūriu terminas „atviro kodo programinė įranga“ yra retronimas: ankstyvaisiais kompiuterijos mokslo dešimtmečiais programinės įrangos šaltinio kodas buvo prieinamas kaip savaime suprantamas dalykas ir laisvai keistis tarp tyrėjų ir pramonės mokslininkų. Kompiuterių buvo nedaug ir jų vartotojai turėjo daug keisti, todėl žmonėms reikėjo prieigos prie kodo. Daugeliu atvejų programinė įranga buvo laikoma kompiuterio aparatinės įrangos priedu; tik 1974 m. buvo teisiškai nustatyta, kad programinė įranga yra saugoma autorių teisių. Tačiau aštuntojo dešimtmečio pabaigoje išaušus mikrokompiuterių epochai, pramonė pradėjo pereiti prie pozicijos, kad programinė įranga yra savaime piniginė vertė ir kad norint apsaugoti programinės įrangos kūrėjus galima ir reikia apriboti prieigą prie pagrindinio kodo. 'teises. Garsusis Billo Gateso 1976 m. Atviras laiškas mėgėjams, besiskundžiantiems dėl plačiai paplitusio pirmojo „Microsoft“ produkto - „Altair BASIC“ vertėjo - piratavimo, yra šios permainos dokumentas.

Nors šias naujas idėjas greitai perėmė sparčiai auganti programinės įrangos pramonė, kai kurie žmonės priešinosi joms. Vienas ankstyviausių oponentų buvo Richardas Stallmanas, kuris 1985 m. Įkūrė Laisvos programinės įrangos fondą (FSF). „Laisva programinė įranga„ nemokama “skirta žymėti vartotojų laisvę keisti ir platinti kodą taip, kaip jiems patinka; nėra jokios taisyklės, kad šia prasme nereikėtų mokėti pinigų už nemokamą programinę įrangą. Dažnai skiriamos „laisvos kaip laisvame aluje“ ir „laisvos kaip žodžio laisvėje“, kai laisva programinė įranga yra pastarojoje stovykloje.

Vis dėlto laisvos programinės įrangos idėja privertė daugelį privačios pramonės žmonių, kurie vis dėlto nebuvo daiktų atidavimo gerbėjai. 1998 m. Christine Peterson iš dalies sugalvojo frazę „atviras šaltinis“ kaip bandymą padaryti idėją labiau prieinamą naujokams, ypač dirbantiems pelno siekiančiose įmonėse. Nors Stallmanas priešinosi atvirojo kodo terminui sakydamas, kad jis atsitraukia nuo originalių politinių ir filosofinių laisvos programinės įrangos idėjų, tai tapo dominuojančia fraze, apibūdinančia šią sąvoką. Laisvosios ir atvirojo kodo programinės įrangos Venno diagrama pakankamai sutampa, kad kartais abu šie elementai sujungiami akronimu FOSS (nemokama ir atviro kodo programinė įranga).. Apskritai, visa nemokama programinė įranga yra atviro kodo, nors nedidelė dalis atvirojo kodo programinės įrangos turi licencijos sąlygas, o tai reiškia, kad ji nėra nemokama (daugiau apie atvirojo kodo licencijavimą per akimirką).

Laisvos ir atviro kodo programinės įrangos samprata sukėlė kitą retronimo apibrėžimą: „patentuota programinė įranga,” bet kokia programinė įranga, kuri nėra atviro kodo.

Atvirojo kodo programinės įrangos licencijos

Visas teises ir pareigas, susijusias su atvirojo kodo programine įranga, nustato licencijos, pagal kurias programinė įranga platinama. Įsigalėjus teisinei doktrinai, kad programinei įrangai taikomos autorių teisės, programinės įrangos licencijos buvo pradėtos rašyti siekiant sudaryti sutartį tarp autorių teisių savininko ir vartotojo, suteikiant vartotojui leidimą vykdyti programinę įrangą asmeniniame kompiuteryje.

Programinės įrangos licencijos iš pradžių egzistavo siekiant apriboti vartotojų elgseną ir apsaugoti programinės įrangos gamintojo teises. Tačiau nemokamos programinės įrangos gynėjai suprato, kad jie gali pakeisti licencijų pirminę paskirtį: programinės įrangos paketo licencijoje gali būti reikalaujama, kad pagrindinis kodas būtų prieinamas visiems, naudojantiems programinę įrangą, ir kad vartotojai turėtų teisę redaguoti ir perskirstyti šį kodą. Pirmoji atvirojo kodo programinės įrangos licencija (nors ji buvo ankstesnė už šį terminą) tikriausiai yra GNU „Emacs“ pranešimas apie kopijavimo leidimą, išleistas 1985 m. „Emacs“ teksto redaktoriaus versijai, kurią parašė FSF „Stallman“.

Nuo tada daugėjo nemokamų ir atvirojo kodo licencijų, kiekviena nustatė šiek tiek skirtingas licencijuoto kodo naudojimo sąlygas; Vikipedija palaiko gana gerą diagramą su išsamia informacija apie svarbiausias licencijas. Pagal apibrėžimą, bet kuri iš šių atvirojo kodo licencijų suteikia vartotojams tris pagrindines laisves mokėti skaityti, redaguoti ir perskirstyti šaltinio kodą; pagrindinė sritis, kurioje jie skiriasi, yra terminai, kuriuos jie nustato perskirstymui:

  • Leidžiančios licencijos leidžia jums perskirstyti bet kokį šaltinio kodą, kaip jums atrodo tinkama. Pavyzdžiui, galite paimti šaltinio kodą, išleistą pagal leistiną licenciją, įtraukti jį į savo programinę įrangą, tada išleisti tą programinę įrangą pagal nuosavybės licenciją. BSD licencija yra viena iš garsiausių leidžiančių licencijų.
  • „Copyleft“ licencijos reikalauti, kad bet koks perskirstytas kodas, kuriame yra licencijuotas kodas, taip pat būtų išleistas pagal panašią licenciją. Įvairios GNU viešosios licencijos (GPL) versijos iš FSF yra „copyleft“ licencijos, ir jų tikslas yra reikalauti, kad kūrėjai ją sumokėtų, dalindamiesi nauda, ​​kurią jie gavo įtraukdami į savo projektą atviro kodo kodą.

Įdomu pažymėti, kad šių licencijų idėjos pasklido už programinės įrangos pasaulio ribų. „Creative Commons“ yra teisinė infrastruktūra, skirta taikyti panašius terminus rašytiniams ar vaizdiniams meno kūriniams.

„Open Source Definition“ ir „Open Source Initiative“

Atvirojo kodo savo prigimtimi nekontroliuoja nė vienas subjektas ar organizacija. 1998 m. Grupė žinomų kūrėjų, įskaitant Bruce'ą Perensą ir Ericą S. Raymondą, įkūrė atvirojo kodo iniciatyvą (OSI) - ne pelno organizaciją, skirtą atvirojo kodo propagavimui didesnėje programinės įrangos pramonėje. OSI bandė ir nesugebėjo pažymėti termino atvirasis šaltinis 1999 m. nepaisant to, jų oficialus atvirojo kodo apibrėžimas yra bendro sutarimo pagrindas, kuriuo vadovaujasi visos licencijos, kurios save vadina atviruoju šaltiniu. Be laisvės tikrinti, modifikuoti ir platinti kodą, kurį jau aptarėme, „Open Source Definition“ draudžia licencijas, kurios diskriminuoja konkrečias grupes ar žmones, neleidžiančias kodo naudoti konkrečiam tikslui ar veiklos sričiai, arba paleisti konkrečiu įrenginiu ar įrenginio tipu.

Atvirojo kodo kūrimas ir atvirojo kodo projektai

Kūrimas naudojant atvirojo šaltinio kodą vyksta bet kokioje aplinkoje, pradedant universitetais ir baigiant didelėmis korporacijomis, ir dažnai vyksta pagal tuos pačius modelius, kaip ir bet kokio kito tipo programinės įrangos kūrimas. Tačiau yra tam tikras atviros bendruomenės plėtros procesas, susijęs su atviruoju šaltiniu. Įtakingoje esė „Katedra ir turgus“ Ericas S. Raymondas išdėstė savo viziją apie šį procesą, kur kiekvienas gali pasiekti kodą, o kodo bazei pridedami atnaujinimai iš plačiai paplitusių kūrėjų grupės, kuri įlipa ir išeina kaip diktuoja jų interesas.

Šio tipo atvirojo kodo kūrimas organizuojamas pagal atvirojo kodo projektus. Jie kartais dirba su viena programine įranga ir kartais visu susijusiu programų rinkiniu. Versijų valdymo programinė įranga palaiko visų indėlį. „GitHub“ yra bene populiariausias.

Kartais atviro kodo projektus inicijuoja vienas žmogus, mažos interneto bendruomenės pačios organizuoja, ir nors kiekvienas gali prisidėti prie bet kurio projekto, prie jų dažniausiai dirba palyginti nedidelis kūrėjų rinkinys. Kartais projektą gali remti pelno siekianti įmonė, planuojanti naudoti savo gaminamą programinę įrangą, net tiek, kad į atlyginimų sąrašą būtų įtraukiami žymiausi projekto kūrėjai.

Atvirojo kodo pavyzdžiai

Atvirojo kodo programinė įranga iš tikrųjų yra visur ir sukuria daug šiuolaikinio interneto pagrindų. Bene garsiausias atvirojo kodo projektas yra „Linux“ - atvirojo kodo „Unix“ variantas, valdantis milijonus serverių. Kiti žinomi ir itin svarbūs projektai yra „Apache“ tinklo serveris, „MySQL“ duomenų bazė ir „WordPress“. Išleista daugybė kūrimo sistemų kaip atvirasis šaltinis, nuo „Ruby on Rails“ iki „Microsoft .Net Core“.

Atviram kodui buvo mažiau sekasi gaminti namų kompiuterių programinę įrangą, skirtą paprastiems vartotojams. Nepaisant didelių patentuotų programinės įrangos paketų, tokių kaip „Microsoft Word“ ir „Adobe Photoshop“, kainų, atvirojo kodo partneriams, tokiems kaip „OpenOffice“ ir GIMP, niekada nepavyko rasti nišos už nemenkų entuziastų, daugiausia dėl to, kad atvirojo kodo bendruomenė tradiciškai teikė pirmenybę funkcijoms ir lankstumui, o ne patogumui. naudoti. (Failų formatų užraktas iš patentuotų pardavėjų nepadėjo.) Net „Linux“, kurios advokatai nuo 1990-ųjų pabaigos tvirtino, kad atvirojo kodo OS yra tik metai, kol dominuoja darbalaukyje, niekada nepavyko pereiti prie vartotojų erdvė. Apskritai atvirasis šaltinis infrastruktūrai naudojamas kur kas labiau nei galutinio vartotojo programinei įrangai. Tačiau perėjimas nuo monolitinės programinės įrangos, kurią naudojate vietoje, prie „SaaS“ programų, yra pranašumas atviram šaltiniui, nes debesų pagrindu sukurta infrastruktūra daugiausia grindžiama šūsnimis, kuriose dominuoja atvirasis šaltinis.

Pamenate, ką pasakėme apie pelno siekiančias bendroves, palaikančias atvirąjį kodą? Dažnai tie projektai gaminami pagal leistiną licenciją, todėl šios įmonės gali įtraukti atvirojo kodo kodą į savo nuosavų pasiūlymų esmę, kartu išlaikydamos atskirą atvirojo kodo bazę kaip bendruomenės projektą. Pavyzdžiui, „Android“ mobiliajame OS yra „Linux“; visos „Apple“ mobiliosios ir darbalaukio OS yra pagrįstos „Darwin“ - atvirojo kodo operacine sistema, iš pradžių gauta iš „BSD Unix“. Net „Google“ „Chrome“ yra paremta atviro kodo naršykle, vadinama „Chromium“.

Atvirojo kodo bendruomenė ir atvirojo kodo judėjimas

Atvirasis šaltinis yra ne tik kūrimo procesas; tai filosofija, kuria žmonės aistringai susiduria, ir tai yra socialinė bendruomenė, prie kurios gali prisijungti visi, turintys programavimo įgūdžių. Iš tikrųjų tai yra visa eilė bendruomenių, kaip sako „Linux Foundation“. (Ne pelno organizacijų, tokių kaip „Linux Foundation“ ir OSI, egzistavimas yra svarbus tos bendruomenės aspektas.) Florianas Effenbergeris turi puikų esė apie tai, kaip atvirojo kodo bendruomenė praturtino jo gyvenimą.

Dažnai girdėsite žmones kalbant apie atvirojo kodo ar laisvos programinės įrangos judėjimą, kuris turi politinę ir propagavimo reikšmę. Daugybė žmonių atvirojo kodo bendruomenėje reikalavo plačiai naudoti atvirojo kodo programinę įrangą dėl įvairių priežasčių: jų manymu, atvirasis šaltinis sukuria iš esmės geresnį kodą arba mano, kad prieiga prie šaltinio kodo yra pagrindinė teisė, kuria turėtų naudotis kompiuterio vartotojai, ar koks nors jų derinys. Šis bendruomenės aspektas šiandien atrodo šiek tiek mažiau matomas, bet galbūt taip yra todėl, kad daugeliu atžvilgių laimėjo atvirasis šaltinis. Dar 2001 m. Tuometinis „Microsoft“ generalinis direktorius Steve'as Ballmeris sakė, kad dėl savo atvirojo kodo licencijos „Linux“ yra „vėžys, kuris intelektinės nuosavybės prasme prisiriša prie visko, ką liečia“. Šiandien „Microsoft“ yra platus atvirojo kodo programinės įrangos vartotojas ir gamintojas. Tai trumpai per pastaruosius du atvirojo kodo istorijos dešimtmečius.

Atsisiųsti atvirojo kodo programinę įrangą

Norite pradėti naršyti ir tinkinti atvirojo kodo projektus? Peržiūrėkite opensource.com puslapį „Projektai ir programos“, „GitHub“ skirtuką „Naršyti“ arba „Open Source Development Network“ programinės įrangos žemėlapį. Yra daug įdomių bet kokio lygio įgūdžių.