Šiame vertime gali nebūti pakeitimų, padarytų nuo 2017-06-16 ir esančių originale anglų kalba.
Jums reikėtų pažiūrėti tuos pakeitimus. Šio straipsnio vertimų palaikymo informaciją prašome pamatykite Vertimų PERSKAITYKITEMANE.
GNU projektas
pagal Richard Stallman
Pirmiausia publikuota knygoje Open Sources. Richard Stallman niekada nepalaikė „atviro šaltinio“, bet prisidėjo šiuo straipsniu, kad laisvos programinės įrangos judėjimo idėjos nebūtų visiškai paliktos nuošalyje tos knygos.
Kodėl tai yra dar svarbiau, nei bet kada anksčiau reikalauti, kad mūsų naudojama programinė įranga būtų laisva.
Pirmoji programine įranga besidalinanti bendruomenė
Kai aš 1971 m. pradėjau dirbti MIT Dirbtinio intelekto laboratorijoje, aš tapau dalimi programine įranga besidalinančios bendruomenės, kuri egzistavo daugelį metų. Dalinimasis programine įranga nebuvo kažkas tokio, ką darė konkrečiai mūsų bendruomenė; tai yra tiek sena, kiek kompiuteriai, kaip ir dalinimasis receptais yra tiek sena, kiek maisto ruošimas. Bet mes šitą darėme labiau nei dauguma.
Ta AI laboratorija naudojo laiko dalinimo operacinę sistemą, pavadintą ITS (Nesuderinamo laiko dalinimo sistema), kurią laboratorijos darbuotojai hakeriai (1) suprojektavo ir parašė Digital PDP-10 asemblerio kalba, vienam iš tos eros didžiulių kompiuterių. Kaip šios bendruomenės nario, AI laboratorijos darbuotojo sistemos hakerio, mano darbas buvo šitą sistemą pagerinti.
Mes nepavadinome mūsų programinę įrangą „laisva programine įranga“, nes tas terminas dar neegzistavo; bet tokia ji buvo. Kai tik žmonės iš kito universiteto arba kompanijos norėjo perkelti ir naudoti kokią nors programą, mes džiugiai jiems leisdavom. Jei jūs pamatydavote ką nors naudojantį nežinomą ir įdomią programą, jūs visada galėdavote paprašyti pamatyti šaltinio kodą, kad galėtumėte jį paskaityti, jį pakeisti ar išplėšti iš jo dalis, kad padaryti naują programą.
(1) „Hakeris“ naudojimas su reikšme „saugumo laužytojas“ yra masinės žiniasklaidos sumaištis. Mes, hakeriai, atsisakome tą reikšmę pripažinti ir tęsiame šio žodžio naudojimą su reikšme kas nors, kuris mėgsta programuoti, kuris džiaugiasi žaismingu gudrumu arba šių dviejų kombinacija. Pamatykite mano straipsnį Apie kapojimą.
Bendruomenės subyrėjimas
Ankstyvame 1980–1990 m. laikotarpyje, kai Digital nutraukė PDP-10 serijas, situacija pasikeitė drastiškai. Jo architektūra, elegantiška ir galinga septyniasdešimtaisiais, negalėjo natūraliai išsiplėsti iki didesnių adresų erdvių, kurios tapo vis labiau padaromos devyniasdešimtaisiais. Tai reiškė, kad beveik visos ITS sudarančios programos tapo nebenaudojamos.
AI laboratorijos hakerių bendruomenė jau buvo subyrėjusi, neilgai prieš tai. 1981 m., dukterinė kompanija Symbolics pasamdė beveik visus AI laboratorijos hakerius ir žmonių netekusi bendruomenė nebegalėjo savęs išlaikyti. (Knyga Hackers, pagal Steve Levy, apibūdina šiuos įvykius, taip pat ir suteikia aiškų šios bendruomenės jos viršūnėje vaizdą.) Kai 1982 m. AI laboratorija įsigijo naują PDP-10, jo administratoriai nusprendė naudoti Digital nelaisvą laiko dalinimo sistemą vietoje ITS.
Toje eroje modernūs kompiuteriai, tokie kaip VAX arba 68020, turėjo jų pačių operacines sistemas, bet nei viena iš jų nebuvo laisva programinė įranga: jums reikėdavo pasirašyti neatskleidimo sutartį net, kad gauti vykdomąją kopiją.
Tai reiškė, kad pirmas kompiuterio naudojimo žingsnis buvo pasižadėjimas nepadėti savo kaimynui. Bendradarbiaujanti bendruomenė buvo uždrausta. Taisyklė, kurią padarė nuosavybinės programinės įrangos savininkai, buvo: „Jei jūs pasidalinsite su savo kaimynu, jūs esate piratas. Jei pageidaujate kokių nors pakeitimų, maldaukite mūsų, kad juos padarytume.“
Idėja, kad nuosavybinės programinės įrangos socialinė sistema – sistema, kuri sako, kad jums neleidžiama dalintis arba pakeisti programinę įrangą – yra antisocialinė, kad ji yra neetiška, kad ji yra paprasčiausiai neteisi, kai kuriems skaitytojams gali pasirodyti stebinanti. Bet ką kitą mes galėtume pasakyti apie sistemą, paremtą visuomenės skaldymu ir naudotojų laikymu bejėgiais? Skaitytojai, kurie ta idėja stebisi, gali būti, kad nuosavybinės programinės įrangos socialinę sistemą priėmė kaip duotybę arba apie ją sprendė pagal nuosavybinės programinės įrangos verslų pasiūlytus terminus. Programinės įrangos leidėjai dirbo ilgai ir sunkiai, jog žmones įtikintų, kad yra tik vienas būdas žvelgti į šią problemą.
Kai programinės įrangos leidėjai kalba apie „užtikrinimą“ jų „teisių“ arba „piratavimo stabdymą“, ką jie iš tikrųjų sako nėra taip svarbu. Tikroji šių pareiškimų žinia yra nepareikštose prielaidose, kurias jie laiko savaime suprantamomis, kurias visuomenės prašoma priimti nenagrinėjant. Todėl panagrinėkime jas.
Viena prielaida yra ta, kad programinės įrangos kompanijos turi nesvarstomą prigimtinę teisę būti programinės įrangos savininkėmis ir, vadinasi, turėti galią visais savo naudotojais. (Jei tai būtų prigimtinė teisė, tada nesvarbu kiek daug žalos visuomenei ji padaro, mes negalėtume prieštarauti.) Įdomiai, JAV Konstitucija ir teisinė tradicija atmeta šį požiūrį; autorių teisės nėra prigimtinė teisė, bet dirbtinė vyriausybės sudaryta monopolija, kuri riboja naudotojų prigimtinę teisę kopijuoti.
Dar viena nepareikšta prielaida yra ta, kad vienintelis svarbus dalykas apie programinę įrangą yra kokius darbus ji jums leidžia atlikti – jog mums, kompiuterio naudotojams, neturėtų rūpėti kokio tipo visuomenę mums leidžiama turėti.
Trečia prielaida yra ta, kad mes neturėtume jokios naudojimui tinkamos programinės įrangos (arba niekada neturėtume programos atlikti šitą ar aną konkretų darbą) jei mes kokiai nors kompanijai nepasiūlėme tos programos galios naudotojais. Ši prielaida galbūt atrodė galima, prieš tai, kai laisvos programinės įrangos judėjimas pademonstravo, kad mes galime padaryti daug naudingos programinės įrangos ant jos neuždėdami grandinių.
Jei mes atsisakome priimti šitas prielaidas ir apie šias problemas sprendžiame remdamiesi paprastu sveiko proto morališkumu, tuo pačiu naudotojus pastatydami į pirmą vietą, mes atkeliaujame prie labai skirtingų išvadų. Kompiuterio naudotojai turėtų būti laisvi modifikuoti programas, kad tiktų jų poreikiams ir laisvi dalintis programine įranga, nes padėjimas kitiems žmonėms yra visuomenės pagrindas.
Čia nėra vietos išsamiam šios išvados pagrindimo pareiškimui, taigi, aš nukreipiu skaitytoją į šiuos tinklapius http://www.gnu.org/philosophy/why-free.html ir http://www.gnu.org/philosophy/free-software-even-more-important.html.
Grynai moralinis pasirinkimas
Dingus mano bendruomenei, tęsti kaip anksčiau buvo neįmanoma. Vietoje to, aš susidūriau su grynai moraliniu pasirinkimu.
Lengvasis pasirinkimas buvo prisijungti prie nuosavybinės programinės įrangos pasaulio, pasirašant neatskleidimo sutartis ir pažadant nepadėti savo bičiuliui hakeriui. Labai tikėtina aš vystyčiau programinę įrangą, kuri būtų išleista pagal neatskleidimo sutartis, šitaip prisidėdamas prie kitų žmonių spaudimo išduoti jų bičiulius irgi.
Galėjau uždirbti pinigų tokiu būdu ir galbūt save palinksminti rašant kodą. Bet aš žinojau, kad savo karjeros pabaigoje, aš prisiminčiau ankstesnius metus statant sienas žmonių padalinimui ir aš jausčiau savo gyvenimą praleidęs pasaulio padarymui blogesne vieta.
Aš jau buvau patyręs ką reiškia būti neatskleidimo sutarties gaunančiąja puse, kai kažkas atsisakė man ir MIT AI laboratorijai duoti mūsų spausdintuvo valdymo programos šaltinio kodą. (Kai kurių ypatybių šioje programoje trūkumas spausdintuvo naudojimą padarė labai varginančiu.) Taigi, aš negalėjau sau pasakyti, kad neatskleidimo sutartys yra nekaltos. Aš buvau labai supykęs, kai jis su mumis atsisakė pasidalinti; aš negalėjau apsisukti ir visiems kitiems daryti tą patį.
Dar vienas pasirinkimas, tiesioginis, bet nemalonus, buvo palikti kompiuterijos sritį. Tuo būdu, mano gebėjimai nebūtų netinkamai panaudoti, bet jie vis vien nueitų veltui. Aš nebūčiau kaltas dėl kompiuterio naudotojų atskyrimo ir apribojimo, bet tai vis tiek įvyktų.
Taigi, aš ieškojau būdo, kuriuo programuotojas galėtų padaryti kažką gero. Aš savęs paklausiau, ar buvo programa arba programos, kurias aš galėčiau parašyti, kad bendruomenė ir vėl būtų galima?
Atsakymas buvo aiškus: ko reikėjo pirmiausia, tai operacinės sistemos. Tai yra kritinė programinė įranga pradėti naudoti kompiuterį. Su operacine sistema, jūs galite daryti daug dalykų; be jos, jūs visiškai negalite leisti kompiuterio. Su laisva operacine sistema, mes ir vėl galėtume turėti bendradarbiaujančių hakerių bendruomenę – ir bet ką pakviesti prisijungti. Ir bet kas galėtų kompiuterį naudoti nepradėdamas ruoštis atimti iš jo ar jos draugų.
Kaip operacinės sistemos vystytojas, aš turėjau šiam darbui reikalingus įgūdžius. Taigi, nors aš ir negalėjau būti užtikrintas sėkme, aš supratau, kad aš buvau išrinktas atlikti šitą darbą. Aš pasirinkau šią sistemą padaryti suderinama su Unix, kad ją būtų galima perkelti ir, kad Unix naudotojai galėtų lengvai prie jos pereiti. Buvo pasirinktas pavadinimas GNU, laikantis hakerių tradicijos, kaip rekursyvus akronimas „GNU Nėra Unix“.
Operacinė sistema nereiškia tik branduolio, kurio vos užtektų leisti kitas programas. 1970–1980 m. laikotarpiu, kiekviena operacinė sistema, kuri buvo verta šio vardo, turėjo komandų procesorius, asemblerius, kompiliatorius, sąsajas, derintuves, teksto redaktorius, el. pašto programas ir daug daugiau. ITS jas turėjo, Multics jas turėjo, VMS jas turėjo ir Unix jas turėjo. GNU operacinė sistema jas irgi įtrauktų.
Vėliau man teko išgirsti šiuos žodžius, priskirtus Hillel (1):
Jei aš esu ne dėl savęs, kas bus už mane?
Jei aš esu tik dėl savęs, kas aš esu?
Jei ne dabar, kada?
Sprendimas pradėti GNU projektą buvo paremtas panašia dvasia.
(1) Kaip ateistas, aš jokių religinių lyderių neseku, bet aš kartais pastebiu, kad aš geriuosi kai kuo, ką vienas iš jų pasakė.
Laisva kaip laisvė
Terminas „laisva programinė įranga“ kartais yra suprantamas klaidingai – jis neturi nieko bendro su kaina. Jis yra apie laisvę. Todėl, čia yra laisvos programinės įrangos apibrėžimas.
Programa yra laisva programinė įranga, jums, konkrečiam naudotojui, jei:
- jūs turite laisvę leisti tą programą taip, kaip norite, bet kokiu tikslu;
- jūs turite laisvę tą programą modifikuoti taip, kad ji atitiktų jūsų poreikius. (Siekiant, kad ši laisvė būtų efektyvi praktiškai, jūs turite turėti prieigą prie jos šaltinio kodo, kadangi programos pakeitimų darymas neturint to šaltinio kodo yra be galo sunkus.);
- jūs turite laisvę išplatinti kopijas, arba už dyką, arba už mokestį;
- jūs turite laisvę platinti modifikuotas tos programos versijas taip, kad bendruomenė iš jūsų pagerinimų gali gauti naudos.
Kadangi „laisva“ reiškia laisvę, ne kainą, nėra prieštaravimo tarp kopijų pardavimo ir laisvos programinės įrangos. Iš tiesų, laisvė kopijas parduoti yra kritinė: laisvos programinės įrangos rinkiniai parduodami kompaktinėmis plokštelėmis yra svarbūs bendruomenei ir jų pardavimas yra svarbus būdas surinkti fondų laisvos programinės įrangos vystymui. Todėl, programa, kurios žmonėms neleidžiama įtraukti į šiuos rinkinius yra ne laisva programinė įranga.
Dėl „laisva“ dviprasmiškumo, žmonės ilgą laiką ieškojo alternatyvų, bet niekas geresnio termino nerado. Anglų kalba turi daugiau žodžių ir niuansų, nei bet kuri kita, bet jai trūksta paprasto, nedviprasmiško žodžio, kuris reiškia „laisva“ kaip laisvė – „nesupančiota“ yra žodis, kuris arčiausias savo prasme. Tokios alternatyvos, kaip „išlaisvinta“, „laisvė“ ir „atvira“ turi arba neteisingą reikšmę, arba kokį nors kitą trūkumą.
GNU programinė įranga ir GNU sistema
Visos sistemos vystymas yra labai didelis projektas. Siekiant prie jo priartėti, aš nusprendžiau adaptuoti ir naudoti egzistuojančios laisvos programinės įrangos dalis, kur tik buvo įmanoma šitą padaryti. Pavyzdžiui, aš iš pat pradžių nusprendžiau naudoti TeX kaip pagrindinį teksto formuotoją; keletą metų vėliau, aš nusprendžiau naudoti X Window System, o ne parašyti GNU dar vieną langų sistemą.
Dėl šių sprendimų, ir dėl kitų, į juos panašių, GNU sistema nėra tapati visam GNU programinės įrangos rinkiniui. Į GNU sistemą įtrauktos programos, kurios nėra GNU programinė įranga, programos, kurios buvo išvystytos kitų žmonių ir projektų jų pačių tikslams, bet kurias mes galime naudoti, nes jos yra laisva programinė įranga.
Projekto pradėjimas
1984 m. sausį aš išėjau iš darbo MIT ir pradėjau rašyti GNU programinę įrangą. MIT palikti buvo būtina tam, kad MIT negalėtų sutrukdyti GNU platinti kaip laisvą programinę įrangą. Jei aš būčiau likęs darbuotoju, MIT būtų galėję tvirtinti esantys to darbo savininkais ir galėjo sudaryti jų pačių platinimo sąlygas, ar net paversti tą darbą nuosavybinės programinės įrangos paketu. Aš neturėjau jokio siekio padaryti didžiąją dalį darbo tik tam, kad pamatyti kaip jis tampa beverčiu juo siektam tikslui: naujos programine įranga besidalinančios bendruomenės kūrimas.
Tačiau, profesorius Winston, tuometinis MIT AI laboratorijos vedėjas, maloniai man pasiūlė ir toliau naudoti laboratorijos priemones.
Pirmieji žingsniai
Neilgai iki GNU projekto pradžios, aš išgirdau apie Laisvo universiteto kompiliatoriaus komplektą, dar žinomą kaip VUCK. (Olandiškas žodis reiškiantis „laisva“ rašomas su v.) Tai buvo kompiliatorius, suprojektuotas susitvarkyti su keliomis kalbomis, įskaitant C ir Pascal, ir palaikyti kelias tikslines mašinas. Aš parašiau jos autoriui klausdamas ar GNU galėtų jį panaudoti.
Jis atsakė paniekinančiai, pareikšdamas, kad tas universitetas buvo laisvas, o kompiliatorius nebuvo. Todėl, aš nusprendžiau, kad mano pirmoji programa GNU projektui bus keliakalbis, keliaplatformis kompiliatorius.
Tikėdamasis išvengti poreikio visą kompiliatorių parašyti pačiam, aš gavau Pastel kompiliatoriaus šaltinio kodą, kuris buvo keliaplatformis kompiliatorius, išvystytas Lawrence Livermore laboratorijoje. Jis palaikė, ir buvo parašytas, išplėstą Pascal versiją, suprojektuotą būti sisteminio programavimo kalba. Aš pridėjau C priekinę dalį ir pradėjau perkelti jį į Motorola 68000 kompiuterį. Bet turėjau šitą apleisti, kai atradau, kad tam kompiliatoriui reikėjo daug megabaitų šūsnies atminties ir prieinama 68000 Unix sistema leistų tik 64k.
Aš tada supratau, kad Pastel kompiliatorius funkcionavo išanalizuodamas visą įvesties failą į sintaksinį medį, tą visą sintaksinį medį paversdamas į „instrukcijų“ grandinę ir tada sugeneruodamas visą išvesties failą, niekada neatlaisvindamas jokios atminties. Tuo metu, aš priėjau prie išvados, kad aš turėsiu parašyti naują kompiliatorių nuo pat pradžių. Tas naujas kompiliatorius dabar yra žinomas kaip GCC; nieko iš Pastel kompiliatoriaus jame nėra panaudota, bet man pavyko pritaikyti ir panaudoti C priekinę dalį, kurią buvau parašęs. Bet tai buvo po kažkiek metų vėliau; pirmiausia, aš dirbau prie GNU Emacs.
GNU Emacs
Darbą prie GNU Emacs pradėjau 1984 m. rugsėjį ir ankstyvais 1985 m. ji pradėjo būti tinkama naudojimui. Tai mane įgalino redagavimo darbams pradėti naudoti Unix sistemas; nesuinteresuotas mokintis naudoti vi arba ed, aš savo redagavimą iki to laiko atlikau su kitų tipų mašinomis.
Tuo metu, žmonės pradėjo pageidauti naudoti GNU Emacs, kas iškėlė klausimą kaip ją platinti. Žinoma, aš ją patalpinau į anoniminį FTP serverį, esantį MIT kompiuteryje, kurį aš naudojau. (Šis kompiuteris, prep.ai.mit.edu, taip tapo pagrindine GNU FTP platinimo vieta; kai po kelerių metų vėliau jis buvo nurašytas, mes perkėlėme tą vardą į mūsų naują FTP serverį.) Bet tuo metu, daug susidomėjusių žmonių nebuvo internete ir negalėjo gauti kopijos per FTP. Taigi, klausimas buvo, ką aš jiems pasakyčiau?
Aš galėjau pasakyti „Susiraskite draugą, kuris yra tinkle ir kuris jums padarys kopiją.“ Arba aš galėjau padaryti tai, ką padariau su originalia PDP-10 Emacs: pasakyti jiems „Atsiųskite man paštu kasetę ir SASE, ir aš atsiųsiu ją su Emacs atgal.“ Bet aš neturėjau darbo ir aš ieškojau būdų uždirbti pinigų iš laisvos programinės įrangos. Taigi, aš paskelbiau, kad aš paštu atsiųsiu kasetę bet kam, kas tokios norėjo, už 150 JAV dolerių mokestį. Tokiu būdu, aš pradėjau laisvos programinės įrangos platinimo verslą, kompanijų, kurios šiandien platina ištisas GNU/Linux sistemos distribucijas, pirmtaką.
Ar programa yra laisva kiekvienam naudotojui?
Jei programa yra laisva programinė įranga, kai ji palieka savo autoriaus rankas, tai nebūtinai reiškia ji bus laisva programinė įranga visiems, kurie turi jos kopiją. Pavyzdžiui, viešosios srities programinė įranga (programinė įranga be autorių teisių) yra laisva programinė įranga; bet bet kas gali padaryti nuosavybinę modifikuotą jos versiją. Analogiškai, daug laisvų programų turi autorių teises, bet platinamos pagal paprastas, daug ką leidžiančias licencijas, kurios leidžia nuosavybines, modifikuotas versijas.
Paradigminis šitos problemos pavyzdys yra X Window System. Išvystyta MIT ir išleista kaip laisva programinė įranga su daug ką leidžiančia licencija, ją greitai priėmė įvairios kompiuterių kompanijos. Jos prie savo nuosavybinių Unix sistemų pridėjo X, tik dvejetaine forma, ir padengtą ta pačia neatskleidimo sutartimi. Šios X kopijos buvo nedaugiau laisva programinė įranga, nei buvo Unix.
X Window System autoriai šito nelaikė problema – jie šito tikėjosi ir siekė, kad įvyktų. Jų tikslas nebuvo laisvė, tik „sėkmė“, apibūdinta kaip „daug naudotojų turėjimas“. Jiems nerūpėjo ar šie naudotojai turėjo laisvę, tik, kad jų turėtų būti daug.
Tai privedė prie paradoksalios situacijos, kai du skirtingi būdai skaičiuoti laisvės kiekį suteikė skirtingus atsakymus į klausimą: „Ar ši programa yra laisva?“ Jei jūs sprendėte pasiremdami laisve, suteikta pagal MIT išleidimo platinimo sąlygas, jūs sakytumėte, kad X yra laisva programinė įranga. Bet jei jūs matavote vidutinio X naudotojo laisvę, jūs turėtumėte pasakyti ji buvo nuosavybinė programinė įranga. Dauguma X naudotojų leido nuosavybines versijas, kurios atkeliavo kartu su Unix sistemomis, ne tą laisvą versiją.
Copyleft ir GNU GPL
GNU tikslas buvo naudotojams suteikti laisvę, o ne tik būti populiaria. Taigi, mums reikėjo naudoti platinimo sąlygas, kurios neleistų GNU programinę įrangą paversti į nuosavybinę programinę įrangą. Metodas, kurį mes naudojame, pavadintas „copyleft“. (1)
Copyleft naudoja autorių teisių įstatymą, bet jį apverčia tenkinti atvirkštinį, nei jo įprastinis tikslas: vietoje programą suvaržančių priemonių, jis tampa priemonėmis tos programos išlaikymui laisva.
Esminė copyleft idėja yra ta, kad mes visiems suteikiame leidimą leisti programą, nukopijuoti programą, modifikuoti programą ir modifikuotas versijas platinti – bet ne leidimą jiems pridėti savų suvaržymų. Taip, kritinės laisvės, kuriomis apibrėžiama „laisva programinė įranga“ yra garantuojamos kiekvienam, kuris turi kopiją; jos tampa neatimamomis teisėmis.
Efektingam copyleft, modifikuotos versijos taip pat turi būti laisvos. Tai užtikrina, kad darbas, paremtas mūsiškiu, tampa prieinamas mūsų bendruomenei jei jis yra paviešintas. Kai programuotojai, kurie dirba programuotojais, savanoriauja pagerinti GNU programinę įrangą, būtent copyleft neleidžia jų darbdaviams sakyti: „Jūs negalite tais pakeitimais pasidalinti, nes mes juos ruošiamės naudoti mūsų nuosavybinės tos programos versijos padarymui.“
Reikalavimas, kad pakeitimai privalo būti laisvi yra esminis jei mes norime užtikrinti laisvę kiekvienam programos naudotojui. Tos kompanijos, kurios privatizavo X Window System, įprastai padarydavo kokius nors pakeitimus, kad perkeltų ją į savo sistemas ir techninę įrangą. Šitie pakeitimai, palyginus su didele X apimtimi, buvo maži, bet jie nebuvo nereikšmingi. Jei pakeitimų padarymas buvo pasiteisinimas naudotojams nesuteikti laisvės, kiekvienam būtų lengva pasinaudoti šituo pasiteisinimu.
Susijusi problema apima laisvos programos ir nelaisvo kodo apjungimą. Tokia kombinacija neišvengiamai būtų nelaisva; nesvarbu kurių laisvių trūktų nelaisvai daliai, jų trūktų ir tai visumai taip pat. Tokių kombinacijų leidimas atvertų tokią skylę, kurios pakaktų nuskandinti laivą. Todėl, kritinis reikalavimas copyleft yra užkimšti šitą skylę: bet kas pridedamas prie arba apjungiamas su copyleft programa privalo būti toks, kad didesnė apjungta versija yra taip pat laisva ir su copyleft.
Copyleft konkretus įgyvendinimas, kurį mes naudojame daugumai GNU programinės įrangos yra GNU bendroji viešoji licencija, arba trumpai GNU GPL. Mes turime kitokių tipų copyleft, kurie yra naudojami prie tam tikrų aplinkybių. GNU vadovėliai irgi yra su copyleft, bet naudoja daug paprastesnį copyleft tipą, nes GNU GPL sudėtingumas nėra vadovėliams būtinas. (2)
(1) 1984 m. ar 1985 m., Don Hopkins (labai kūrybiškas bičiulis) paštu man atsiuntė laišką. Ant voko jis užrašė keletą linksmų posakių, įskaitant šį: „Copyleft – visos teisės išvirkščios.“ Aš panaudojau žodį „copyleft“ pavadinti platinimo koncepciją, kurią tuo metu vysčiau.
(2) Mes dabar dokumentacijai naudojame GNU laisvos dokumentacijos licenciją.
Laisvos programinės įrangos fondas
Kol interesas naudoti Emacs augo, kiti žmonės įsitraukė į GNU projektą ir mes nusprendėme, kad buvo laikas ir vėl siekti finansavimo. Taigi, 1985 m. mes sukūrėme Laisvos programinės įrangos fondą (FSF), nuo mokesčių atleistą labdarą laisvos programinės įrangos vystymui. FSF taip pat perėmė tą Emacs kasečių platinimo verslą; vėliau jis šitą išplėtė į kasetę pridedant kitą laisvą programinę įrangą (abi GNU ir ne GNU) ir parduodant laisvus vadovėlius taip pat.
Didžioji FSF pajamų dalis ateidavo iš laisvos programinės įrangos kopijų ir kitų susijusių paslaugų pardavimų (šaltinio kodo kompaktinių plokštelių, kompaktinių plokštelių su dvejetainiais failais, gražiai išspausdintų vadovėlių, visi su laisve išplatinti ir modifikuoti), ir Liukso distribucijų (distribucijos, kurioms mes sukonstravome visą programinės įrangos rinkinį pagal kliento pasirinktą platformą). Šiandien FSF vis dar parduoda vadovėlius ir kitus daiktus, bet didžiąją dalį savo finansavimo gauna iš narių narystės mokesčių. Jūs galite prisijungti prie FSF čia fsf.org.
Laisvos programinės įrangos fondo darbuotojai parašė ir palaikė eilę GNU programinės įrangos paketų. Du išskirtiniai yra C biblioteka ir kiautas1. GNU C biblioteka yra tai, ką naudoja kiekviena programa, leidžiama GNU/Linux sistemoje, komunikacijai su Linux. Ją išvystė Laisvos programinės įrangos fondo darbuotojų narys, Roland McGrath. Tas kiautas, naudojamas daugumoje GNU/Linux sistemų, yra BASH – Bourne Again Shell (1), kurį išvystė FSF darbuotojas Brian Fox.
Mes finansavome šių programų vystymą, nes GNU projektas nebuvo tik apie įrankius arba vystymo aplinką. Mūsų tikslas buvo išbaigta operacinė sistema ir šios programos buvo reikalingos tam tikslui.
(1) „Bourne Again Shell“ yra žodžių žaismas pavadinimu „Bourne Shell“, kuris buvo įprastinis Unix kiautas.
Laisvos programinės įrangos palaikymas
Laisvos programinės įrangos filosofija atmeta konkrečią paplitusią verslo praktiką, bet ji nėra prieš verslą. Kai verslai gerbia naudotojų laisvę, mes jiems linkime sėkmės.
Emacs kopijų pardavimas demonstruoja vieną laisvos programinės įrangos verslo tipą. Kai FSF perėmė tą verslą, man reikėjo kito būdo užsidirbti pragyvenimui. Aš jį radau parduodamas paslaugas, susietas su laisva programine įranga, kurią aš išvysčiau. Į tai įėjo mokymas, tokiomis temomis, kaip kaip suprogramuoti GNU Emacs ir kaip sureguliuoti GCC, ir programinės įrangos vystymas, daugiausia GCC perkėlimas į naujas platformas.
Šiandien kiekvieną iš šių laisvos programinės įrangos verslo tipų praktikuoja eilė korporacijų. Kai kurios platina laisvos programinės įrangos rinkinių kompaktines plokšteles; kitos parduoda palaikymą, lygiais nuo atsakymų į naudotojo klausimus iki klaidų taisymo, iki didelių naujų ypatybių pridėjimo. Mes pradedame matyti net laisvos programinės įrangos kompanijas, paremtas naujų laisvos programinės įrangos produktų paleidimu.
Nors būkite atsargūs – eilė kompanijų, kurios asocijuoja save su terminu „atviras šaltinis“ iš tikrųjų savo biznį paremia nelaisva programine įranga, kuri veikia kartu su laisva programine įranga. Šios nėra laisvos programinės įrangos kompanijos, jos yra nuosavybinės programinės įrangos kompanijos, kurių produktai naudotojus vilioja toliau nuo laisvės. Jos šias programas vadina „pridėtinės vertės paketais“, kas parodo vertybes, kurias jie pageidautų, kad mes priimtume: patogumas pirmiau laisvės. Jei mes laisvę vertiname labiau, mes turėtume jas vadinti „atimtos laisvės“ paketais.
Techniniai tikslai
Pagrindinis GNU tikslas yra būti laisva programine įranga. Net jei GNU neturėtų jokio techninio privalumo už Unix, ji turėtų socialinį privalumą, leidžiantį naudotojams bendradarbiauti ir etinį privalumą – naudotojo laisvės gerbimą.
Bet buvo natūralu pritaikyti žinomus geros praktikos standartus darbams – pavyzdžiui, dinamiškai paskirti duomenų struktūras, kad išvengti parinktų fiksuotos apimties ribų ir sutvarkyti visus galimus 8 bitų kodus, kai tik tai turėjo prasmę.
Papildomai, mes atmetėme Unix koncentravimąsi į mažą apimtį atmintyje, nuspręsdami nepalaikyti 16 bitų mašinų (buvo aišku, kad 32 bitų mašinos taps norma tuo metu, kai GNU sistema bus pabaigta) ir neskirti jokių pastangų sumažinti atminties panaudojimą, nebent jis viršijo megabaitą. Programoms, kurioms labai didelių failų tvarkymas nebuvo kritinis, mes skatinome programuotojus nuskaityti visą įvesties failą į šerdį, tada skenuoti jo turinį nepergyvenant dėl įvesties ir išvesties.
Šie sprendimai daug GNU programų įgalino aplenkti savo Unix atitikmenis patikimumu ir greičiu.
Paaukoti kompiuteriai
Kol augo GNU projekto reputacija, žmonės pradėjo siūlyti šiam projektui paaukoti leidžiančias Unix mašinas. Jos buvo labai naudingos, nes lengviausias būdas vystyti GNU komponentus buvo tai daryti pačioje Unix sistemoje ir po vieną pakeisti tos sistemos komponentus. Bet jos iškėlė etinę problemą: ar mums buvo teisinga aplamai turėti Unix kopiją.
Unix buvo (ir yra) nuosavybinė programinė įranga ir GNU projekto filosofija sakė, kad mes neturėtume naudoti nuosavybinės programinės įrangos. Bet, taikant tą patį pagrindimą, kuris veda prie išvados, jog smurtas ginant save yra pateisinamas, aš padariau išvadą, kad buvo pagrįsta naudoti nuosavybinį paketą, kai tai buvo kritiška laisvo pakaitalo, kuris kitiems padėtų sustoti naudoti tą nuosavybinį paketą, vystymui.
Bet, net jei tai buvo pateisinamas blogis, vis tiek tai buvo blogis. Šiandien mes nebeturime jokių Unix kopijų, nes mes jas pakeitėme laisvomis operacinėmis sistemomis. Jei mes pakeisti mašinos operacinės sistemos į laisvą negalėjome, vietoje to mes pakeitėme mašiną.
GNU užduočių sąrašas
GNU projektui judant į priekį ir vis daugiau sisteminių komponentų buvo surasta arba išvystyta, pagaliau tapo naudinga sudaryti likusių tarpų sąrašą. Mes jį naudojome samdyti autoriams parašyti trūkstamas dalis. Šis sąrašas tapo žinomas kaip GNU užduočių sąrašas. Papildomai prie trūkstamų Unix komponentų, mes išvardinome įvairią kitą naudingą programinę įrangą ir dokumentacijos projektus, kuriuos, mes manėme, tikrai išbaigta sistema turi turėti.
Šiandien (1), vargu ar yra Unix komponentų, likusių GNU užduočių sąraše – tie darbai buvo atlikti, šalimais kai kurių neesminių. Bet tas sąrašas yra pilnas projektų, kuriuos kai kurie gali pavadinti „aplikacijomis“. Bet kokia programa, kuri traukia daugiau, nei siaurą naudotojų klasę, būtų naudingas dalykas pridėti prie operacinės sistemos.
Net žaidimai yra įtraukti į tą užduočių sąrašą – ir buvo nuo pat pradžių. Unix įtraukė žaidimus, taigi, natūraliai, GNU turėtų irgi. Bet suderinamumas žaidimais nebuvo problema, tad mes nesekėme žaidimų, kuriuos turėjo Unix, sąrašo. Vietoje to, mes išvardinome skirtingų tipų žaidimų, kurie gali patikti naudotojams, spektrą.
(1) Anie buvo parašyti 1998 m. 2009 m. mes daugiau nepalaikome ilgo užduočių sąrašo. Bendruomenė vysto laisvą programinę įrangą taip greitai, kad mes net negalime visos jos stebėti. Vietoje to, mes turime Aukšto prioriteto projektų sąrašą – daug trumpesnis projektų, kuriuos mes tikrai norime paskatinti žmones parašyti, sąrašas.
GNU bibliotekos GPL
GNU C biblioteka naudoja specialaus tipo copyleft, pavadintą GNU bibliotekos bendroji viešoji licencija (1), kuri suteikia leidimą susieti nuosavybinę programinę įrangą su šia biblioteka. Kodėl padaryti šią išimtį?
Tai nėra principo reikalas; nėra principo, kuris sako nuosavybinės programinės įrangos produktams priklauso įtraukti mūsų kodą. (Kam prisidėti prie projekto, kuris iš anksto aišku, kad atsisakys su mumis pasidalinti?) LGPL naudojimas C bibliotekai, arba bet kokiai bibliotekai, yra strategijos reikalas.
Ta C biblioteka atlieka bendrinį darbą; kiekviena nuosavybinė sistema arba kompiliatorius turi C biblioteką. Todėl, mūsų C biblioteką padaryti prieinamą tik laisvai programinei įrangai nebūtų laisvai programinei įrangai suteiktą jokio privalumo – tai tik būtų atbaidę nuo mūsų bibliotekos naudojimo.
Viena sistema šitam yra išimtis: GNU sistemoje (ir į tai įeina GNU/Linux), GNU C biblioteka yra vienintelė C biblioteka. Taigi, GNU C bibliotekos platinimo sąlygos apsprendžia ar yra įmanoma GNU sistemai sukompiliuoti nuosavybinę programą. Nėra jokios etinės priežasties GNU sistemoje leisti nuosavybines aplikacijas, bet strategiškai panašu, kad jų neleidimas labiau atbaidytų nuo GNU sistemos naudojimo, nei paskatintų laisvų aplikacijų vystymą. Štai todėl Bibliotekos GPL naudojimas yra gera strategija tai C bibliotekai.
Kitoms bibliotekoms, strateginis sprendimas turi būti apsvarstytas kiekvieno atskiro atvejo pagrindu. Kai biblioteka atlieka specialų darbą, kuris gali padėti parašyti tam tikrų tipų programas, tada, jos išleidimas pagal GPL, ją apribojant tik laisvoms programoms, yra būdas padėti kitiems laisvos programinės įrangos autoriams, jiems suteikiant privalumą prieš nuosavybinę programinę įrangą.
Apsvarstykite GNU Readline – biblioteką, kuri buvo išvystyta BASH suteikti komandinės eilutės redagavimą. Readline yra išleista pagal įprastą GNU GPL, ne Bibliotekos GPL. Tai tikėtina sumažina Readline naudojimą, bet tai mums nėra praradimas. Tuo metu, bent viena naudinga aplikacija buvo padaryta laisva programine įranga konkrečiai, kad ji galėtų naudoti Readline ir tai yra bendruomenei tikras laimėjimas.
Nuosavybinės programinės įrangos autoriai turi privalumus, kuriuos suteikia pinigai; laisvos programinės įrangos autoriams reikia susikurti privalumus vienas kitam. Aš tikiuosi, kad vieną dieną mes turėsime didelį rinkinį bibliotekų, kurioms taikoma GPL, kurios neturi joms prilygstančių prieinamų nuosavybinei programinei įrangai, suteikiančių naudingus modulius, tarnaujančius sudedamosiomis dalimis naujai laisvai programinei įrangai, ir prisidedančių prie didelio privalumo tolimesniam laisvos programinės įrangos vystymui.
(1) Ši licencija dabar pavadinta GNU mažiau bendroji viešoji licencija, jog išvengti suteikti idėją, kad visos bibliotekos turi ją naudoti. Pamatykite daugiau informacijos Kodėl jūs savo kitai bibliotekai neturėtumėte naudoti Mažiau GPL.
Niežulio kasymas?
Eric Raymond sako, kad „Kiekvienas geras programinės įrangos darbas pradedamas kasant autoriaus asmeninį niežulį.“ Galbūt taip kartais atsitinka, bet daug esminių GNU programinės įrangos dalių buvo išvystytos siekiant turėti išbaigtą laisvą operacinę sistemą. Jos ateina iš vizijos ir plano, ne impulsyviai.
Pavyzdžiui, mes išvystėme GNU C biblioteką, nes sistemai panašiai į Unix reikia C bibliotekos, BASH, nes sistemai panašiai į Unix reikia kiauto ir GNU tar, nes sistemai panašiai į Unix reikia tar programos. Tas pat yra tiesa mano paties programoms – GNU C compiler, GNU Emacs, GDB ir GNU Make.
Kai kurios GNU programos buvo išvystytos susidoroti su konkrečiomis grėsmėmis mūsų laisvei. Todėl, mes išvystėme gzip pakeisti Compress programą, kurią bendruomenė prarado dėl LZW patentų. Mes suradome žmonių vystyti LessTif ir nepersenai pradėjome GNOME ir Harmony, kad spręstume problemas, sukeltas kai kuriomis nuosavybinėmis bibliotekomis (pažiūrėkite toliau). Mes vystome GNU Privacy Guard pakeisti populiarią nelaisvą šifravimo programinę įrangą, nes naudotojai neturėtų rinktis tarp privatumo ir laisvės.
Žinoma, šias programas rašantys žmonės tapo tuo darbu susidomėję ir daug ypatybių prie jų pridėjo įvairūs žmonės savo pačių poreikių ir interesų labui. Bet tai nėra tai kodėl tos programos egzistuoja.
Netikėtos plėtotės
GNU projekto pradžioje, aš įsivaizdavau, kad mes išvystysime visą GNU sistemą, tada ją išleisime kaip visumą. Ne taip tai įvyko.
Kadangi kiekvienas GNU sistemos komponentas buvo įgyvendintas Unix sistemoje, kiekvienas komponentas galėjo būti leidžiamas Unix sistemose anksti iki išbaigtos GNU sistemos egzistavimo. Kai kurios iš šių programų tapo populiariomis ir naudotojai pradėjo jas išplėsti ir jas perkelti – į įvairias nesuderinamas Unix versijas, ir kartais į kitas sistemas taip pat.
Šis procesas šias programas padarė daug galingesnėmis ir prie GNU projekto pritraukė ir fondų, ir prisidedančių. Bet jis greičiausiai taip pat keletą metų prailgino minimaliai veikiančios sistemos pabaigimą, nes GNU autorių laikas buvo paskirtas šių perkėlimų palaikymui ir ypatybių prie egzistuojančių komponentų pridėjimui, o ne tęsti rašyti vieną trūkstamą komponentą po kito.
GNU Hurd
1990 m., GNU sistema buvo beveik pabaigta; vienintelis didelis trūkstamas komponentas buvo branduolys. Mes nusprendėme mūsų branduolį įgyvendinti kaip serverio procesų rinkinį, leidžiamą ant Mach. Mach yra mikrobranduolys, išvystytas Carnegie Mellon universitete ir tada Utah universitete; GNU Hurd yra serverių rinkinys (t. y. GNU banda), kuris leidžiamas Mach viršuje ir atlieka įvairius Unix branduolio darbus. Vystymo pradžia buvo atidėta, kol mes laukėme Mach išleidimo kaip laisva programinė įranga, kaip buvo pažadėta.
Viena priežastis šio dizaino pasirinkimui buvo išvengti to, kas atrodė yra sunkiausia to darbo dalis: branduolio programos derinimas neturint šaltinio lygio derintuvės tam padaryti. Ši darbo dalis jau buvo padaryta, su Mach, ir mes tikėjomės suderinti Hurd serverius kaip naudotojo programas, su GDB. Bet tą padaryti įmanomu užtruko ilgai ir daugiagijus serverius, kurie vienas kitam siunčia žinutes, gavosi, kad yra labai sunku suderinti. Hurd padarymas dirbti užtikrintai užsitęsė daugelį metų.
Alix
Iš pradžių GNU branduolys neturėjo būti pavadintas Hurd. Jo originalus pavadinimas buvo Alix – pavadintas pagal moterį, kuri tuo metu buvo mano mylimoji. Ji, Unix sistemos administratorė, pabrėžė kaip jos vardas tiktų įprastam pavadinimų suteikimo Unix sistemos versijoms braižui; kaip juoką, ji savo draugams pasakė: „Kažkas turėtų branduolį pavadinti pagal mane.“ Aš nieko nepasakiau, bet nusprendžiau ją nustebinti su branduoliu pavadintu Alix.
Taip neišliko. Michael (dabar Thomas) Bushnell, pagrindinis to branduolio autorius, pirmenybę teikė pavadinimui Hurd ir iš naujo apibrėžė Alix taikyti į tam tikrą to branduolio dalį – dalis, kuri sistemos kvietimus patalpintų į spąstus ir juos tvarkytų siųsdama žinutes Hurd serveriams.
Vėliau, Alix ir aš išsiskyrėme ir ji pasikeitė savo vardą; nepriklausomai, Hurd dizainas buvo pakeistas taip, kad C biblioteka siųstų žinutes tiesiogiai serveriams ir tai Alix komponentą pašalino iš to dizaino.
Bet prieš tai, kai šie dalykai įvyko, jos draugas Hurd šaltinio kode pastebėjo Alix vardą ir jai šitą paminėjo. Taigi, ji turėjo progą atrasti branduolį, pavadintą pagal ją.
Linux ir GNU/Linux
GNU Hurd nėra tinkamas gamybiniam naudojimui ir mes nežinome ar jis toks kada nors bus. Gebėjimais paremtas dizainas turi problemų, kurios kyla tiesiogiai iš tokio dizaino lankstumo ir nėra aišku ar sprendimai egzistuoja.
Laimei, kitas branduolys yra prieinamas. 1991 m., Linus Torvalds išvystė su Unix suderinamą branduolį ir pavadino jį Linux. Jis iš pradžių buvo nuosavybinis, bet 1992 m. jis jį padarė laisva programine įranga; Linux apjungimas su nevisai išbaigta GNU sistema virto išbaigta laisva operacine sistema. (Žinoma, jų apjungimas buvo savaime reikšmingas darbas.) Linux dėka mes galime šiandien iš tikrųjų leisti GNU sistemos versiją.
Šią sistemos versiją mes vadiname GNU/Linux, kad išreikštume jos sudėtį kaip GNU sistemos ir Linux, kaip branduolio, kombinaciją. Prašome nepasiduokite praktikai visą tokią sistemą vadinti „Linux“, kadangi tai reiškia mūsų darbo priskyrimą kažkam kitam. Prašome lygiaverčiai pamynėkite mus.
Mūsų ateities iššūkiai
Mes įrodėme savo gebėjimą vystyti plataus spektro laisvą programinę įrangą. Tai nereiškia mes esame nepažeidžiami ir nesustabdomi. Keletas iššūkių laisvos programinės įrangos ateitį daro neužtikrinta; susitvarkymui su jais reikės užtikrintų pastangų ir ištvermės, kartais užtrunkant metais. Tam reikės tokio tipo apsisprendimo, kurį žmonės parodo, kai jie vertina savo laisvę ir niekam neleis jos atimti.
Toliau pateikti keturi skyriai aptaria šiuos iššūkius.
Slapta techninė įranga
Techninės įrangos gamintojai vis labiau linkę techninės įrangos specifikacijas išlaikyti paslaptyje. Tai apsunkina laisvų tvarkyklių rašymą taip, kad Linux ir XFree86 galėtų palaikyti naują techninę įrangą. Šiandien mes turime išbaigtas laisvas sistemas, bet mes jų neturėsime rytoj jei mes negalėsime palaikyti rytojaus kompiuterių.
Yra du būdai tvarkytis su šia problema. Programuotojai gali atlikti atgalinę inžineriją išsiaiškinti kaip tokią techninę įrangą palaikyti. Likusi mūsų dalis gali pasirinkti tą techninę įrangą, kuri yra palaikoma laisva programine įranga; kai tokių kaip mes skaičius išaugs, specifikacijų slaptumas taps juos pačius nugalinčia politika.
Atgalinė inžinerija yra didelis darbas; ar mes turėsime programuotojų su pakankamu pasiryžimu jos imtis? Taip – jei mes įgijome stiprų jausmą, kad laisva programinė įranga yra principo reikalas ir nelaisvos tvarkyklės yra netoleruotinos. Ir ar daug iš mūsų papildomai išleis pinigų, ar net skirs truputi papildomo laiko, kad mes galėtume naudoti laisvas tvarkykles? Taip, jei tas pasiryžimas turėti laisvę yra plačiai paplitęs.
(2008 m. pastaba: ši problema apima BIOS taip pat. Yra laisva BIOS – LibreBoot (coreboot distribucija); problema yra specifikacijų mašinoms gavimas taip, kad LibreBoot galėtų jas palaikyti be nelaisvų „blobs“2.)
Nelaisvos bibliotekos
Nelaisva biblioteka, kuri leidžiama laisvose operacinėse sistemose, veikia kaip spąstai laisvos programinės įrangos autoriams. Tokios bibliotekos patrauklios ypatybės yra jaukas; jei jūs naudojate tokią biblioteką, jūs patenkate į tuos spąstus, nes jūsų programa negali naudingai būti laisvos operacinės sistemos dalimi. (Tiesą sakant, mes jūsų programą galėtume įtraukti, bet ji neveiks be tos bibliotekos.) Net blogiau, jei programa, kuri naudoja tą nuosavybinę biblioteką, tampa populiaria, ji gali į tokius spąstus privilioti kitus nieko neįtariančius programuotojus.
Pirmasis šios problemos atvejis buvo Motif įrankių komplektas, praėjusiais aštuoniasdešimtaisiais. Nors dar nebuvo laisvų operacinių sistemų, buvo aišku kokią problemą Motif vėliau joms sukels. GNU projektas atsakė dvejais būdais: individualių laisvos programinės įrangos projektų prašydamas palaikyti laisvus X Toolkit valdiklius kartu su Motif ir prašydamas, kad kas nors parašytų laisvą Motif pakaitalą. Šiam darbui prireikė daug metų; LessTif, Hungry Programmers išvystytas, tik 1997 m. tapo pakankamai galingu palaikyti daugumai Motif aplikacijų.
Tarp 1996 m. ir 1998 m., dar viena nelaisva GUI įrankių komplekto biblioteka, pavadinta Qt, buvo naudojama reikšmingame laisvos programinės įrangos rinkinyje – darbastalyje KDE.
Laisvos GNU/Linux sistemos negalėjo naudoti KDE, nes mes negalėjome naudoti tos bibliotekos. Tačiau, kai kurie komerciniai GNU/Linux sistemų platintojai, kurie nebuvo griežti dėl laisvos programinės įrangos laikymosi, pridėjo KDE prie savo sistemų – pagamindami daugiau gebėjimų, bet mažiau laisvės turinčią sistemą. KDE grupė aktyviai ragino daugiau programuotojų naudoti Qt ir milijonai naujų „Linux naudotojų“ niekada nebuvo susidūrę su idėja, kad šitai turėjo problemą. Situacija atrodė gąsdinančiai.
Laisvos programinės įrangos bendruomenė atsakė į šią problemą dviem būdais: GNOME ir Harmony.
GNOME – GNU tinklo objektinio modelio aplinka, yra GNU darbastalio projektas. Pradėta 1997 m. Miguel de Icaza ir vystyta su Red Hat Software palaikymu, GNOME buvo paruošta pateikti panašias darbastalio priemones, bet naudojant išskirtinai laisvą programinę įrangą. Ji turi techninių privalumų taip pat, tokių kaip įvairių kalbų palaikymas, ne tik C++. Bet jos pagrindinis tikslas buvo laisvė: nereikalauti naudoti jokios nelaisvos programinės įrangos.
Harmony yra suderinama pakaitinė biblioteka, suprojektuota, kad būtų įmanoma leisti KDE programinę įrangą nenaudojant Qt.
1998 m. lapkritį, Qt autoriai paskelbė apie licencijos pakeitimą, kuris, kai bus įvykdytas, turėtų Qt padaryti laisva programine įranga. Nėra jokio būdo įsitikinti, bet aš manau, kad taip iš dalies atsitiko dėl bendruomenės tvirto atsako į šią problemą, kurią Qt kėlė, kai ji buvo nelaisva. (Ta nauja licencija yra nepatogi ir neadekvati, taigi, išlieka pageidautina vengti Qt naudojimo.)
[Vėlesnė pastaba: 2000 m. rugsėjį, Qt buvo išleista pagal GNU GPL, kas iš esmės šią problemą išsprendė.]
Kaip mes atsakysime kitai viliojančiai nelaisvai bibliotekai? Ar visa bendruomenė supras poreikį išlikti už tų spąstų? Ar daug iš mūsų atsisakys laisvės dėl patogumo ir sukurs didelę problemą? Mūsų ateitis priklauso nuo mūsų filosofijos.
Programinės įrangos patentai
Didžiausia grėsmė su kuria mes susiduriame kyla iš programinės įrangos patentų, kurie gali algoritmus ir ypatybes patalpinti už laisvos programinės įrangos ribų iki 20 metų. LZW suglaudinimo algoritmo patentai pradėti taikyti 1983 m. ir mes vis dar negalime išleisti laisvos programinės įrangos pagaminti tinkamai suglaudintiems GIF. [2009 m. jų galiojimas baigėsi.] 1998 m., laisva programa pagaminti MP3 suglaudintam audio buvo pašalinta iš distribucijos dėl patentinės bylos grėsmės.
Yra būdų tvarkytis su patentais: mes galime ieškoti įrodymų, kad patentas yra negaliojantis ir mes galime ieškoti alternatyvių būdų atlikti darbą. Bet kiekvienas iš šių metodų suveikia tik kartais; kai abiems nepavyksta, patentas gali priversti visą laisvą programinę įrangą turėti kokios nors ypatybės, kurios nori naudotojai, trūkumą. Ką mes darysime, kai šitai atsitiks?
Tie iš mūsų, kurie vertina laisvą programinę įrangą dėl laisvės pasiliks su laisva programine įranga bet kuriuo atveju. Mes sugebėsime atlikti darbą be tų patentuotų ypatybių. Bet tie, kurie laisvą programinę įrangą vertina, nes jie tikisi, jog ji yra techniškai geresnė, tikėtina, kad, kai patentas ją sulaikys, šitą pavadins nesėkme. Taigi, kai yra naudinga kalbėti apie “turgaus” vystymo modelio praktinį efektyvumą ir kokios nors laisvos programinės įrangos patikimumą ir galią, mes ties tuo privalome nesustoti. Mes privalome kalbėti apie laisvę ir principą.
Laisva dokumentacija
Didžiausias mūsų laisvų operacinių sistemų trūkumas nėra programinėje įrangoje – tai yra gerų laisvų vadovėlių, kuriuos mes galime įtraukti į mūsų sistemas, trūkumas. Dokumentacija yra bet kurio programinės įrangos paketo esminė dalis; kai svarbus laisvos programinės įrangos paketas nepristatomas kartu su geru laisvu vadovėliu, tai yra didelė spraga. Šiandien mes turime daug tokių spragų.
Laisva dokumentacija, kaip laisva programinė įranga, yra laisvės reikalas, ne kainos. Kriterijus laisvam vadovėliui yra daug maž toks pat, kaip ir laisvai programinei įrangai: tai yra visiems naudotojams tam tikrų laisvių suteikimo reikalas. Išplatinimas (įskaitant komercinį pardavimą), prisijungus ir popieriumi, turi būti leidžiamas taip, kad tą vadovėlį galima būtų pridėti prie kiekvienos tos programos kopijos.
Leidimas modifikuoti yra kritinis irgi. Kaip bendra taisyklė, aš netikiu, kad žmonėms yra esminga turėti leidimą modifikuoti įvairiausių rūšių straipsnius ir knygas. Pavyzdžiui, aš nemanau, kad jūs arba aš privalome suteikti leidimą modifikuoti straipsnius, kaip šitas, kurie apibūdina mūsų veiksmus ir mūsų požiūrius.
Bet yra konkreti priežastis, kodėl laisvė modifikuoti yra laisvos programinės įrangos dokumentacijai kritinė. Kai žmonės naudojasi savo teise modifikuoti programinę įrangą ir prideda arba pakeičia jos ypatybes, jei jie yra kruopštūs, jie pakeis vadovėlį irgi – kad jie galėtų pateikti tikslią ir naudojimui su modifikuota programa tinkamą dokumentaciją. Nelaisvas vadovėlis, kuris neleidžia programuotojams būti kruopščiais ir užbaigti darbą, mūsų bendruomenės poreikių neišpildo.
Tam tikrų tipų ribos tam, kaip yra atliekamos modifikacijos nekelia problemų. Pavyzdžiui, reikalavimai išsaugoti pirmojo autoriaus autorių teisių pastabą, platinimo sąlygas arba autorių sąrašą, yra priimtini. Taip pat nėra problemos reikalauti modifikuotose versijose įtraukti pastabą, jog jos buvo modifikuotos, net turėti ištisus skyrius, kurių negalima ištrinti arba pakeisti tol, kol šie skyriai nagrinėja netechnines temas. Šių tipų suvaržymai nėra problema, nes jais nestabdomas kruopštus programuotojas vadovėlį pritaikyti atitikti modifikuotą programą. Kitais žodžiais, jie neblokuoja laisvos programinės įrangos bendruomenės nuo visiško vadovėlio panaudojimo.
Tačiau, turi būti įmanoma modifikuoti visą techninį vadovėlio turinį ir tada rezultatą platinti visomis įprastomis terpėmis, visais įprastais kanalais; kitu atveju, suvaržymai trukdo bendruomenei, vadovėlis nėra laisvas ir mums reikia dar vieno vadovėlio.
Ar laisvos programinės įrangos autoriai turės supratimą ir pasiryžimą pagaminti visą spektrą laisvų vadovėlių? Dar kartą, mūsų ateitis priklauso nuo filosofijos.
Mes privalome kalbėti apie laisvę
Šiandien yra apskaičiuota, kad yra dešimt milijonų GNU/Linux sistemų, tokių kaip Debian GNU/Linux ir Red Hat „Linux“, naudotojų. Laisva programinė įranga išvystė tokius praktinius privalumus, kad naudotojai prie jos buriuojasi grynai dėl praktinių priežasčių.
Geros šito pasekmės yra akivaizdžios: didesnis susidomėjimas laisvos programinės įrangos vystymu, daugiau klientų laisvos programinės įrangos verslams ir didesnė galimybė kompanijas paskatinti vystyti komercinę laisvą programinę įrangą, vietoje nuosavybinės programinės įrangos produktų.
Bet susidomėjimas šia programine įranga auga sparčiau, nei filosofijos, kuria ji yra paremta, supratimas ir tai veda prie problemos. Mūsų gebėjimas susitvarkyti su anksčiau apibūdintais iššūkiais ir pavojais priklauso nuo valios tvirtai stovėti už laisvę. Siekiant užtikrinti, kad mūsų bendruomenė šią valią turi, mums reikia skleisti tą idėją naujiems naudotojams, kai jie ateina į šią bendruomenę.
Bet mums taip padaryti nepavyksta: pastangos į mūsų bendruomenę pritraukti naujų naudotojų toli viršija pastangas juos mokyti mūsų bendruomenės socialumo. Mums reikia daryti abi ir mums reikia išlaikyti šias dvi pastangas subalansuotas.
„Atviras šaltinis“
Naujų naudotojų mokymas apie laisvę 1998 m. tapo sunkesniu, kai dalis bendruomenės nusprendė nebenaudoti termino „laisva programinė įranga“ ir vietoje jo sakyti „atviro šaltinio programinė įranga“.
Kai kurie, teikę šiam terminui pirmenybę, siekė išvengti „laisva“ dviprasmybės su „nemokama“ – pateisinamas tikslas. Tačiau, kiti siekė į šalį nustumti principo, kuris motyvavo laisvos programinės įrangos judėjimą ir GNU projektą, dvasią ir vietoje to apeliuoti į vedėjus ir verslo naudotojus, daug kurių laikosi ideologijos, kuri pelną pastato aukščiau laisvės, aukščiau bendruomenės, aukščiau principo. Taigi, „atviro šaltinio“ retorika koncentruojasi į potencialą padaryti aukštos kokybės, galingą programinę įrangą, bet atsikrato laisvės, bendruomenės ir principo idėjų.
„Linux“ žurnalai yra aiškus šito pavyzdys – jie yra prigrūsti nuosavybinės programinės įrangos, kuri veikia su GNU/Linux, reklamų. Kai atsiras kitas Motif arba Qt, ar šie žurnalai programuotojus įspės likti jo nuošalyje, ar jie rodys jo reklamas?
Verslo parama gali įvairiai prisidėti prie bendruomenės; laikant, kad visa kita yra lygu, ji yra naudinga. Bet jų paramos gavimas dar mažiau kalbant apie laisvę ir principą gali būti katastrofiškas; jis ankstesnį išsibalansavimą tarp siekio ir socialumo švietimo padaro dar blogesniu.
„Laisva programinė įranga“ ir „atviras šaltinis“ apibūdina, daugiau arba mažiau, tą pačią programinės įrangos kategoriją, bet sako skirtingus dalykus apie programinę įrangą ir apie vertybes. GNU projektas tęsia termino „laisva programinė įranga“ naudojimą išreikšti idėjai, kad laisvė, ne tik technologija, yra svarbi.
Pabandykite!
Yoda aforizmas („Nėra jokio „pabandykite““) skamba neblogai, bet jis manęs neveikia. Aš didžiumą savo darbo atlikau būdamas sunerimęs dėl to ar aš galėsiu atlikti tą darbą ir netikras, kad jo užteks pasiekti tą tikslą jei jį atliksiu. Bet aš vis tiek pabandžiau, nes tarp priešo ir mano miesto nebuvo nei vieno išskyrus mane. Nustebinant save, kartais man pavykdavo.
Kartais man nepavykdavo; kai kurie mano miestai krito. Tada aš atradau dar vieną į pavojų patekusį miestą ir pasiruošiau dar vienai kovai. Su laiku, aš išmokau ieškoti pavojų ir pastatyti save tarp jų ir mano miesto, kviesdamas kitus hakerius ateiti ir prie manęs prisijungti.
Šiomis dienomis, dažnai aš nebesu vienintelis. Tai yra palengvėjimas ir malonumas, kai aš matau hakerių pulką kasančius gilyn, kad išlaikytų liniją ir aš suvokiu, šis miestas gali išgyventi – kol kas. Bet tie pavojai su kiekvienais metais yra vis didesni ir dabar Microsoft aiškiai nusitaikė į mūsų bendruomenę. Mes negalime laisvės ateitį laikyti užtikrinta. Nelaikykite jos užtikrinta! Jei jūs norite išlaikyti savo laisvę, jūs privalote būti pasiruošę ją apginti.
Vertėjo pastabos
- Tekstinių komandų įvesties ir interpretavimo-vykdymo programinė aplinka.
- blobs – objektinio kodo gabaliukai, platinami be šaltinio, įprastai įmontuotoji programinė įranga kokio nors įrenginio veikimui.