Arvatakse, et gnu projekt sai alguse aastal. Vaba tarkvara ideoloogia ja GNU projekt: hetkeseis ja vahetud ülesanded

TH.arial ( font-family: Arial, Serif;) P.topic ( font-family: sans-serif;) A.plain ( teksti kaunistus: puudub;) A.topic01 ( värv: #006890; fondiperekond: sans-serif; tekstidekoratsioon: puudub;) A.topic02 ( värv: #099771; font-family: sans-serif; text-decoration: none;) A.topic03 ( värv: #719709; font-family: sans- serif; tekstidekoratsioon: puudub;) A.topic04 ( värv: #98650A; font-family: sans-serif; text-decoration: none;) A.topic05 ( värv: #98340A; font-family: sans-serif; tekstidekoratsioon: puudub;) A.topic06 ( värv: #099607; fondiperekond: sans-serif; tekstidekoratsioon: puudub;) A.topic07 ( värv: #9E1215; fondiperekond: sans-serif; tekst- kaunistus: puudub;) A.topic08 ( värv: #970941; fondiperekond: sans-serif; tekstidekoratsioon: puudub;) A.topic09 ( värv: #950995; fondiperekond: sans-serif; tekstidekoratsioon: puudub;) A.topic010 ( värv: #390A98; fondiperekond: sans-serif; tekstidekoratsioon: puudub;) H1 (fondiperekond: sans-serif;) H2 (fondiperekond: sans-serif;) H3 (fondiperekond: sans-serif;) H4 (fondiperekond: sans-serif;) H5 (fondiperekond: sans-serif;) H6 (fondiperekond: sans-serif;)

Vaba tarkvara ideoloogia ja GNU projekt: hetkeseis ja vahetud ülesanded

S.D.Kuznetsov

Free Software Foundation (FSF) on väga huvitav ja paljuski erandlik nähtus kaasaegses programmeerimismaailmas. Paljud kodumaised programmeerijad on pidanud tegelema FSF-i programmidega (eriti tuntud on GCC programmeerimissüsteem), kuid venekeelsete väljaannete vähesus raskendab FSF-i ideoloogia ja eesmärkide mõistmist ning muudab võimatuks ka hinnangu andmise. olemasolevat alustööd. Selle lühikese artikli eesmärk on see lünk vähemalt osaliselt täita. Kogu artikkel põhineb FSF-i materjalidel ja seetõttu võib selle organisatsiooni üldpõhimõtete kohaselt vabalt kordustrükkida, kopeerida või muul viisil levitada (selle teate kohaselt).

1. FSF ideoloogia ja GNU projekti üldised eesmärgid

FSF on tarkvaraorganisatsioon, mille asutas ja juhib Richard Stallman. Kõige üldisemas sõnastuses on FSF-i eesmärk kaotada arvutiprogrammide kopeerimise, levitamise, uurimise ja muutmise piirangud. Selle üldise eesmärgi saavutamiseks julgustab FSF arendama ja kasutama tasuta tarkvara, mis on suunatud laiale rakenduste klassile.

Oma 1985. aastal kirjutatud GNU manifestis esitab R. Stallman vastuseisu tarkvara omandile kui peamisele ideele, mis viis FSF ja GNU projekti tekkeni. Programmeerimiskogukonna suhete iseärasused seavad inimesed sageli valiku ette, kas järgida loomulikku sõprustunnet ja vastastikust abi või alluda seda takistavatele omandiseadustele. Vaba tarkvara puhul kaob vajadus selliste koormavate valikute järele.

Integreeritud vabatarkvarasüsteemi loomine väldib programmeerijate dubleerivat tööd (mida sageli nõutakse vaid seetõttu, et tarkvara on patenteeritud). Programmide lähtekoodide tasuta levitamine hõlbustab nende hooldamist ja kohandamist konkreetse kasutaja vajadustega (ei ole vaja kasutada ainult lähtekoodi litsentse omavate ettevõtete teenuseid). Siin on täiendav ja väga oluline võimalus kasutada head tarkvara hariduslikel eesmärkidel.

R. Stallmani sõnul ei sure programmeerijad vabale tarkvarale ülemineku ajal nälga (kuigi ilmselt teenivad nad mõnevõrra vähem). Tarkvara kopeerimise piiramine ei ole ainus viis raha teenida. Stallmani põhiidee on see, et müüa pole vaja tarkvara, vaid programmeerija töö. Eelkõige võib sissetulekuallikaks olla tarkvarasüsteemide hooldus või nende seadistamine kasutamiseks uutes arvutites ja/või uutes tingimustes, õppetöö jms.

Stallmani "Manifest" on kirjutatud väga emotsionaalselt ja kohati liiga utoopiline. Sellegipoolest näib, et vaba tarkvara ideed on ajalooliselt lähedased traditsioonilistele (kui väga hiljutised aastad välja arvata) Nõukogude programmeerijate suhetele. Võib-olla on FSF-i liin kõige loomulikum tee kodumaiste ja maailma programmeerimiskogukondade sügavale integratsioonile.

Täpsemalt arendab FSF programme GNU projekti raames (lühend GNU on laiendatud rekursiivselt – GNU "s Not Unix). GNU projekti eesmärk on luua terviklik integreeritud tarkvarasüsteem, mille tööriistad ühilduvad Unix OS keskkonna võimalused (reeglina on GNU programmide võimalused Unixi keskkonna analoogide laiemad võimalused).

FSF-i tarkvara on "tasuta" kahes mõttes. Esiteks saab iga programmi vabalt kopeerida ja kellelegi üle kanda. Teiseks annab programmide lähtekoodide olemasolu võimaluse programme vabalt uurida, neid täiustada ja muudetud versioone levitada.

Nii nagu tavaliste tarkvarafirmade õigused on kaitstud nende autoriõiguse sümboliga, on ka FSF-i tarkvarasüsteemide "vabadus" kaitstud "copyleft"-ga – autoriõiguse ja kõigis FSF-i tekstides leiduva dokumendi kombinatsiooniga "GNU General Public License". See dokument sätestab õigused, mis on selle teksti igal praegusel omanikul, ja võimatust neid õigusi kelleltki teiselt isikult ilma jätta.

FSF-i põhitegevuseks on uute vaba tarkvara komponentide arendamine GNU projekti raames. Enamasti areneb GNU projekt plaanipäraselt (vt eriti selle artikli jaotist 3), kuid FSF aktsepteerib ka tasuta levitamise programme, mille on välja töötanud ettevõtted ja üksikisikud omal algatusel. Lisaks toodab ja müüb FSF tasuta tarkvara linte, valmistab ette, avaldab ja levitab GNU tarkvara erinevate komponentide käsiraamatuid ning haldab ja levitab teenuste kataloogi, nimekirja ettevõtetest ja isikutest, kes pakuvad GNU programmide kasutajatele tasulisi teenuseid ja süsteemid.

FSF-i rahaline alus on lintide ja dokumentatsiooni müük, samuti äriettevõtete ja üksikisikute sponsorlus.

2. Saadaval GNU tarkvara

Praegu ei ole kõik GNU Projecti tarkvara komponendid valmis. Kuid FSF levitab paljusid programme, millest osa on kirjutanud otse FSF-i programmeerijad ja osad esitatakse FSF-ile tasuta levitamiseks teiste organisatsioonide ja üksikisikute poolt. Loetleme lühidalt FSF-i praegu levitatavad tarkvaratooted.

Emacs on laiendatav redaktor, mida saab kohandada erinevat tüüpi terminalidele ja kasutajate vajadustele. Toimetaja laiendatavus põhineb redaktorisse sisseehitatud Lispi keeletõlgi (Common Lisp dialect) kasutamisel. Koos redaktori lähtekoodiga levitatakse Emacsi kasutamise käsiraamatuid ja Lisp-keeles programmeerimise viitejuhendit Emacsi keskkonnas.

Bison asendab standardset Yacci parserigeneraatorit mõne laiendusega. Samuti levitatakse juhendit.

Lispi keele lihtsustatud murde kaks teostust – skeem: üks MIT-ist (kirjutatud C-keeles), teine ​​Yale'i ülikoolist (kirjutatud skeemis).

Utiliit texi2roff on loodud TeX-vormingus tekstifailide teisendamiseks Unix OS-i roff-vormingus tekstifailideks (FSF-i poolt masinakandjal levitatud dokumentatsioon on TeX-vormingus).

Utiliidid tekstifailide pakkimiseks/lahtipakkimiseks.

GNU maleprogramm.

GNU CC on kaasaskantav C-keele optimeeriv kompilaator. Toetab täielikult ANSI C standardit. Sisaldab tööriistu uute arvutite koodigeneraatorite poolautomaatseks ehitamiseks. Levitatakse koos juhendiga.

Ühekäiguline kaasaskantav GAS-koostaja, mis on peaaegu kaks korda kiirem kui tavaline Unixi OS-i monteerija.

Objektifailidega töötamiseks mõeldud utiliitide tasuta versioonid: ar, ld, nm, suurus, gprof, strip ja ranlib. Samuti levitatakse uut dünaamilise laadimise utiliiti dld.

GNU make sisaldab peaaegu kõiki BSD, System V ja POSIX make utiliitide funktsioone ning sisaldab ka mitmeid laiendusi. Jaotatakse koos juhendiga.

GDB silurit saab kasutada C, C++ ja Fortrani keeltes kirjutatud programmide silumiseks. Jaotatakse koos juhendiga.

BASH (Bourne Again SHell) – GNU Shell ühildub standardse Unixi sh käsuga ja sisaldab mitmeid teistest Shelli variantidest saadud laiendusi.

GAWK on Unix OS-i standardse AWK-utiliidi GNU versioon.

flex on standardse leksikaalanalüsaatori generaatori lex GNU asendus. flex võimaldab hankida skannereid, mis on tõhusamad kui lex.

GNU tar on standardse arhiiviutiliidi tar laiendatud versioon.

Mõned BSD 4.3-tahoe failid, mis ei sisalda AT&T lähtekoodi ja mille Berkeley ülikool avaldas tasuta levitamiseks. Need failid sisaldavad eelkõige mõnede utiliitide, mängude, raamatukogu rutiinide jne täielikke lähtetekste.

Süsteemid, mis toetavad suurte tarkvaraprojektide programmiversioonidega töötamist, RCS (Revision Control System) ja CVS (Concurrent Version System).

Utiliitide grep ja diff tasuta versioonid on kiiremad kui tavalised.

Ghostscript on peaaegu täielikult Postscriptiga ühilduv graafiline keel.

Interaktiivne programm matemaatiliste avaldiste ja andmete gnuploti joonistamiseks.

Tööriistade komplekt GCC kompilaatori muutmiseks C++ keele kompilaatoriks, sealhulgas täiustatud klassiteegid.

Suur hulk X11 programme, X-Windowsi MIT-i juurutamine (versioon 11, väljalase 4). Artikli ulatus ei võimalda meil sellel üksikasjalikumalt peatuda.

Põhimõtteliselt on kõik FSF-i levitatavad programmid loodud töötama Unixi keskkonnas ja neid kasutatakse juba selle süsteemi erinevate variantidega, kuid on olemas ka mõnede programmide versioonid VMS-i ja isegi MS-DOS-iga töötamiseks.

3. GNU projekti kohesed ülesanded

GNU projekti raames plaanitavate tööde loetelu on üsna ulatuslik. Anname vaid põgusa ülevaate põhisuundadest.

3.1. Dokumentatsioon

Juba lõpetatud või valmimisjärgus programmide jaoks on vaja ette valmistada mitmeid käsiraamatuid: C-keele viitejuhend, GCC kirjeldus, sealhulgas sihtmasinate määramise juhend, rakendussüsteemide programmeerimise juhend. X-Windowsi keskkond jne.

3.2. Projektid, mis on seotud tasuta Unixi tuuma arendamisega

FSF töötab Unixi tuuma loomise kallal, mis põhineb vabal Machi mikrokernelil. Kohesed ülesanded hõlmavad TCP/IP võrguprotokollide ja uue failisüsteemi juurutamist (lootust on kasutada mõnda valmisprogrammi, mis eeldatavasti vabaks kuulutatakse). On ka muid ülesandeid, sealhulgas OS-i kerneli kaugsiluja arendamine.

3.3. Tasuta Unixi keskkonna arendamine

Vajalik on mõne utiliiti juurutamine (sdiff, mailx, join jne). On vaja arendada mitmeid raamatukogusid. Ülesannete hulgas on kasutajasõbralike terminali liidese tööriistade väljatöötamine.

3.4. Olemasoleva GNU tarkvara laiendused

Põhimõtteliselt vajavad täiustamist Emacs, GCC ja GDB.

Seoses Emacsiga on vaja parandada kahte valdkonda: Emacsi tööriistade laiendamine, et redaktorit saaks kasutada avaldamissüsteemina, ja Emacsi täielik rahvusvahelistumine, mis tagab võimaluse kasutada mis tahes rahvuslikku tähestikku.

Pärsia lahe koostöönõukogu tuleb ajakohastada, et lahendada mahajäänud märkuste hulk ja rakendada olemasolevaid ettepanekuid (kommentaaride ja ettepanekute loend jagatakse koos GCC-ga).

GDB vajab täiustamist seoses C-keele tõlgi lisamisega silurisse; Mõningaid täiustusi on vaja ka selleks, et GDB-d saaks kasutada muudes keeltes kui C-keeles kirjutatud programmide silumisel.

3.5. Uued koostajad

On vaja juurutada kompilaatorid mitmete programmeerimiskeelte (Algol, Algol-68, PL/1, Ada jne) jaoks, millel on juurdepääs GCC koodigeneraatorile. (Selline töö on juba käimas Fortrani, Pascali ja Modula-2 keelte puhul.)

3.5. Palju muid projekte

GNU projekti praeguses eelseisvate ülesannete loendis on palju muid erinevaid töid. Olgu mainitud soov saada tasuta analooge süsteemidele Page Maker, Ventura Pablisher, dbase2 või dbase3 jne. Nõuab X-Windowsi jaoks mitmeid programme. Jne. ja nii edasi.

4. Kuidas saada rohkem teavet ja/või GNU programme

Kaasaegsetes kodutingimustes on FSF-iga suhtlemiseks kõige parem kasutada e-posti. FSF-i kontaktohvitser GNU projektiga liitumisest huvitatud inimeste jaoks on Walter Poxon. Tema meiliaadress: GNU tarkvaraga lintide vastuvõtmise reeglite kohta saate ka FSF-ist. Kahjuks ei sobi see looduslik tee praegusesse nõukogude reaalsusesse kuigi hästi (lintide eest tasumine, kuigi sümboolne, on siiski kõvas valuutas).

Meie riigis on tegelikult kõik need lindid olemas. Iga omanik on FSF-i mängureeglite kohaselt kohustatud edendama nende edasist levitamist. Kahjuks on see üsna suur tehniline töö. Nõukogude UNIX OS-i kasutajate assotsiatsioon (SUUG) plaanib kohe, kui tehnilised tingimused seda võimaldavad, ette võtta tasuta tarkvara levitamise oma liikmetele ja lintide tasulise kopeerimise kõigile (see on lähikuude küsimus). Kõik SUUG-i liikmed saavad asjakohase teabe e-posti teel või tavalisel SUUG-i aadressil: 125502, Moskva, st. Lavochkina, 19.

Kirjandus.

  1. Richard M. Stallman. GNU manifest.
  2. GNU üldine avalik litsents // Vaba Tarkvara Sihtasutus, 1989.
  3. GNU bülletään // Vaba Tarkvara Sihtasutus, 1991.
  4. GNU Task List (perioodiliselt uuendatav fail, saadaval e-posti teel; põhinesime 24. juuli 1991 versioonil)

Algselt avaldatud raamatus Avatud allikad. Richard Stallman oli, kuid panustas sellesse artiklisse, et vaba tarkvara liikumise ideed sellest raamatust täielikult puudu ei jääks.

Esimene tarkvara jagamise kogukond

Kui asusin 1971. aastal MIT tehisintellekti laborisse tööle, sai minust osa tarkvara jagamise kogukonnast, mis oli eksisteerinud aastaid. Tarkvara jagamine ei piirdunud meie konkreetse kogukonnaga; see on sama vana kui arvutid, nagu retseptide jagamine on sama vana kui toiduvalmistamine. Kuid me tegime seda rohkem kui enamik.

AI ​​Lab kasutas ajajagamise operatsioonisüsteemi nimega ITS (ühildumatu ajajagamise süsteem), mille labori häkkerid (1) olid koostanud ja koostajakeeles kirjutanud. Selle eest Digitaalne PDP-10, üks ajastu suuri arvuteid. Selle kogukonna liikmena, AI Labi personalisüsteemi häkkerina, oli minu ülesanne seda süsteemi täiustada.

Me ei nimetanud oma tarkvara vabaks tarkvaraks, sest seda terminit veel ei eksisteerinud; aga nii see oli. Alati, kui mõne teise ülikooli või ettevõtte inimesed soovisid mõnda programmi portida ja kasutada, laseme neil hea meelega. Kui nägite kedagi kasutamas tundmatut ja huvitavat programmi, võite alati paluda näha lähtekoodi, et saaksite seda lugeda, muuta või osa sellest uue programmi loomiseks kannibaliseerida.

(1) Sõna „häkker” kasutamine „turvamurdja” tähenduses tekitab kasutajate segadust. massimeedia. Meie, häkkerid, keeldume seda tähendust tunnustamast ja jätkame selle sõna kasutamist, et tähendada kedagi, kes armastab programmeerida, kedagi, kes naudib mängulist nutikust või nende kahe kombinatsiooni. Vaadake minu artiklit Häkkimise kohta.

Ühiskonna kokkuvarisemine

Olukord muutus drastiliselt 1980. aastate alguses, kui Digital lõpetas PDP-10 seeria tootmise. Selle 60ndatel elegantne ja võimas arhitektuur ei saanud loomulikult laieneda suurematele aadressiruumidele, mis muutusid teostatavaks 80ndatel. See tähendas, et peaaegu kõik ITS-i koostavad programmid olid vananenud.

AI Labi häkkerite kogukond oli varsti juba kokku varisenud. 1981. aastal oli eraldunud ettevõte Symbolics palganud peaaegu kõik AI Labori häkkerid ära ja rahvastikust tühjenenud kogukond ei suutnud end ülal pidada. (Steve Levy raamat Häkkerid kirjeldab neid sündmusi ja annab selge pildi sellest kogukonnast selle parimal ajal.) Kui AI ​​Lab ostis 1982. aastal uue PDP-10, otsustasid selle administraatorid kasutada digitaalset. s mittetasuta ajajagamise süsteem ITS-i asemel.

Ajastu kaasaegsetel arvutitel, nagu VAX või 68020, olid küll oma operatsioonisüsteemid, kuid ükski neist polnud tasuta tarkvara: isegi käivitatava koopia saamiseks tuli sõlmida mitteavaldamise leping.

See tähendas, et esimene samm arvuti kasutamisel oli lubadus oma ligimest mitte aidata. Koostööd tegev kogukond oli keelatud. Varalise tarkvara omanike kehtestatud reegel oli: "Kui jagate oma naabriga, olete piraat. Kui soovite mingeid muudatusi, paluge meil need teha."

Mõte, et patenteeritud tarkvara sotsiaalsüsteem – süsteem, mis ütleb, et sul ei ole lubatud tarkvara jagada ega muuta – on antisotsiaalne, et see on ebaeetiline, et see on lihtsalt vale, võib mõnele lugejale üllatusena tulla. Aga mida muud võiksime öelda süsteemi kohta, mis põhineb avalikkuse lõhestamisel ja kasutajate abituna hoidmisel? Lugejad, kes peavad seda ideed üllatavaks, võisid patenteeritud tarkvara sotsiaalset süsteemi pidada iseenesestmõistetavaks või hinnata seda patenteeritud tarkvaraettevõtete soovitatud tingimustel. Tarkvara kirjastajad on teinud kaua ja kõvasti tööd, et veenda inimesi, et probleemile on ainult üks viis.

Kui tarkvara väljaandjad räägivad oma "õiguste jõustamisest" või "piraatluse peatamisest", siis mida nad tegelikult öelda on teisejärguline. Nende väidete tegelik sõnum on väljendamata eeldustes, mida nad peavad enesestmõistetavaks, mida avalikkusel palutakse ilma uurimiseta aktsepteerida. Seetõttu uurime neid.

Üks eeldus on, et tarkvaraettevõtetel on vaieldamatu loomulik õigus omada tarkvara ja seega on neil võim kõigi selle kasutajate üle. (Kui see oleks loomulik õigus, siis ükskõik kui palju kahju see avalikkusele ka ei teeks, ei saaks me vastu olla.) Huvitaval kombel lükkavad USA põhiseadus ja õigustraditsioon selle seisukoha ümber; autoriõigus ei ole loomulik õigus, vaid kunstlik valitsuse kehtestatud monopol, mis piirab kasutajate loomulikku õigust kopeerida.

Veel üks väljaütlemata eeldus on see, et tarkvara puhul on oluline vaid see, milliseid töid see võimaldab teha – et meid arvutikasutajaid ei peaks huvitama, milline ühiskond meil on lubatud.

Kolmas eeldus on see, et meil poleks kasutatavat tarkvara (või ei oleks kunagi programmi selle või selle konkreetse töö tegemiseks), kui me ei pakuks ettevõttele võimu programmi kasutajate üle. See oletus võis tunduda usutav, enne kui vaba tarkvara liikumine näitas, et saame teha palju kasulikku tarkvara ilma sellele kette panemata.

Kui me keeldume neid eeldusi aktsepteerimast ja hindame neid küsimusi tavalise terve mõistuse moraali alusel, seades kasutajad esikohale, jõuame väga erinevatele järeldustele. Arvutikasutajatel peaks olema vabadus muuta programme vastavalt oma vajadustele ja vabalt jagada tarkvara, sest teiste inimeste abistamine on ühiskonna alus.

Karm moraalne valik

Kuna minu kogukond oli kadunud, oli võimatu jätkata nagu varem. Selle asemel seisin silmitsi karmi moraalse valikuga.

Lihtne valik oli liituda patenteeritud tarkvaramaailmaga, allkirjastades mitteavaldamise lepingud ja lubades mitte aidata oma kaashäkkerit. Tõenäoliselt töötaksin välja ka mitteavaldamise lepingute alusel välja antud tarkvara, suurendades sellega teistele inimestele survet kaaslasi reeta.

Oleksin võinud sel viisil raha teenida ja võib-olla koodi kirjutades lõbustada. Kuid ma teadsin, et oma karjääri lõpus vaatan tagasi aastatepikkusele müüride ehitamisele, et inimesi jagada, ja tunnen, et olen oma elu teinud maailma halvemaks paigaks.

Olin juba kogenud mitteavaldamise lepingu saamist, kui keegi keeldus andmast mulle ja MIT AI Labile meie printeri juhtimisprogrammi lähtekoodi. (Teatud funktsioonide puudumine selles programmis, mida printerit kasutas, on äärmiselt masendav.) Seega ei saanud ma endale öelda, et mitteavaldamise lepingud on süütud. Ma olin väga vihane, kui ta keeldus meiega jagamast; Ma ei saanud ümber pöörata ja kõigile teistele sama teha.

Teine valik, otsekohene, kuid ebameeldiv, oli arvutiväljakult lahkuda. Nii ei kasutataks mu oskusi kurjasti ära, vaid kuluks ikka raisku. Ma ei oleks süüdi arvutikasutajate jagamises ja piiramises, kuid see juhtuks sellegipoolest.

Seega otsisin võimalust, kuidas programmeerija saaks midagi head teha. Küsisin endalt, kas on olemas programm või programmid, mida saaksin kirjutada, et muuta kogukond taas võimalikuks?

Vastus oli selge: kõigepealt oli vaja operatsioonisüsteemi. See on arvuti kasutamise alustamiseks ülioluline tarkvara. Operatsioonisüsteemiga saate teha paljusid asju; ilma selleta ei saa te arvutit üldse käivitada. Tasuta operatsioonisüsteemiga võiksime taas luua koostööd tegevate häkkerite kogukonna ja kutsuda kõiki liituma. Ja igaüks saaks arvutit kasutada ilma, et oleks alustanud vandenõu, et oma sõpru ilma jätta.

Operatsioonisüsteemi arendajana olid mul selle töö jaoks õiged oskused. Ehkki ma ei saanud edu enesestmõistetavaks pidada, mõistsin, et mind valiti seda tööd tegema. Valisin süsteemi Unixiga ühilduvaks muuta, et see oleks kaasaskantav ja et Unixi kasutajad saaksid sellele hõlpsalt üle minna. Nimi GNU valiti häkkerite traditsiooni järgides rekursiivseks akronüümiks sõnale "GNU's Not Unix". Seda hääldatakse ühe silbina kõva g-ga.

Operatsioonisüsteem ei tähenda ainult kernelit, millest piisab teiste programmide käitamiseks. 1970. aastatel sisaldas iga nime vääriv operatsioonisüsteem käsuprotsessoreid, monteerijaid, kompilaatoreid, tõlke, silujaid, tekstiredaktoreid, postitajaid ja palju muud. ITS-il olid need, Multicsil, VMS-il ja Unixil. GNU operatsioonisüsteem hõlmaks ka neid.

Hiljem kuulsin neid Hillelile omistatud sõnu (1):

Kui ma pole enda jaoks, kes siis minu jaoks on?
Kui ma olen ainult iseenda jaoks, siis mis ma olen?
Kui mitte praegu siis millal?

GNU projekti käivitamise otsus põhines sarnasel vaimul.

(1) Ateistina ei järgi ma ühtegi usujuhti, kuid mõnikord leian, et imetlen midagi, mida keegi neist on öelnud.

Vaba nagu vabaduses

Mõistet "tasuta tarkvara" mõistetakse mõnikord valesti – sellel pole hinnaga mingit pistmist. See puudutab vabadust. Siin on seega vaba tarkvara definitsioon.

Programm on teie, konkreetse kasutaja jaoks tasuta tarkvara, kui:

  • Sul on vabadus käivitada programmi vastavalt oma soovile ja mis tahes eesmärgil.
  • Teil on vabadus programmi vastavalt oma vajadustele muuta. (Selle vabaduse praktikas tõhusaks muutmiseks peab teil olema juurdepääs lähtekoodile, kuna programmis muudatuste tegemine ilma lähtekoodita on äärmiselt keeruline.)
  • Teil on vabadus koopiaid kas tasuta või tasu eest edasi levitada.
  • Teil on vabadus levitada programmi muudetud versioone, et kogukond saaks teie täiustustest kasu.

Kuna “tasuta” viitab vabadusele, mitte hinnale, pole koopiate müügi ja tasuta tarkvara vahel vastuolu. Tegelikult on koopiate müümise vabadus ülioluline: CD-ROM-idel müüdavad tasuta tarkvara kogud on kogukonna jaoks olulised ja nende müümine on oluline viis tasuta tarkvara arendamiseks raha koguda. Seetõttu ei ole programm, mida inimesed nendesse kogudesse vabalt lisada ei saa, tasuta tarkvara.

"Tasuta" ebaselguse tõttu on inimesed otsinud pikka aega alternatiive, kuid keegi pole leidnud paremat terminit. Inglise keeles on rohkem sõnu ja nüansse kui üheski teises, kuid sellel puudub lihtne, üheselt mõistetav sõna, mis tähendab "vaba", nagu vabaduses – "piiramatu" on sõna, mis on tähenduselt kõige lähemal. Sellistel alternatiividel nagu “vabanenud”, “vabadus” ja “avatud” on kas vale tähendus või mõni muu puudus.

GNU tarkvara ja GNU süsteem

Terve süsteemi väljatöötamine on väga mahukas projekt. Selle kättesaadavaks muutmiseks otsustasin kohandada ja kasutada olemasolevaid tasuta tarkvara tükke kõikjal, kus see oli võimalik. Näiteks otsustasin kohe alguses kasutada peamise tekstivorminguna TeX-i; paar aastat hiljem otsustasin kasutada X Window Systemi, mitte kirjutada GNU jaoks teist aknasüsteemi.

Nende ja teiste sarnaste otsuste tõttu ei ole GNU süsteem sama mis kogu GNU tarkvara. GNU süsteem sisaldab programme, mis ei ole GNU tarkvara, programme, mille on välja töötanud teised inimesed ja projekte oma eesmärkidel, kuid mida saame kasutada, kuna need on tasuta tarkvara.

Projektist teavitamine

Jaanuaris 1984 lõpetasin töö MIT-is ja hakkasin kirjutama GNU tarkvara. MIT-ist lahkumine oli vajalik, et MIT ei saaks segada GNU levitamist vaba tarkvarana. Kui ma oleksin jäänud personali, oleks MIT võinud väita, et see teos kuulub, ja oleks võinud kehtestada oma levitamistingimused või isegi muuta teose patenteeritud tarkvarapaketiks. Mul ei olnud kavatsust teha suurt tööd ainult selleks, et näha, et see muutub kasutuks ettenähtud otstarbel: uue tarkvara jagamise kogukonna loomisel.

Professor Winston, tollane MIT AI labori juht, kutsus mind aga lahkelt labori ruumide kasutamist jätkama.

Esimesed sammud

Vahetult enne GNU projekti alustamist kuulsin vabaülikooli kompilaatorikomplektist, tuntud ka kui VUCK. (Hollandi sõna "tasuta" on kirjutatud tähega a v.) See oli kompilaator, mis on loodud mitme keele, sealhulgas C ja Pascali, käsitlemiseks ning mitme sihtmasina toetamiseks. Kirjutasin selle autorile, et kas GNU saaks seda kasutada.

Ta vastas pilkavalt, öeldes seda Ülikool oli tasuta, aga koostaja mitte. Seetõttu otsustasin, et minu esimene programm GNU projekti jaoks on mitmekeelne ja mitmeplatvormiline kompilaator.

Lootes vältida vajadust kogu kompilaatorit ise kirjutada, hankisin Pastel kompilaatori lähtekoodi, mis oli Lawrence Livermore Labis välja töötatud mitmeplatvormiline kompilaator. Seda toetatakse ja see on kirjutatud Pascali laiendatud versioonis, mis on loodud süsteemi programmeerimiskeeleks. Lisasin C esiosa ja hakkasin seda Motorola 68000 arvutisse portima. Kuid ma pidin sellest loobuma, kui avastasin, et kompilaator vajab palju megabaite pinu ja saadaolev 68000 Unixi süsteem võimaldab ainult 64k.

Seejärel mõistsin, et Pasteli kompilaator sõelus kogu sisendfaili süntaksipuuks, teisendas kogu süntaksipuu juhiste ahelaks ja genereeris seejärel kogu väljundfaili, vabastamata kunagi salvestusruumi. Siinkohal jõudsin järeldusele, et pean kirjutama uue kompilaatori nullist. See uus kompilaator on nüüd tuntud kui GCC; selles ei kasutata ühtki Pastel kompilaatorit, kuid mul õnnestus kohandada ja kasutada enda kirjutatud C esiosa. Aga see oli mõned aastad hiljem; Esiteks töötasin ma GNU Emacsiga.

GNU Emacs

Alustasin tööd GNU Emacsiga 1984. aasta septembris ja 1985. aasta alguses hakkas see olema kasutatav. See võimaldas mul hakata redigeerimiseks kasutama Unixi süsteeme; Kuna mul polnud huvi vi või ed kasutamist õppida, olin seni toimetanud teist tüüpi masinatel.

Sel hetkel hakkasid inimesed tahtma kasutada GNU Emacsi, mis tõstatas küsimuse, kuidas seda levitada. Loomulikult panin selle MIT-i arvutisse, mida ma kasutasin, anonüümsesse ftp-serverisse. (Sellest arvutist, prep.ai.mit.edu, sai seega peamine GNU ftp levitamise sait; kui see paar aastat hiljem kasutusest kõrvaldati, kandsime selle nime üle oma uude ftp-serverisse.) Kuid sel ajal olid paljud huvitatud inimesed ei olnud Internetis ega saanud ftp-ga koopiat. Seega oli küsimus, mida ma neile ütleksin?

Oleksin võinud öelda: "Leia sõber, kes on võrgus ja kes teeb teile koopia." Või oleksin võinud teha sama, mida tegin algse PDP-10 Emacsiga: öelge neile: "Saatke mulle kassett ja SASE ja ma saadan selle tagasi koos Emacsiga." Kuid mul polnud tööd ja ma otsisin võimalusi tasuta tarkvaraga raha teenida. Seega teatasin, et saadan 150 dollari suuruse tasu eest lindi postiga, kes seda soovib. Sel viisil alustasin tasuta tarkvara levitamise äriga, mis on täna kogu GNU/Linuxi süsteemi distributsioonide levitajate eelkäija.

Kas programm on igale kasutajale tasuta?

Kui programm on autori käest lahkudes vaba tarkvara, ei tähenda see tingimata, et see oleks tasuta tarkvara kõigile, kellel on selle koopia. Näiteks üldkasutatav tarkvara (tarkvara, mis ei ole autoriõigustega kaitstud) on tasuta tarkvara; kuid igaüks võib teha sellest patenteeritud muudetud versiooni. Samuti on paljud tasuta programmid autoriõigustega kaitstud, kuid neid levitatakse lihtsate lubavate litsentside alusel, mis võimaldavad omandiõigusega muudetud versioone.

Selle probleemi paradigmaatiline näide on X Window System. MIT-is välja töötatud ja lubava litsentsiga tasuta tarkvarana välja antud, võtsid selle peagi kasutusele erinevad arvutiettevõtted. Nad lisasid X oma patenteeritud Unixi süsteemidesse ainult kahendvormingus ja sama mitteavaldamise lepinguga. Need X koopiad ei olnud vabamad tarkvarad kui Unix.

X Window Systemi arendajad ei pidanud seda probleemiks – nad ootasid ja kavatsesid seda juhtuda. Nende eesmärk ei olnud vabadus, vaid "edu", mida määratleti kui "palju kasutajat". Neid ei huvitanud see, kas neil kasutajatel on vabadus, vaid see, et neid peaks olema palju.

See viis paradoksaalse olukorrani, kus kaks erinevat vabaduse arvu arvutamise viisi andsid erineva vastuse küsimusele "Kas see programm on tasuta?" Kui hindaksite MIT-i väljaande levitamistingimuste pakutava vabaduse põhjal, ütleksite, et X oli tasuta tarkvara. Kuid kui mõõtsite X-i keskmise kasutaja vabadust, peaksite ütlema, et see oli patenteeritud tarkvara. Enamik X kasutajaid kasutas Unixi süsteemidega kaasas olevaid patenteeritud versioone, mitte tasuta versiooni.

Copyleft ja GNU GPL

GNU eesmärk oli anda kasutajatele vabadus, mitte lihtsalt olla populaarne. Seega pidime kasutama levitamistingimusi, mis takistaksid GNU tarkvara muutmist patenteeritud tarkvaraks. Meie kasutatavat meetodit nimetatakse "copyleft".(1)

Copyleft kasutab autoriõiguse seadust, kuid pöörab selle ümber, et teenida vastupidist oma tavapärasele eesmärgile: programmi piiramise vahendi asemel muutub see vahendiks programmi tasuta hoidmiseks.

Copylefti keskne idee seisneb selles, et anname kõigile loa programmi käivitamiseks, programmi kopeerimiseks, programmi muutmiseks ja muudetud versioonide levitamiseks, kuid mitte luba lisada oma piiranguid. Seega on “vaba tarkvara” määravad olulised vabadused tagatud kõigile, kellel on koopia; neist saavad võõrandamatud õigused.

Tõhusa copylefti jaoks peavad ka muudetud versioonid olema tasuta. See tagab, et meie omal põhinev teos muutub meie kogukonnale kättesaadavaks, kui see avaldatakse. Kui programmeerijad töötavad vabatahtlikult GNU tarkvara täiustamisel, takistab copyleft nende tööandjatel ütlemast: "Te ei saa neid muudatusi jagada, sest me kasutame neid programmi patenteeritud versiooni loomiseks."

Nõue, et muudatused peavad olema tasuta, on hädavajalik, kui tahame tagada vabaduse igale programmi kasutajale. X Window Systemi erastanud ettevõtted tegid selle oma süsteemidesse ja riistvarasse portimiseks tavaliselt mõningaid muudatusi. Need muutused olid X-i suure ulatusega võrreldes väikesed, kuid need ei olnud triviaalsed. Kui muudatuste tegemine oleks ettekääne, et keelata kasutajate vabadus, oleks igaühel lihtne seda vabandust ära kasutada.

Seotud probleem puudutab tasuta programmi kombineerimist mittevaba koodiga. Selline kombinatsioon oleks paratamatult mittevaba; mis tahes vabadused puuduvad mittevaba osa jaoks, puuduksid ka terviku jaoks. Selliste kombinatsioonide lubamine avaks piisavalt suure augu, et laeva uputada. Seetõttu on copylefti jaoks ülioluline nõue selle augu sulgemine: kõik, mis on lisatud copyleft-programmile või sellega kombineeritud, peab olema selline, et suurem kombineeritud versioon oleks samuti tasuta ja copyleftiga.

Copylefti konkreetne teostus, mida me enamiku GNU tarkvara jaoks kasutame, on GNU General Public License või lühidalt GNU GPL. Meil on muud tüüpi copyleft, mida kasutatakse konkreetsetes olukordades. GNU käsiraamatud on samuti copyleft, kuid kasutavad palju lihtsamat tüüpi copyleft, kuna GNU GPL-i keerukus pole käsiraamatute jaoks vajalik.(2)

(1) 1984. või 1985. aastal saatis Don Hopkins (väga fantaasiarikas mees) mulle kirja. Ümbrikule oli ta kirjutanud mitu lõbusat ütlust, sealhulgas selle: "Copyleft – kõik õigused on ümber pööratud." Kasutasin sõna "copyleft", et nimetada oma tol ajal väljatöötatud levitamiskontseptsiooni.

Free Software Foundationi töötajad on kirjutanud ja hooldanud mitmeid GNU tarkvarapakette. Kaks märkimisväärset on C raamatukogu ja kest. GNU C teek on see, mida iga GNU/Linuxi süsteemis töötav programm kasutab Linuxiga suhtlemiseks. Selle töötas välja Vaba Tarkvara Fondi töötaja Roland McGrath. Enamikus GNU/Linuxi süsteemides kasutatav kest on BASH, Bourne Again Shell(1), mille töötas välja FSF-i töötaja Brian Fox.

Rahastasime nende programmide arendamist, sest GNU projekt ei hõlmanud ainult tööriistu ega arenduskeskkonda. Meie eesmärk oli terviklik operatsioonisüsteem ja selle eesmärgi saavutamiseks oli neid programme vaja.

(1) “Bourne Again Shell” on näidend nimest “Bourne Shell”, mis oli Unixi tavaline kest.

Tasuta tarkvara tugi

Vaba tarkvara filosoofia lükkab tagasi konkreetse laialt levinud äritava, kuid see ei ole äritegevuse vastu. Kui ettevõtted austavad kasutajate vabadust, soovime neile edu.

Emacsi koopiate müümine näitab ühte tüüpi tasuta tarkvara äri. Kui FSF selle ettevõtte üle võttis, oli mul vaja teist võimalust elatist teenida. Leidsin selle enda väljatöötatud tasuta tarkvaraga seotud teenuste müügist. See hõlmas õpetamist sellistes ainetes nagu GNU Emacsi programmeerimine ja GCC kohandamine ning tarkvaraarendus, peamiselt GCC ülekandmine uutele platvormidele.

Tänapäeval tegelevad iga sellise tasuta tarkvaraga äritegevusega mitmed ettevõtted. Mõned levitavad tasuta tarkvarakogusid CD-ROM-il; teised müüvad tuge tasemel, mis ulatub kasutajate küsimustele vastamisest, vigade parandamisest kuni suurte uute funktsioonide lisamiseni. Oleme isegi hakanud nägema tasuta tarkvaraettevõtteid, mis põhinevad uute vabatarkvaratoodete turule toomisel.

Olge siiski ettevaatlik – mitmed ettevõtted, kes seostavad end terminiga "avatud lähtekoodiga", rajavad oma äritegevuse tegelikult mittevabale tarkvarale, mis töötab koos tasuta tarkvaraga. Need ei ole tasuta tarkvarafirmad, vaid patenteeritud tarkvarafirmad, mille tooted meelitavad kasutajaid vabadusest eemale. Nad kutsuvad neid programme "lisandväärtuspakettideks", mis näitab väärtusi, mida nad soovivad, et me omaks võtaksime: mugavus vabadusest kõrgemal. Kui väärtustame vabadust rohkem, peaksime neid nimetama "vabadusest lahutatud" pakettideks.

Tehnilised eesmärgid

GNU peamine eesmärk on olla vaba tarkvara. Isegi kui GNU-l poleks Unixi ees tehnilist eelist, oleks sellel sotsiaalne eelis, mis võimaldab kasutajatel koostööd teha, ja eetiline eelis, austades kasutaja vabadust.

Kuid oli loomulik, et töös rakendati teadaolevaid hea tava standardeid – näiteks andmestruktuuride dünaamiline jaotamine, et vältida suvalisi fikseeritud suurusepiiranguid, ja kõigi võimalike 8-bitiste koodide käsitlemine seal, kus see oli mõistlik.

Lisaks lükkasime tagasi Unixi keskendumise väikesele mälumahule, otsustades mitte toetada 16-bitiseid masinaid (oli selge, et 32-bitised masinad on GNU-süsteemi valmimise ajaks normiks) ja mitte pingutada mälukasutuse vähendamiseks, kui see ei ületa megabaiti. Programmide puhul, mille puhul ei olnud väga suurte failide käsitlemine otsustava tähtsusega, julgustasime programmeerijaid lugema kogu sisendfaili tuuma ja seejärel skannima selle sisu, ilma et peaksid I/O pärast muretsema.

Need otsused võimaldasid paljudel GNU programmidel ületada oma Unixi kolleege töökindluse ja kiiruse poolest.

Annetatud arvutid

Kui GNU projekti maine kasvas, hakkasid inimesed pakkuma projektile Unixit kasutavaid masinaid. Need olid väga kasulikud, sest lihtsaim viis GNU komponentide arendamiseks oli seda teha Unixi süsteemis ja selle süsteemi komponendid välja vahetada. Kuid nad tõstatasid eetilise küsimuse: kas meil on üldse õige Unixi koopia.

Unix oli (ja on) patenteeritud tarkvara ja GNU projekti filosoofia ütles, et me ei peaks kasutama patenteeritud tarkvara. Kuid rakendades sama arutluskäiku, mis viib järeldusele, et vägivald on enesekaitseks õigustatud, järeldasin, et selle kasutamine on õigustatud. patenteeritud pakett, kui see oli ülioluline tasuta asenduspaketi väljatöötamiseks, mis aitaks teistel patenteeritud paketi kasutamise lõpetada.

Kuid isegi kui see oli õigustatud kurjus, oli see ikkagi kurjus. Täna pole meil enam Unixi koopiaid, sest oleme need asendanud tasuta operatsioonisüsteemidega. Kui me ei saanud masina operatsioonisüsteemi tasuta asendada, asendasime selle asemel masina.

GNU ülesannete loend

GNU projekti edenedes ja üha suurema arvu süsteemikomponentide leidmise või arendamise käigus sai lõpuks kasulikuks teha allesjäänud lünkade loend. Kasutasime seda arendajate värbamiseks puuduvate osade kirjutamiseks. Seda loendit hakati nimetama GNU ülesannete loendiks. Lisaks puuduvatele Unixi komponentidele loetlesime mitmeid muid kasulikke tarkvara- ja dokumentatsiooniprojekte, mis meie arvates peaksid olema tõeliselt terviklikul süsteemil.

Tänapäeval (1) pole GNU ülesannete loendis peaaegu ühtegi Unixi komponenti jäänud – need olid peale mõne ebaolulise töö tehtud. Kuid nimekiri on täis projekte, mida mõned võivad nimetada "rakendusteks". Iga programm, mis meeldib rohkem kui kitsale kasutajarühmale, oleks kasulik operatsioonisüsteemile lisada.

Isegi mängud on ülesannete loendis ja on olnud algusest peale. Unix sisaldas mänge, nii et loomulikult peaks seda ka GNU. Kuid ühilduvus ei olnud mängude jaoks probleem, nii et me ei järginud Unixi mängude loendit. Selle asemel loetlesime hulga erinevaid mänge, mis kasutajatele meeldida võivad.

(1) See on kirjutatud 1998. aastal. 2009. aastal me enam pikka ülesannete nimekirja ei pea. Kogukond arendab tasuta tarkvara nii kiiresti, et me ei suuda isegi seda kõike jälgida. Selle asemel on meil nimekiri kõrge prioriteediga projektidest, palju lühem nimekiri projektidest, mida me tõesti tahame julgustada inimesi kirjutama.

GNU raamatukogu GPL

GNU C teek kasutab spetsiaalset copyleft-tüüpi nimega GNU Library General Public License(1), mis annab loa siduda varalise tarkvara raamatukoguga. Miks teha see erand?

See ei ole põhimõtte küsimus; puudub põhimõte, mis ütleks, et patenteeritud tarkvaratoodetel on õigus meie koodi lisada. (Miks panustada projekti, mille eelduseks on meiega jagamisest keeldumine?) LGPL-i kasutamine C-teegi või mis tahes raamatukogu jaoks on strateegia küsimus.

C raamatukogu teeb üldist tööd; igal patenteeritud süsteemil või kompilaatoril on C-teek. Seetõttu poleks meie C-teegi kättesaadavaks tegemine ainult vabale tarkvarale andnud vabale tarkvarale mingit eelist – see oleks ainult meie teegi kasutamist takistanud.

Üks süsteem on erand: GNU süsteemis (ja see hõlmab ka GNU/Linuxi) on GNU C teek ainus C teek. Seega määravad GNU C teegi levitamistingimused kindlaks, kas GNU süsteemi jaoks on võimalik kompileerida patenteeritud programmi. Ei ole eetilist põhjust lubada GNU süsteemis patenteeritud rakendusi, kuid strateegiliselt tundub, et nende keelamine takistaks rohkem GNU süsteemi kasutamist kui julgustaks tasuta rakenduste arendamist. Seetõttu on raamatukogu GPL-i kasutamine C-teegi jaoks hea strateegia.

Teiste raamatukogude puhul tuleb strateegiline otsus läbi mõelda iga juhtumi puhul eraldi. Kui raamatukogu teeb eritööd, mis võib aidata kirjutada teatud tüüpi programme, siis selle GPL-i alusel välja andmine, piirdudes ainult tasuta programmidega, on viis aidata teisi vaba tarkvara arendajaid, andes neile eelise varalise tarkvara ees.

Mõelge GNU Readline'ile, teegile, mis töötati välja BASH-i käsurea redigeerimiseks. Readline on välja antud tavalise GNU GPL-i, mitte raamatukogu GPL-i alusel. Tõenäoliselt vähendab see Readline'i kasutust, kuid see pole meie jaoks kahju. Vahepeal on vähemalt üks kasulik rakendus muudetud spetsiaalselt tasuta tarkvaraks, et see saaks kasutada Readline'i, ja see on kogukonna jaoks tõeline kasu.

Varalise tarkvara arendajatel on raha pakutavad eelised; tasuta tarkvara arendajad peavad üksteisele eeliseid tegema. Loodan, et ühel päeval on meil suur kogum GPL-iga kaetud teeke, millel pole patenteeritud tarkvarale paralleeli, mis pakuvad kasulikke mooduleid, mis toimivad uue vaba tarkvara ehitusplokkidena ja lisavad suure eelise edasiseks tasuta tarkvara arendamiseks.

(1) Seda litsentsi nimetatakse nüüd GNU Lesser General Public License'iks, et vältida mõtet, et kõik raamatukogud peaksid seda kasutama. Lisateabe saamiseks vaadake jaotist Miks te ei peaks oma järgmise teegi jaoks kasutama väiksemat GPL-i.

Sügelust kriimustada?

Eric Raymond ütleb, et "Iga hea tarkvaratöö saab alguse arendaja isiklikust sügelusest." Võib-olla juhtub seda mõnikord, kuid paljud olulised GNU tarkvara osad töötati välja täieliku tasuta operatsioonisüsteemi saamiseks. Need tulenevad visioonist ja plaanist, mitte impulsist.

Näiteks arendasime välja GNU C teegi, kuna Unixi sarnane süsteem vajab C teeki, BASH, kuna Unixi sarnane süsteem vajab kesta, ja GNU tar, kuna Unixi sarnane süsteem vajab tar programmi. Sama kehtib ka minu enda programmide kohta – GNU C kompilaator, GNU Emacs, GDB ja GNU Make.

Mõned GNU programmid töötati välja selleks, et tulla toime konkreetsete ohtudega meie vabadusele. Seega arendasime välja gzipi, et asendada LZW patentide tõttu kogukonnale kadunud programm Compress. Leidsime inimesi, kes arendaksid LessTifi ning hiljuti alustasime GNOME ja Harmonyga, kellega tegeleda probleem s on põhjustatud teatud varaliste raamatukogude poolt (vt allpool). Arendame välja GNU Privacy Guardi, et asendada populaarne mittevaba krüpteerimistarkvara, sest kasutajad ei peaks valima privaatsuse ja vabaduse vahel.

Loomulikult tekkis töö vastu huvi nende programmide kirjutajatel, millele lisasid erinevad inimesed oma vajaduste ja huvide huvides palju funktsioone. Kuid see pole põhjus, miks need programmid eksisteerivad.

Ootamatud arengud

GNU projekti alguses kujutasin ette, et arendame välja kogu GNU süsteemi, seejärel vabastame selle tervikuna. Nii see ei juhtunud.

Kuna iga GNU süsteemi komponenti rakendati Unixi süsteemis, sai iga komponent Unixi süsteemides töötada ammu enne täieliku GNU süsteemi olemasolu. Mõned neist programmidest muutusid populaarseks ning kasutajad hakkasid neid laiendama ja teisaldama – erinevatele Unixi mitteühilduvatele versioonidele ja mõnikord ka teistele süsteemidele.

Protsess muutis need programmid palju võimsamaks ja meelitas GNU projekti nii rahalisi vahendeid kui ka panustajaid. Kuid tõenäoliselt lükkas see ka minimaalse töösüsteemi valmimist mitu aastat edasi, kuna GNU arendajad pühendasid nende portide hooldamisele ja olemasolevatele komponentidele funktsioonide lisamisele, selle asemel, et hakata kirjutama ühe puuduva komponendi teise järel.

GNU Hurd

1990. aastaks oli GNU süsteem peaaegu valmis; ainuke suurem puuduv komponent oli kernel. Otsustasime oma kerneli juurutada Machi peal töötavate serveriprotsesside kogumina. Mach on Carnegie Melloni ülikoolis ja seejärel Utah' ülikoolis välja töötatud mikrotuum; GNU Hurd on serverite kogum (st GNU-de kari), mis töötavad Machi peal ja täidavad Unixi tuuma erinevaid töid. Arengu algus viibis, kuna ootasime, et Mach vabastataks tasuta tarkvarana, nagu oli lubatud.

Selle kujunduse valimise üheks põhjuseks oli vältida seda, mis tundus olevat töö raskeim osa: kerneli programmi silumine ilma allikatasemel silurita. See osa tööst oli juba Machis tehtud ja eeldasime, et silume Hurdi serverid kasutajaprogrammidena GDB-ga. Kuid selle võimalikuks muutmine võttis kaua aega ja üksteisele sõnumeid saatvaid mitme lõimega servereid on väga raske siluda. Hurda kindlalt tööle panemine on kestnud palju aastaid.

Alix

GNU tuuma ei pidanud algselt kandma Hurd. Selle esialgne nimi oli Alix – selle naise järgi, kes oli sel ajal mu kallim. Ta, Unixi süsteemiadministraator, oli juhtinud tähelepanu sellele, kuidas tema nimi sobiks Unixi süsteemiversioonide levinud nimetamismustrisse; naljaks ütles ta oma sõpradele: "Keegi peaks nimetama tuuma minu järgi." Ma ei öelnud midagi, kuid otsustasin teda üllatada Alix-nimelise tuumaga.

Nii see ei jäänud. Kerneli peamine arendaja Michael (praegu Thomas) Bushnell eelistas nime Hurd ja defineeris Alix ümber, et viidata tuuma teatud osale – sellele osale, mis püüab süsteemikõned kinni ja käsitleb neid, saates sõnumeid Hurda serveritele.

Hiljem läksime Alixiga lahku ja ta muutis oma nime; iseseisvalt muudeti Hurdi disaini nii, et C-teek saadaks sõnumeid otse serveritesse ja see kaotas Alixi komponendi kujundusest.

Kuid enne, kui need asjad juhtusid, leidis üks tema sõber Hurda lähtekoodis nime Alix ja mainis seda talle. Nii et tal oli võimalus leida tema järgi nime saanud tuum.

Linux ja GNU/Linux

GNU Hurd ei sobi tootmiseks ja me ei tea, kas see kunagi sobib.

Õnneks on saadaval ka teine ​​kernel. 1991. aastal töötas Linus Torvalds välja Unixiga ühilduva tuuma ja nimetas selle Linuxiks. Algselt oli see patenteeritud, kuid 1992. aastal muutis ta selle tasuta tarkvaraks; Linuxi kombineerimine mitte päris täieliku GNU süsteemiga andis tulemuseks täieliku tasuta operatsioonisüsteemi. (Nende kombineerimine oli muidugi omaette märkimisväärne töö.) Tänu Linuxile saame täna käivitada GNU süsteemi versiooni.

Väljakutsed meie tulevikus

Oleme tõestanud oma võimet arendada laia valikut vaba tarkvara. See ei tähenda, et oleme võitmatud ja peatamatud. Mitmed väljakutsed muudavad vaba tarkvara tuleviku ebakindlaks; nende täitmine nõuab vankumatut pingutust ja vastupidavust, mis mõnikord kestab aastaid. See nõuab sellist sihikindlust, mida inimesed näitavad, kui nad väärtustavad oma vabadust, ega lase kellelgi seda ära võtta.

Järgmises neljas jaotises käsitletakse neid väljakutseid.

Salajane riistvara

Riistvaratootjad kipuvad üha enam riistvara spetsifikatsioone salajas hoidma. See raskendab tasuta draiverite kirjutamist, et Linux ja XFree86 toetaksid uut riistvara. Meil on täna täielikud tasuta süsteemid, kuid meil pole neid homme, kui me ei saa toetada homseid arvuteid.

Selle probleemiga toimetulemiseks on kaks võimalust. Programmeerijad saavad teha pöördprojekteerimist, et välja selgitada, kuidas riistvara toetada. Ülejäänud meist saavad valida riistvara, mida toetab vaba tarkvara; kui meie arv kasvab, muutub spetsifikatsioonide salastamisest ennast hävitav poliitika.

Pöördprojekteerimine on suur töö; kas meil on piisavalt sihikindlaid programmeerijaid, et see ette võtta? Jah – kui oleme loonud tugeva tunde, et vaba tarkvara on põhimõtteline küsimus ja mittevabad draiverid on talumatud. Ja kas paljud meist kulutavad lisaraha või isegi veidi lisaaega, et saaksime kasutada tasuta draivereid? Jah, kui sihikindlus saada vabadus on laialt levinud.

(2008. aasta märkus: see probleem laieneb ka BIOS-ile. On olemas tasuta BIOS, LibreBoot (coreboot'i distributsioon); probleemiks on masinate spetsifikatsioonide hankimine, et LibreBoot saaks neid toetada ilma mittevabade "blobideta".)

Mittevabad raamatukogud

Mittevaba teek, mis töötab tasuta operatsioonisüsteemides, toimib vaba tarkvara arendajatele lõksuna. Teegi atraktiivsed omadused on sööt; kui te teeki kasutate, langete lõksu, sest teie programm ei saa olla kasuliku tasuta operatsioonisüsteemi osa. (Rangelt võttes võiksime teie programmi kaasata, kuid see ei tee seda jooksma ja raamatukogu puudub.) Veelgi hullem, kui patenteeritud teeki kasutav programm muutub populaarseks, võib see meelitada lõksu teisi pahaaimamatuid programmeerijaid.

Selle probleemi esimene juhtum oli 80ndatel Motifi tööriistakomplekt. Kuigi tasuta operatsioonisüsteeme veel polnud, oli selge, millise probleemi Motif neile hiljem põhjustab. GNU projekt reageeris kahel viisil: paludes üksikutel tasuta tarkvaraprojektidel toetada nii tasuta X Toolkiti vidinaid kui ka Motifi ning paludes kellelgi kirjutada Motifile tasuta asendus. Töö võttis palju aastaid; Näljaste programmeerijate välja töötatud LessTif sai enamiku Motifi rakenduste toetamiseks piisavalt võimsaks alles 1997. aastal.

Aastatel 1996–1998 kasutati suures vabatarkvarakogus, töölaua KDE-s, teist mittevaba GUI tööriistakomplekti teeki nimega Qt.

Tasuta GNU/Linuxi süsteemid ei saanud KDE-d kasutada, kuna me ei saanud seda teeki kasutada. Kuid mõned GNU/Linuxi süsteemide kaubanduslikud turustajad, kes ei pidanud vaba tarkvarast kinni pidama, lisasid oma süsteemidesse KDE, luues süsteemi, millel on rohkem võimalusi, kuid vähem vabadust. KDE grupp julgustas aktiivselt rohkem programmeerijaid Qt kasutama ja miljonid uued Linuxi kasutajad ei olnud kunagi kokku puutunud ideega, et selles on probleem. Olukord näis sünge.

Vaba tarkvara kogukond reageeris probleemile kahel viisil: GNOME ja Harmony.

GNOME, GNU võrguobjektimudeli keskkond, on GNU töölauaprojekt. 1997. aastal Miguel de Icaza poolt käivitatud ja Red Hat Software toel välja töötatud GNOME eesmärk oli pakkuda sarnaseid töölauaseadmeid, kuid kasutades ainult tasuta tarkvara. sellel on ka tehnilisi eeliseid, näiteks mitmete keelte toetamine, mitte ainult C++, kuid selle peamine eesmärk oli vabadus: mitte nõuda mittevaba tarkvara kasutamist.

Harmony on ühilduv asendusteek, mis on loodud KDE tarkvara käivitamiseks ilma Qt kasutamata.

Novembris 1998 teatasid Qt arendajad litsentsi muutmisest, mis peaks muutma Qt vabaks tarkvaraks. Kindel olla ei saa, kuid ma arvan, et see oli osaliselt tingitud kogukonna kindlast vastusest probleemile, mille Qt tekitas, kui see ei olnud tasuta. (Uus litsents on ebamugav ja ebaõiglane, seega on soovitav selle kasutamist vältida Qt.)

Kuidas reageerime järgmisele ahvatlevale mittevaba raamatukogule? Kas kogu kogukond mõistab vajadust lõksust välja jääda? Või loobuvad paljud meist mugavuse huvides vabadusest ja tekitavad suure probleemi? Meie tulevik sõltub meie filosoofiast.

Tarkvara patendid

Suurim oht, millega me silmitsi seisame, tuleneb tarkvarapatentidest, mis võivad kuni kahekümneks aastaks piirata tasuta tarkvara algoritme ja funktsioone. LZW tihendusalgoritmi patente taotleti 1983. aastal ja me ei saa siiani välja anda tasuta tarkvara korralike tihendatud GIF-ide tootmiseks. 1998. aastal eemaldati patendihagi ähvardusel levitamisest tasuta programm MP3 tihendatud heli tootmiseks.

Patentidega toimetulemiseks on viise: me saame otsida tõendeid selle kohta, et patent on kehtetu, ja me saame otsida alternatiivseid viise töö tegemiseks. Kuid kõik need meetodid töötavad ainult mõnikord; kui mõlemad ebaõnnestuvad, võib patent sundida kogu vaba tarkvara kasutamata mõnda funktsiooni, mida kasutajad soovivad. Pärast pikka ootamist patendid aeguvad (MP3 patendid on eeldatavasti aegunud 2018. aastaks), aga mis me selle ajani teeme?

Need meist, kes hindavad vaba tarkvara vabaduse pärast, jäävad niikuinii vaba tarkvara juurde. Saame töö tehtud ilma patenteeritud funktsioonideta. Kuid need, kes hindavad vaba tarkvara, kuna eeldavad, et see on tehniliselt parem, nimetavad seda tõenäoliselt ebaõnnestumine, kui patent hoiab seda tagasi. Seega, kuigi on kasulik rääkida arendusmudeli praktilisest tõhususest ning mõne vaba tarkvara usaldusväärsusest ja võimsusest, ei tohi me sellega peatuda vabadus ja põhimõte.

Tasuta dokumentatsioon

Meie tasuta operatsioonisüsteemide suurim puudus ei ole tarkvaras – see on heade tasuta juhendite puudumine, mida saaksime oma süsteemidesse lisada. Dokumentatsioon on iga tarkvarapaketi oluline osa; kui olulise tasuta tarkvarapaketiga ei ole kaasas head tasuta juhendit, on see suur lünk. Meil on täna palju selliseid lünki.

Tasuta dokumentatsioon, nagu ka vaba tarkvara, on vabaduse, mitte hinna küsimus. Tasuta juhendi kriteerium on peaaegu sama, mis tasuta tarkvara puhul: küsimus on anda kõigile kasutajatele teatud vabadused. Edasilevitamine (sealhulgas kaubanduslik müük) peab olema lubatud nii veebis kui ka paberkandjal, et juhend saaks olla kaasas iga programmi koopiaga.

Samuti on oluline luba muutmiseks. Üldjuhul ei usu ma, et inimestel on vaja luba muuta igasuguseid artikleid ja raamatuid. Näiteks ei usu ma, et teie ega mina peaksime andma luba selliste artiklite muutmiseks , mis kirjeldavad meie tegevust ja vaateid.

Kuid on konkreetne põhjus, miks muutmisvabadus on vaba tarkvara dokumentatsiooni jaoks ülioluline. Kui inimesed kasutavad oma õigust tarkvara muuta ning selle funktsioone lisada või muuta, muudavad nad kohusetundlikult ka juhendit – et nad saaksid koos muudetud programmiga pakkuda täpset ja kasutatavat dokumentatsiooni. Mittetasuta käsiraamat, mis ei luba programmeerijatel olla kohusetundlik ja töö lõpetada, ei täida meie kogukonna vajadusi.

Teatavad piirangud muudatuste tegemisel ei tekita probleeme. Näiteks algse autori autoriõiguse teatise, levitamistingimuste või autorite loendi säilitamise nõuded on korras. Samuti pole probleem nõuda muudetud versioonidelt teatise lisamist nende muutmise kohta, isegi kui neil on terved jaotised, mis ei tohi kustutada ega muuta, kui need jaotised käsitlevad mittetehnilisi teemasid. Sellised piirangud ei ole probleemiks, sest need ei takista kohusetundlikul programmeerijal juhendit kohandamast muudetud programmiga. Teisisõnu, need ei takista vaba tarkvara kogukonnal juhendi täielikku kasutamist.

Siiski peab olema võimalik muuta kõiki tehniline juhendi sisu ja seejärel levitada tulemust kõigis tavalistes meediakanalites; vastasel juhul takistavad piirangud kogukonda, käsiraamat pole tasuta ja vajame teist juhendit.

Kas tasuta tarkvara arendajatel on piisavalt teadlikkust ja sihikindlust, et koostada täielik spekter tasuta käsiraamatuid? Taaskord sõltub meie tulevik filosoofiast.

Me peame rääkima vabadusest

Praeguste hinnangute kohaselt on GNU/Linuxi süsteemide, nagu Debian GNU/Linux ja Red Hat Linux, kasutajaid kümme miljonit. Vaba tarkvara on arendanud selliseid praktilisi eeliseid, et kasutajad tormavad selle poole puhtalt praktilistel põhjustel.

Selle head tagajärjed on ilmsed: suurem huvi vabatarkvara arendamise vastu, rohkem kliente tasuta tarkvaraettevõtetele ja suurem võimalus julgustada ettevõtteid arendama kommertstarkvara patenteeritud tarkvaratoodete asemel.

Kuid huvi tarkvara vastu kasvab kiiremini kui teadlikkus selle filosoofiast ja see toob kaasa probleeme. Meie võime vastata ülalkirjeldatud väljakutsetele ja ohtudele sõltub tahtest seista kindlalt vabaduse eest. Veendumaks, et meie kogukonnal on see tahe, peame levitama ideed uutele kasutajatele, kui nad kogukonda tulevad.

Kuid me ei suuda seda teha: jõupingutused uute kasutajate meelitamiseks meie kogukonda ületavad palju jõupingutusi, et õpetada neile meie kogukonna kodanikutunnet. Peame tegema mõlemat ja hoidma need kaks jõupingutust tasakaalus.

"Avatud lähtekoodiga"

Uutele kasutajatele vabaduse õpetamine muutus keerulisemaks 1998. aastal, kui osa kogukonnast otsustas lõpetada mõiste "vaba tarkvara" kasutamise ja öelda selle asemel "avatud lähtekoodiga tarkvara".

Mõned, kes seda terminit eelistasid, püüdsid vältida „tasuta” ja „tasuta” segi ajamist – see on kehtiv eesmärk. Teised aga püüdsid kõrvale jätta põhimõtte vaim, mis oli motiveerinud vaba tarkvara liikumist ja GNU projekti, ning meelitada selle asemel juhte ja ärikasutajaid, kellest paljud peavad ideoloogiat, mis seab kasumi kõrgemale vabadusest, kogukonnast ja kõrgemast. põhimõte Seega keskendub "avatud lähtekoodiga" retoorika võimalusele teha kvaliteetset ja võimsat tarkvara, kuid väldib vabaduse, kogukonna ja põhimõtte ideid.

Ajakirjad "Linux" on selle selge näide – need on täis GNU/Linuxiga töötava patenteeritud tarkvara kuulutusi. Kui järgmine motiiv või Qt ilmub, kas need ajakirjad hoiatavad programmeerijaid sellest eemale hoidma või esitavad nad selle kohta reklaame?

Ettevõtluse toetamine võib kogukonnale kaasa aidata mitmel viisil; kui kõik muu on võrdne, on see kasulik. Kuid nende poolehoiu võitmine, rääkides veelgi vähem vabadusest ja põhimõttest, võib olla hukatuslik; see muudab varasema ebavõrdsuse teavitus- ja kodanikuõpetuse vahel veelgi hullemaks.

„Tasuta tarkvara” ja „avatud lähtekoodiga” kirjeldavad enam-vähem sama tarkvarakategooriat, kuid räägivad tarkvara ja väärtuste kohta erinevalt. GNU projekt kasutab jätkuvalt mõistet "vaba tarkvara", et väljendada ideed, et vabadus, mitte ainult tehnoloogia, on oluline.

Proovi!

Yoda aforism ("Püüa pole") kõlab kenasti, kuid minu jaoks see ei tööta. Olen teinud suurema osa oma tööst mures, kas saan selle tööga hakkama, ega ole kindel, kas sellest piisab eesmärgi saavutamiseks. Aga proovisin siiski, sest vaenlase ja minu linna vahel polnud peale minu kedagi. Iseennast üllatades on see vahel ka õnnestunud.

Mõnikord ma ebaõnnestusin; mõned mu linnad on langenud. Siis leidsin veel ühe ohustatud linna ja valmistusin uueks lahinguks. Aja jooksul olen õppinud ohte otsima ja asuma nende ja oma linna vahele, kutsudes teisi häkkereid minuga liituma.

Tänapäeval pole ma sageli ainuke. See on kergendus ja rõõm, kui näen häkkerite rügementi, kes kaevab liini hoidma, ja ma mõistan, et see linn võib praeguseks ellu jääda. Kuid ohud on iga kord suuremad aastal ja nüüd on Microsoft selgelt meie kogukonna sihtmärgiks võtnud. Ärge võtke seda enesestmõistetavana! Kui soovite oma vabadust säilitada, peate olema valmis seda kaitsma.

Tasud Sissetulekud

Lua viga moodulis: Wikidata real 170: katse indekseerida välja "wikibase" (nullväärtus).

Annetused

Lua viga moodulis: Wikidata real 170: katse indekseerida välja "wikibase" (nullväärtus).

Vabatahtlike arv

Lua viga moodulis: Wikidata real 170: katse indekseerida välja "wikibase" (nullväärtus).

Töötajate arv

Lua viga moodulis: Wikidata real 170: katse indekseerida välja "wikibase" (nullväärtus).

Liikmete arv

Lua viga moodulis: Wikidata real 170: katse indekseerida välja "wikibase" (nullväärtus).

Tütarettevõtted

Lua viga moodulis: Wikidata real 170: katse indekseerida välja "wikibase" (nullväärtus).

Omad

Lua viga moodulis: Wikidata real 170: katse indekseerida välja "wikibase" (nullväärtus).

Tunnuslause

Lua viga moodulis: Wikidata real 170: katse indekseerida välja "wikibase" (nullväärtus).

veebisait

Lua viga moodulis: Wikidata real 170: katse indekseerida välja "wikibase" (nullväärtus).

Likvideerimise kuupäev

Lua viga moodulis: Wikidata real 170: katse indekseerida välja "wikibase" (nullväärtus).

GNU projekti käimasolev töö hõlmab tarkvara arendamist, teadlikkuse tõstmist, poliitiliste kampaaniate läbiviimist ja uute materjalide levitamist.

Projekti päritolu

Kui projekt esimest korda algas, siis nad...

  • Asteroid on oma nime saanud GNU projekti järgi – (9965) GNU.

Vaata ka

Kirjutage ülevaade artiklist "GNU projekt"

Märkmed

Lingid

  • (inglise) - GNU projekti ametlik veebisait

Väljavõte, mis kirjeldab GNU projekti

– Valed, mõrv, reetmine... Kas teil pole selliseid sõnu?
– See oli ammu... keegi ei mäleta enam. Ainult mina. Aga me teame, mis see oli. See on põimitud meie "iidsesse mällu", nii et me ei unusta kunagi. Kas sa oled tulnud sealt, kus elab kurjus?
Noogutasin kurvalt. Ma olin väga nördinud oma kodumaa Maa pärast ja selle pärast, et elu sellel oli nii metsikult ebatäiuslik, et sundis mind selliseid küsimusi esitama... Kuid samal ajal tahtsin ma väga, et Kurjus lahkuks meie Kodust igaveseks, sest et armastasin seda maja kogu südamest ja unistasin väga sageli, et kunagi saabub selline imeline päev, kui:
inimene naeratab rõõmust, teades, et inimesed saavad talle ainult head tuua...
kui üksildane tüdruk ei karda õhtul läbi kõige pimedama tänava kõndida, kartmata, et keegi teda solvab...
kui saad oma südame rõõmsalt avada, kartmata, et su parim sõber sind reedab...
kui võid midagi väga kallist otse tänavale jätta, kartmata, et kui selja keerad, siis see kohe ära varastatakse...
Ja ma siiralt, kogu südamest uskusin, et kusagil on tõesti selline imeline maailm, kus pole kurjust ja hirmu, vaid on lihtne elurõõm ja ilus... Sellepärast, järgides oma naiivset unistust, ma kasutasin vähimatki võimalust, et õppida vähemalt midagi selle kohta, kuidas on võimalik hävitada seesama, nii visa ja nii hävimatu, meie maise Kurjuse... Ja ka - et mul poleks kunagi häbi kellelegi kuskil öelda, et ma olen - Inimene ...
Need olid muidugi naiivsed lapsepõlveunistused... Aga siis olin veel alles laps.
– Minu nimi on Atis, Man-Svetlana. Olen siin algusest peale elanud, Kurja näinud... Palju kurja...
- Kuidas sa temast lahti said, tark Atis?! Kas keegi aitas sind?.. – küsisin lootusrikkalt. – Kas saate meid aidata?.. Andke mulle vähemalt nõu?
- Me leidsime põhjuse... Ja tapsime ta. Kuid teie kurjus on väljaspool meie kontrolli. See on erinev... Nii nagu teised ja sina. Ja teiste hüvangud ei pruugi alati teie jaoks head olla. Peate leidma oma põhjuse. Ja hävita see,” pani ta õrnalt käe mu pea peale ja minusse voolas imeline rahu... “Hüvasti, Mees-Svetlana... Sa leiad vastuse oma küsimusele.” Las puhata...
Seisin sügavalt mõtetes ega pööranud tähelepanu tõsiasjale, et reaalsus minu ümber oli juba ammu muutunud ja kummalise läbipaistva linna asemel “ujusime” nüüd läbi tiheda lilla “vee” mingil ebatavalisel tasasel pinnal. ja läbipaistev seade, millel puudusid käepidemed, aerud - üldse mitte midagi, nagu seisaksime suurel õhukesel liikuval läbipaistval klaasil. Kuigi liikumist ega õõtsumist polnud üldse tunda. See libises üle pinna üllatavalt sujuvalt ja rahulikult, pannes unustama, et see üldse liikus...
-Mis see on?..Kuhu me läheme? – küsisin üllatunult.
"Et oma väikesele sõbrale järele tulla," vastas Veya rahulikult.
- Aga kuidas?!. Ta ei saa sellega hakkama, eks?
- Suudab. "Tal on sama kristall mis teil," oli vastus. "Kohtume temaga "sillal" ja midagi pikemalt selgitamata peatas ta peagi meie kummalise "paadi".
Nüüd olime juba mingi läikiva “poleeritud” seina jalamil, must nagu öö, mis erines järsult kõigest heledast ja sädelevast ümberringi ning tundus kunstlikult loodud ja võõrana. Järsku “lahkus” sein, nagu koosneks see selles kohas tihedast udust ja kuldses “kookonis” ilmus... Stella. Värske ja terve, nagu oleks äsja mõnusalt jalutama läinud... Ja muidugi meeletult rahul toimuvaga... Mind nähes säras ta armas väike nägu rõõmsalt ja harjumusest hakkas kohe mölisema. :
– Kas sa oled ka siin?!... Oi, kui hea!!! Ja ma olin nii mures!.. Nii mures!.. Arvasin, et sinuga on kindlasti midagi juhtunud. Kuidas sa siia sattusid?.. – jõllitas väike tüdruk mulle hämmeldunult otsa.

PÕHISTANDARDID

Arvutitootjate tarnitavad UNIX-id

Auto operatsioonisüsteem "Originaal"
P 1,2,10,... SunOS 4.1.2 BSD 4.3
Pühap 10,20,1000 SunOS 5.5 SVR4.0
IBM RS/6000 AIX SV 3.2
HP Apollo 900 HP/UX 10 BSD 4.2 ja SV 3.2
Järjekord Dynix SV 4.0
Motorola 922 SVR4/88 SVR4.0
Besta-88 Bestix SV 3.1
DEC Ultrix BSD 4.2
DEC Alpha AXP OSF/1 BSD 4.3
SGCS Silicon Graphic IRIX 6.0

Platvormi valides saame koos sellega automaatselt "oma" UNIX-i. Võib-olla on kasutaja- ja administraatorikeskkonna mugavuse ja terviklikkuse seisukohalt kõige meeldivam neist AIX. Ja kõige levinum on Solaris 2.5 (loomulikult).

Just Unixi kommertsrakenduste tulek viis nn Unixi sõdadeni. Turul paremuse saavutamiseks lisasid kõik ettevõtted oma süsteemi mõned funktsioonid, oma muudatused ja täiustused, mõnikord isegi otsese eesmärgiga eristada oma süsteemi teistest turul olevatest. Arendusettevõtted, püüdes saavutada eelist konkurentide ees, tegid muudatusi isegi aastal rakenduste programmeerimisliides(API- Applications Programmer's Interface), - funktsioonide komplekti spetsifikatsioon, mida tarkvaraarendajad peavad täitma, et nende programmid ühilduksid operatsioonisüsteemiga. See suurendas veelgi Unixi erinevate versioonide kokkusobimatust ja põhjustas tarkvara kokkusobimatuse väljatöötatud erinevate (sh sõltumatute) tarnijate poolt.

Kuid Unixi erinevate versioonide vaheliste sõdade palju hullem tagajärg oli see, et see lõpetas lähtekoodi vaba vahetuse, mis oli nii hõlbustanud Unixi kiiret täiustamist selle arendamise algfaasis. Kuna tarkvarast kasu saamiseks pole muud mudelit peale selle salajas hoidmise ja täieliku kontrolli kommertstoote arendamise üle, keelas AT&T rangelt lähtekoodi levitamise. Kohtumenetluse ähvardus Unixi lintide ebaseadusliku levitamise eest ei meeldinud vähe. Uute ideede voog ülikoolidest on kokku kuivanud.

Selle probleemi lahendamiseks tehti Unixi standardiseerimiseks mitmeid katseid.

Esimese tõsise jõupingutuse System V ja Berkeley jaoks välja töötatud API (programmeerimisliidese) versioonide standardimiseks tegi 1983. aastal algatusrühm nimega /usr/group. Operatsioonisüsteemi versioonide arvu kasvades aga standardi efektiivsus langes ning aasta hiljem, 1985. aastal loodi POSIX standard (Portable Operating System Interface for Computing Environment).



1988. aastal töötati välja POSIX 1003.1-1988 standard, mis määratles rakenduste programmeerimisliidese. Seda standardit kasutatakse laialdaselt paljudes operatsioonisüsteemides, sealhulgas mitte-UNIX-i arhitektuurides. Kaks aastat hiljem võeti standard vastu IEEE (elektri- ja elektroonikainseneride instituut, endiselt eksisteeriv) standard IEEE 1003.1-1990. Standard määratleb ainult liidese, mitte konkreetse organisatsiooni, seega ei tee see vahet süsteemikutsete ja raamatukogu funktsioonide vahel, kutsudes kõiki programmeerimisliidese elemente lihtsalt funktsioonideks.

Kõik hilisemad Unixi standardid hõlmavad POSIX-i ja kõik järgnevad Unixi versioonid järgivad seda standardit. Ainus suur lisand, mis hiljem Unixi kernelisse ilmus, olid soklid, mis pärinesid BSD-st.

Mittetulundusühing X/Open konsortsium (hilisem Open Group), mille lõid 1984. aastal mitmed Euroopa ettevõtted, võttis endale ülesandeks töötada välja ühtne operatsioonisüsteemi liideste komplekt, mis on kokku lepitud erinevate tootjate vahel ja luua. tõeliselt avatud süsteemid, mille puhul rakenduste teisaldamise kulud oleksid minimaalsed.

1992. aastal ilmus X/OpenPortability Guide versioon 3 (XPG3) tuntud dokument, mis sisaldas POSIX 1003.1-1988 ja standardit graafikasüsteem X Windows System, mis on välja töötatud Massachusettsi Tehnoloogiainstituudis (USA). Aastal 1994 - XPG4.2.

1996. aastal viis X/Openi ja OSF-i ühinemine konsortsiumi The Open Group loomiseni, mis jätkas arendusi avatud süsteemide vallas, näiteks arendati edasi Common Desktop Environment kasutajaliidest, hajutatud andmetöötluse liideseid. keskkond Distributed Computing Environment – ​​DCE jne.

(Ameerika riiklik standardiinstituut)

1989. aastal kiitis Ameerika Riiklik Standardiinstituut heaks C-programmeerimiskeele standardi X3.159-1989. Standard määratleb standardteegi süntaksi, semantika ja sisu.

GNU on arendajate ühendus, kes loob väga erinevat tüüpi tasuta programme.

GNU on projekt, mis on loonud palju tasuta programmid avatud lähtekoodiga strateegia osana.

Pealegi saavad need programmid teha kõike – alates failidega töötamisest kuni tekstide töötlemiseni ning gcc kompilaator (GNU C) on UNIXi jaoks üks töökindlamaid ja tõhusamaid kompilaatoreid. See võimaldab varustada peaaegu iga UNIX-laadse OS-i tasuta tarkvaraga.

Mis on GNU/Linux?

Kuna Linux on lihtsalt tuum, on selline varustus kohustuslik. Kernel vastutab mälu, ketaste ja siseseadmetega töötamise eest, kuid näiteks tekstiredaktor puudub. Kuid see võib käivitada ka muid programme. Seetõttu tundub tasuta tuuma täiendamine tasuta programmide komplektiga väga loomulik. Tulemuseks on GNU/Linuxi tandem.

"Lühend GNU tähistab "GNU ei ole UNIX" (GNU - Not UNIX). GNU süsteemi arendamise põhiidee seisneb selle täielikus erinevuses UNIX-ist. UNIX on alati olnud ja jääb patenteeritud tarkvara, see tähendab, et ta jätab ilma selle kasutajatele vabadus teha koostööd ja kontrollida oma arvutit. Selleks et saada vabaks arvutikogukonnaks, vajasime tasuta operatsioonisüsteemi. Meil oli piisavalt teadmisi ja oskusi uue loomiseks. GNU loomine oli tohutu töö. Tegime seda oma ja ka teie vabaduse nimel.

1985. aastal kirjutas R. Stallman oma kuulsa GNU manifesti (see avaldati Dr. Dobb's Journali 1985. aasta märtsinumbris) ja asutas heategevusliku fondi vaba tarkvara levitatavate Emacsi lintide ja hiljem hakkas tarnima muud tasuta tarkvara (nii GNU projekti sees kui ka väljaspool) ja müüma nende jaoks käsiraamatuid, mis andsid raha GNU projekti arendamiseks. FSF võttis vastu annetusi, kuid suurem osa tuludest on alati tulnud koopiate müügist tasuta tarkvara ja sellega seotud teenused.

Vaba tarkvara arendamine oli väga oluline samm, kuid veelgi olulisem on GNU üldise avaliku litsentsi (GPL) loomine. Seda nime tõlgivad erinevad autorid vene keelde erineval viisil - üldine avalik litsents, üldine avalik litsents jne. Kuid usutakse, et Ainult selle litsentsi ingliskeelne versioon on juriidiliselt siduv. GPL-i põhiidee seisneb selles, et kasutajal peavad olema järgmised neli õigust (või neli vabadust):

· Õigus käivitada programmi mis tahes eesmärgil (vabadus 0)

· Õigus tutvuda programmi struktuuriga ja kohandada seda oma vajadustega (vabadus 1), mis eeldab juurdepääsu programmi lähtekoodile.

· Õigus programmi levitada, omades võimalust teisi aidata (vabadus 2).

· Õigus programmi täiustada ja täiustusi avaldada kogu kogukonna hüvanguks (vabadus 3), mis eeldab ka juurdepääsu programmi lähtekoodile.

Selle litsentsi alusel levitatavat tarkvara võib kasutada, kopeerida, muuta, muuta, üle kanda või müüa muudetud (või muutmata) versioone teistele mis tahes viisil, eeldusel, et sellise töötlemise tulemust levitatakse ka GPL-i litsentsi alusel. Viimane tingimus on selle litsentsi puhul kõige olulisem ja määravam. See tagab, et tasuta tarkvara arendajate jõupingutuste tulemused jäävad avatuks ega muutu ühegi tavapäraselt litsentsitud toote osaks. Samuti eristab see tasuta tarkvara tasuta levitatavast tarkvarast. Üks selle litsentsi nõudeid on, et kui müüte GPL-litsentsiga tarkvara, peate tegema selle tarkvara lähtekoodi kättesaadavaks kõigile, kes soovivad sellele juurdepääsu. FSF-i loojate sõnul teeb GPL-i litsents tarkvara vabaks ja tagab selle tasuta jäämise.

GPL-i peamine eesmärk on kaitsta vaba tarkvara "erastamise" eest. Kuid tuleb märkida, et see on loodud nii, et see võimaldaks kõiki "ausaid" viise tasuta tarkvaraga raha teenida. See on väga oluline punkt, millele tuleb pöörata erilist tähelepanu. GPL-iga esimest korda tutvudes võib teil tekkida eksiarvamus, et see litsents keelab üldiselt igasuguse tarkvara või selle arendusega raha teenimise. Tegelikult julgustavad GPL eriti ja FSF üldiselt otseselt seotud teenuste osutamisega seotud ettevõtteid – koolitust, nõustamist ja tarkvara kommertspaljutamist. See võimaldab meelitada koostööle nii ettevõtteid kui ka inimesi, kelle jaoks on materiaalsed huvid olulisemad kui moraalsed stiimulid.

GNU/Linuxil põhinevate operatsioonisüsteemide populaarsus kasvab (eelkõige tänu Ubuntule ja selle derivaatidele) ning üha enam kasutatakse mõistet “vaba tarkvara”. Veelgi enam, sageli vastandina "mittevabale tarkvarale". Kui installisite Ubuntu just eile, pole Linuxi maailmaga kursis ja teil pole absoluutselt aimugi, millest me räägime, siis see artikkel on teie jaoks.

GNU projekt

Isegi kui koodi on palju, siis kui see on juurdepääsetav, on vähemalt teoreetiline võimalus leida sellest kõikvõimalikke "järjehoidjaid", nuhkvaramooduleid ja troojalasi, mis on sisestatud kasutajate järele luuramiseks.

Peaaegu kõik tasuta patenteeritud tooted, mis on klassifitseeritud vabavaraks, sisaldavad "järjehoidjaid", mis "koguvad kasutusstatistikat" väidetavalt "toote edasise täiustamise eesmärgil". (Kasutuslepingut saate lugeda näiteks, kui te mind ei usu!) Milliseid saite külastate, milliseid dokumente avate, mida vaatate ja kuulate - tõeline "lukuaugu piilumine".

Patendiprogrammide tootjad soovivad teada teie huvivaldkonda ja pakkuda sarnasel teemal reklaame. Noh, nad lihtsalt ei austa teie privaatsust.

Kuna kood on suletud, saab see liiklust jälgides põhineda ainult välistel ilmingutel. Aga paraku ainult vahel. Lõppude lõpuks võib troojalane saata kogutud andmeid kord nädalas, proovige seda püüda.

Nii sai Richard Stallmanil sellest kõigest kõrini ja ta otsustas, et inimestel on oma liiga kavala tarkvaraga õigus nii privaatsusele kui ka sõltumatusele kommertsfirmadest. Ja nii sündis GNU projekt.

1991. aastal postitas Linus Torvalds Linuxi tuuma Internetti. GNU programmid, mis sel ajal saadaval olid, olid selle külge kinnitatud – ja see selgus. Seesama, mille alusel Ubuntu loodi.

Projektis osalejad unistavad oma Hurda tuuma loomisest. Kuni nende loomiseni soovitavad nad kasutada Linuxi tuumaga valmis operatsioonisüsteeme, mille on heaks kiitnud Free Software Foundation. Aga sellest lähemalt hiljem.

FSF sihtasutus

Kaks aastat pärast GNU projekti algust, 1985. aastal, asutas väsimatu ja entusiastlik Richard Stallman Vaba Tarkvara Fondi (FSF).

Erinevalt paljudest teistest kerjamisfondidest on FSF tõeliselt mittetulunduslik organisatsioon. Enamik programmeerijaid, kes loovad tasuta tarkvara, töötavad vabatahtlikult, vabal ajal ega nõua oma töö eest raha. Seetõttu on FSF-i põhitegevuseks õigusküsimused ja vajadusel ka kohtuvaidlused.

Seaduste ja litsentsimise keerukust selgitatakse sihtasutuse korraldatavatel seminaridel. Ka programmeerijad on inimesed ja ka nemad peavad teadma oma õigusi. Vastasel juhul patenteerivad ja omastavad kapitalismi haid kõik maailmas, kuni hiireklõpsuni välja.

Arendajate toetamiseks loodi GNU Savannah veebisait (http://savannah.gnu.org/), mis on "tarkvara sepis", nagu tuntud SourceForge.net ja Google Code.

Lisaks toetab FSF tasuta OS puuduvad patenteeritud komponendid (patenteeritud koodekid jne). Varalise tarkvara omanikud ei saa esitada pretensioone mis tahes autoriõiguste rikkumise kohta ega ka nuhkvara sisestada.

Näiteks FSF kiidab heaks:

  • OS gNewSense GNU/Linux(loodud Ubuntu ja Debiani baasil);
  • OS Trisquel GNU/Linux(haridusasutustele ja kodukasutajatele);
  • OS Dynebolic GNU/Linux(heli ja video redigeerimiseks).

Kogu nimekiri on GNU veebisaidil http://www.gnu.org/distros/free-distros.ru.html. Samuti on kooskõlastuse saamise tingimused ja muud üksikasjad.

Järeldus

Nüüd, kui käivitate Ubuntu, teate, et teie arvutis töötab muuhulgas GNU-sse kuuluvaid programme, mis on loodud ja levitatud idee huvides. Sa ei ole kellelegi nende eest võlgu, nad ei luura sinu järel ega hakka sulle reklaame söötma. See jääb alati nii, kaitsja – FSF Foundation – hoolitseb selle eest.

See tähendab, et järgmine kord, kui Ubuntust tõrked välja tulevad (ja seda kindlasti juhtub), ärge kiirustage arendajaid raevukalt norima, sest mitte ainult Canonicali programmeerijad ei pane operatsioonisüsteemi tööd... Ei, muidugi saate. ja peaks noomima, aga kriitika peaks olema, ükskõik kui triviaalne, konstruktiivne ja mõistlik, osutama konkreetsetele puudujääkidele.

Varasemad väljaanded: