7Jul
Geeks dažnai apibūdina programas kaip "atviro kodo" arba "nemokamą programinę įrangą". Jei norite žinoti, ką tiksliai reiškia šie terminai ir kodėl jie svarbūs, perskaitykite.(Ne, "nemokama programinė įranga" reiškia ne tik tai, kad galite ją atsisiųsti nemokamai.)
Nesvarbu, ar programa yra atviro kodo, ar ne, tai ne tik svarbu kūrėjams, bet ir galutiniams vartotojams. Atvirojo kodo programinės įrangos licencijos suteikia vartotojams laisves, kurių jie neturėtų.
Image Credit: Quinn Dombrowski dėl "Flickr"
Atvirojo kodo apibrėžimas
Jei programa yra atviro kodo, jos šaltinis yra laisvai prieinama vartotojams. Jos vartotojai - ir visi kiti - gali sugerti šį kodą, keisti jį ir platinti savo versijas. Vartotojai taip pat gali platinti tiek originalių programų kopijas, kiek jų nori. Kiekvienas gali naudoti programą bet kokiam tikslui;licencijos mokesčiai ar kiti apribojimai programinei įrangai nėra. OSI turi išsamesnį "atvirojo šaltinio" apibrėžimą savo interneto svetainėje.
Pavyzdžiui, "Ubuntu Linux" yra atviro kodo operacinė sistema. Galite atsisiųsti "Ubuntu", sukurti tiek daug kopijų, kiek norite, ir pateikti juos savo draugams. Ubuntu galite įdiegti neribotą skaičių jūsų kompiuterių.Jūs galite sukurti remiksus įdiegimo diske Ubuntu ir platinti juos. Jei jums buvo ypač motyvuoti, galite atsisiųsti programinės įrangos šaltinio kodą Ubuntu ir jį keisti, sukurdami savo pritaikytą šios programos versiją - arba pačią "Ubuntu".Tai leidžia atlikti atvirojo kodo licencijas, o uždarojo tipo licencijos suteikia jums apribojimus.
Priešingai nei atvirojo kodo programinė įranga, tai yra uždaros programinės įrangos, kuri turi licenciją, kuri riboja naudotojus ir saugo iš jų pradinį kodą.
"Firefox", "Chrome", "OpenOffice", "Linux" ir "Android" yra keletas populiarių atvirojo kodo programinės įrangos pavyzdžių, o "Microsoft Windows" yra turbūt labiausiai populiarus uždarų šaltinių programinės įrangos produktas.
Open Source vs Free Software
Atviro kodo programos paprastai yra laisvai prieinamos - nors niekas neužkerta kelio programuotojui apmokestinti programinės įrangos egzempliorius, jei jie leidžia perskirstyti programą ir jos šaltinio kodą vėliau.
Tačiau tai nėra tai, ką reiškia "nemokama programinė įranga"."Nemokama" nemokama programine įranga reiškia "laisvas kaip laisvė", o ne "nemokamai kaip alus". "Free Software" stovykloje, kuriai vadovauja Richardas Stallmanas ir "Free Software Foundation", dėmesys telkiamas į programinės įrangos naudojimo etiką ir moralę.valdomas ir modifikuotas vartotojo. Kitaip tariant, laisvosios programinės įrangos namuose dėmesys skiriamas vartotojų laisvėms.
Richard Stallman. Fripog paveikslėlis Flickr.
Atvirojo kodo programinės įrangos judėjimas buvo sukurtas siekiant sutelkti dėmesį į pragmatiškesnes šio tipo programinės įrangos pasirinkimo priežastis. Atvirojo kodo gynėjai norėjo sutelkti dėmesį į praktinę naudą atvirojo kodo programinei įrangai, kuri labiau atitiktų įmones, o ne etiką ir moralę.
Galiausiai tiek atvirojo kodo, tiek nemokamos programinės įrangos palaikytojai kuria tą patį programinę įrangą, tačiau jie nesutaria dėl pranešimų siuntimo.
Licencijų tipai
Yra daug skirtingų licencijų, kurias naudoja atvirojo kodo projektai, priklausomai nuo to, ko kūrėjai pageidauja savo programai.
GPL arba GNU General Public License yra plačiai naudojama daugelyje atvirojo kodo projektų, tokių kaip "Linux".Be visų anksčiau pateiktų "atvirojo kodo" apibrėžimų, GPL sąlygos nurodo, kad jei kas nors keičia atviro kodo programą ir išplatina išvestinį darbą, jie taip pat turi platinti išvestinių kūrinių šaltinio kodą.Kitaip tariant, niekas negali priimti atvirojo kodo ir kurti uždarojo kodo programą - jie turi grąžinti savo pakeitimus atgal į bendruomenę.Dėl šios priežasties "GPL" nurodė, kad "virusinė" yra "virusinė", nes ji verčia programas, į kurias įtrauktas GPL kodas, norint išleisti savo šaltinio kodą.Žinoma, programos kūrėjai gali pasirinkti nenaudoti GPL kodo, jei tai yra problema.
Kai kuriose kitose licencijose, tokiose kaip BSD licencija, kūrėjams suteikiama mažiau apribojimų.Jei programa yra licencijuota pagal BSD licenciją, kiekvienas gali įtraukti programos šaltinio kodą į kitą programą.Jiems nereikia išleisti jų pakeitimų atgal į bendruomenę.Kai kurie žmonės mato, kad tai yra dar "nemokama" nei GPL licencija, nes ji suteikia kūrėjams laisvę įtraukti kodą į savo uždarojo kodo programas, o kai kurie žmonės mano, kad tai yra mažiau "laisva", nes jis užima teisesiš galutinės programos vartotojų.
nauda vartotojams
Tai ne visi sausas, nesvarbus dalykas, kuris yra svarbus tik kūrėjams. Akivaizdžiausias atvirojo kodo programinės įrangos privalumas yra tas, kad jis gali būti nemokamas. Ankstesnis Ubuntu Linux pavyzdys leidžia tai padaryti aišku - skirtingai nei Windows, galite įdiegti ar platinti tiek daug Ubuntu kopijų, kiek norite, be jokių apribojimų.Tai gali būti ypač naudingi serveriai - jei sukursite serverį, galėsite įdiegti Linux.jei nustatote virtualų serverių grupę, galite lengvai kopijuoti vieną Ubuntu serverį.Jums nereikia nerimauti dėl licencijavimo ir kiek Linux atvejų jums leidžiama paleisti.
Atviro kodo programa taip pat yra lankstesnė.Pavyzdžiui, "Windows 8" nauja sąsaja nuliūdo daugybę senų "Windows" naudotojų.Kadangi "Windows" yra uždaras šaltinis, "Windows" vartotojas negali "Windows 7" sąsajos, keisti ir tinkamai veikti "Windows 8".( Kai kurie "Windows" vartotojai bando, tačiau tai kruopštus procesas, skirtas atvirkštinio inžinerijos ir dvejetainių failų modifikavimui.)
Kai "Linux" darbastalyje, pvz., "Ubuntu", įdiegiama nauja darbalaukio sąsaja, kurią kai kurie vartotojai nėra gerbėjai, vartotojai turi daugiau galimybių.Pavyzdžiui, kai buvo išleista GNOME 3, daugelis "Linux" darbastalio naudotojų buvo vienodai išjungtos. Kai kurie naudojo kodą senai GNOME 2 versijai ir pakeitė ją, kad būtų paleista naujausiuose "Linux" paskirstytuose - tai yra MATE.Kai kurie naudojo kodą GNOME 3 ir jį pakeitė, kad jis veiktų taip, kaip jiems pageidavo - tai yra cinamonas. Kai kurie vartotojai tiesiog perėjo prie esamų alternatyvių stalinių kompiuterių.Jei "Windows" buvo atviro kodo, "Windows 8" vartotojai turėtų daugiau pasirinkimo ir lankstumo. Tiesiog pažvelkite į "CyanogenMod", populiarią, bendruomenėje veikiantį "Android" paskirstymą, kuris papildo funkcijas ir palaiko naujus įrenginius.
atviro kodo programinė įranga taip pat leidžia kūrėjams "stovėti ant milžiniškų pečių" ir kurti savo programinę įrangą."Android" ir "Chrome OS", kurie yra operacinės sistemos, sukurtos naudojant "Linux" ir kitą atviro kodo programinę įrangą."Apple OS X" - ir "iOS" - branduolys taip pat buvo sukurtas pagal atvirojo kodo kodą.Valve nerimauja dėl "Steam" žaidimų platformos perkėlimo į "Linux", nes tai leistų jiems kurti savo aparatinę įrangą ir kontroliuoti savo likimą tokiu būdu, kurio neįmanoma "Microsoft" Windows.
Tai nėra išsamus aprašymas - visos knygos buvo parašytos šia tema - tačiau dabar turėtumėte geriau suprasti, kas iš tiesų yra atvirojo kodo programinė įranga ir kodėl tai jums naudinga.