Ideologia software-ului liber și proiectul GNU: starea actuală și provocări imediate.

Taxe Sursa de venit

Eroare Lua în Modulul:Wikidata pe linia 170: încercați să indexați câmpul „wikibase” (o valoare zero).

Donații

Eroare Lua în Modulul:Wikidata pe linia 170: încercați să indexați câmpul „wikibase” (o valoare zero).

Numărul de voluntari

Eroare Lua în Modulul:Wikidata pe linia 170: încercați să indexați câmpul „wikibase” (o valoare zero).

Numar de angajati

Eroare Lua în Modulul:Wikidata pe linia 170: încercați să indexați câmpul „wikibase” (o valoare zero).

Numărul de membri

Eroare Lua în Modulul:Wikidata pe linia 170: încercați să indexați câmpul „wikibase” (o valoare zero).

Filialele

Eroare Lua în Modulul:Wikidata pe linia 170: încercați să indexați câmpul „wikibase” (o valoare zero).

propriu

Eroare Lua în Modulul:Wikidata pe linia 170: încercați să indexați câmpul „wikibase” (o valoare zero).

Slogan

Eroare Lua în Modulul:Wikidata pe linia 170: încercați să indexați câmpul „wikibase” (o valoare zero).

site web

Eroare Lua în Modulul:Wikidata pe linia 170: încercați să indexați câmpul „wikibase” (o valoare zero).

Data lichidării

Eroare Lua în Modulul:Wikidata pe linia 170: încercați să indexați câmpul „wikibase” (o valoare zero).

Activitatea actuală a Proiectului GNU include dezvoltarea de software, creșterea gradului de conștientizare, campanie politică și distribuirea de noi materiale.

Originile proiectului

Când proiectul a început, ei...

  • Un asteroid poartă numele proiectului GNU - (9965) GNU.

Vezi si

Scrieți o recenzie despre „Proiectul GNU”

Note

Legături

  • (engleză) - site-ul oficial al proiectului GNU

Un fragment care caracterizează Proiectul GNU

- Minciuni, crimă, trădare... Nu aveți astfel de cuvinte? ..
- A fost cu mult timp în urmă... nimeni nu-și mai amintește. Doar eu. Dar știm ce a fost. Acest lucru este încorporat în „memoria noastră antică” pentru a nu uita niciodată. Ai venit de unde trăiește răul?
Am dat din cap cu tristețe. Mi-a părut foarte rău pentru Pământul meu natal și pentru faptul că viața de pe el era atât de imperfectă încât mă făcea să pun astfel de întrebări... Dar, în același timp, îmi doream foarte mult ca Evil să părăsească Casa noastră pentru totdeauna, pentru că asta Am iubit această casă din toată inima și de foarte multe ori am visat că într-o zi va veni o zi atât de minunată când:
o persoană va zâmbi de bucurie, știind că oamenii îi pot aduce numai bine...
când unei fete singuratice nu îi este frică să meargă seara pe cea mai întunecată stradă, fără să se teamă că cineva o va jigni...
când îți poți deschide inima cu bucurie, fără teamă că prietenul tău cel mai bun te va trăda...
când va fi posibil să lăsați ceva foarte scump chiar pe stradă, fără să vă fie teamă că dacă vă întoarceți - și va fi imediat furat...
Și eu sincer, din toată inima, credeam că undeva există cu adevărat o lume atât de minunată, unde nu există rău și frică, dar există o simplă bucurie a vieții și a frumuseții... De aceea, în urma visului meu naiv, am am folosit cea mai mică ocazie pentru a afla măcar ceva despre cum este posibil să distrugem acest Rău pământesc, atât de tenace și de indestructibil... Și încă ceva - ca să nu-mi fie niciodată rușine să spun cuiva undeva că eu sunt un om...
Desigur, acestea erau vise naive din copilărie... Dar atunci eram încă doar un copil.
– Mă numesc Atis, Svetlana Man. Locuiesc aici de la bun început, am văzut Răul... Mult rău...
– Și cum ai scăpat de el, înțelept Hatis?! Te-a ajutat cineva? .. - am întrebat sper. - Ne poți ajuta? .. Da măcar un sfat?
– Am găsit motivul... Și l-am ucis. Dar răul tău este dincolo de controlul nostru. Este diferit... La fel ca alții și tu. Și nu întotdeauna binele altcuiva poate fi bun pentru tine. Trebuie să-ți găsești propriul motiv. Și distruge-l, - și-a pus ușor mâna pe capul meu și o pace minunată s-a revărsat în mine... - Adio, Svetlana umană... Vei găsi răspunsul la întrebarea ta. Odihneste-te...
Am stat adânc în gânduri și nu am acordat atenție faptului că realitatea din jurul meu s-a schimbat cu mult timp în urmă și, în loc de un oraș ciudat, transparent, acum „plutim” pe „apă” densă violetă pe unele neobișnuite, dispozitiv plat și transparent, care nu aveau mânere, nici vâsle - absolut nimic, de parcă stăm pe o sticlă transparentă mare, subțire, în mișcare. Deși nu s-a simțit deloc mișcare sau pitch. A alunecat peste suprafață surprinzător de lin și de calm, făcându-te să uiți că se mișca deloc...
– Ce este?.. Unde navigam? am întrebat uimită.
„Să-ți iau micul prieten”, a răspuns Veya calm.
- Dar cum?!. Ea nu poate...
- Va fi capabil. Ea are același cristal ca al tău, a fost răspunsul. - O vom întâlni la „pod”, - și fără să explice altceva, ea a oprit curând ciudata noastră „barcă”.
Acum eram deja la poalele unui zid negru strălucitor „lustruit” ca noaptea, care era cu totul diferit de tot ce strălucea și strălucea în jur și părea creat artificial și străin. Deodată, peretele s-a „despărțit”, de parcă în acel loc ar fi fost ceață densă, iar într-un „cocon” auriu a apărut... Stella. Proaspătă și sănătoasă, de parcă tocmai ar fi plecat la o plimbare plăcută... Și, bineînțeles, era extrem de mulțumită de ceea ce se întâmpla... Când m-a văzut, chipul ei drăguț strălucea de bucurie și, din obișnuință, ea a vorbit imediat:
– Ești și tu aici?!... O, ce bine!!! Și eram atât de îngrijorat! .. Atât de îngrijorat! .. Am crezut că trebuie să ți se fi întâmplat ceva. Dar cum ai ajuns aici? .. - copilul se uită uluit la mine.

PRINCIPALE STANDARDE

UNIX-uri furnizate de producătorii de computere

Mașină Sistem de operare "Original"
soarele 1,2,10,... SunOS 4.1.2 BSD 4.3
Soare 10.20.1000 SunOS 5.5 SVR4.0
IBM RS/6000 AIX SV 3.2
HP Apollo 900 HP/UX 10 BSD 4.2 și SV 3.2
Secvent Dynix SW 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

Alegând o platformă, obținem automat „propriul” UNIX cu ea. Poate, din punct de vedere al confortului și integrității mediului de utilizator și administrator, cel mai plăcut dintre ele este AIX. Și cel mai comun este Solaris 2.5 (desigur).

A fost apariția implementărilor comerciale ale Unix care a dus la așa-numitele războaie Unix. Fiecare dintre firme, în efortul de a atinge superioritatea pe piață, a inclus în sistemul său unele caracteristici, îmbunătățiri și îmbunătățiri proprii, uneori chiar cu scopul direct de a-și izola sistemul de celelalte de pe piață. Firmele-dezvoltatori în eforturile lor de a câștiga un avantaj față de concurenți au făcut schimbări chiar și în interfața de programare a aplicației(API- Applications Programmer "s Interface), - o specificație a unui set de funcții pe care dezvoltatorii de software trebuie să le respecte pentru a-și face programele compatibile cu sistemul de operare. Acest lucru a crescut și mai mult incompatibilitatea diferitelor versiuni de Unix și a condus la incompatibilitatea software-ului dezvoltat de către furnizori diferiți (inclusiv independenți).

Dar o consecință mult mai rea a războaielor dintre diferitele versiuni ale Unix a fost că schimbul liber de cod sursă care ajutase la îmbunătățirea rapidă a Unix-ului în primele etape ale dezvoltării sale a încetat. Necunoscând alt model de profit de pe urma software-ului, în afară de păstrarea lui secretă și de a avea control complet asupra dezvoltării unui produs comercial, AT&T a interzis cu strictețe distribuirea codurilor sursă. Puțini oameni au fost atrași de amenințarea unei acțiuni legale pentru distribuirea ilegală de benzi Unix. Fluxul de idei noi din universități s-a secat.

Pentru a depăși această problemă, au fost făcute mai multe încercări de standardizare a Unix.

Primul efort serios de standardizare a versiunilor de API (interfață de programare) dezvoltate pentru System V și Berkeley a fost făcut în 1983 de un grup de inițiativă numit /usr/group. Cu toate acestea, odată cu creșterea numărului de versiuni ale sistemului de operare, eficiența standardului a scăzut, iar un an mai târziu, în 1985, a fost creat standardul POSIX (Interfață de sistem de operare portabilă pentru mediu de calcul).



În 1988, a fost dezvoltat standardul POSIX 1003.1-1988, care a definit interfața de programare a aplicației. Acest standard a găsit o aplicație largă în multe sisteme de operare, inclusiv în arhitecturi non-UNIX. Doi ani mai târziu, standardul a fost adoptat ca standard IEEE (Institutul de Ingineri Electrici și Electronici, încă existent) IEEE 1003.1-1990. Standardul definește doar interfața și e organizatie specifica, deci nu face distincție între apelurile de sistem și funcțiile de bibliotecă, apelând toate elementele API doar funcții.

Toate standardele Unix ulterioare includ POSIX, iar toate versiunile ulterioare ale Unix aderă la acest standard. Singura completare mare care a apărut mai târziu în nucleul Unix au fost socket-urile, care au venit de la BSD.

O organizație non-profit - consorțiul X/Open (mai târziu Open Group), creat în 1984 de o serie de companii europene, a întreprins dezvoltarea unui set comun de interfețe ale sistemelor de operare, convenit între diverși producători, și crearea unui sistem cu adevărat deschis. sisteme pentru care costul portabilității aplicațiilor ar fi minim .

În 1992, a apărut un document cunoscut sub numele de X/OpenPortability Guide versiunea 3 (XPG3), care includea POSIX 1003.1-1988 și standardul pentru sistemul grafic X Windows System dezvoltat la Massachusetts Institute of Technology (SUA). În 1994 - XPG4.2.

În 1996, uniunea dintre X/Open și OSF a condus la crearea consorțiului The Open Group, care a continuat evoluțiile în domeniul sistemelor deschise, de exemplu, dezvoltarea ulterioară a interfeței de utilizator Common Desktop Environment, interfețe pentru mediul de calcul distribuit. - DCE etc.

(Institutul Național American de Standarde)

În 1989, Institutul Național American de Standarde a aprobat standardul X3.159-1989 pentru limbajul de programare C. Standardul definește sintaxa, semantica și conținutul bibliotecii standard.

GNU este o asociație de dezvoltatori care creează software liber de tot felul.

GNU este un proiect care a creat o mulțime de software liber ca parte a unei strategii open source.

În același timp, aceste programe pot face totul, de la lucrul cu fișiere până la procesarea de text, iar compilatorul gcc (GNU C) este unul dintre cele mai fiabile și eficiente compilatoare pentru UNIX. Acest lucru face posibilă echiparea aproape oricărui sistem de operare asemănător UNIX cu software gratuit.

Ce este GNU/Linux?

Deoarece Linux este doar un nucleu, acest tip de echipament este esențial. Nucleul este responsabil pentru lucrul cu memorie, discuri, dispozitive interne, dar, de exemplu, nu are un editor de text. Dar poate rula alte programe. Prin urmare, adăugarea unui nucleu gratuit cu un set de programe gratuite pare foarte naturală. Rezultatul este tandemul GNU/Linux.

„Abrevierea GNU înseamnă „GNU is not UNIX” (GNU – Not UNIX). Ideea principală din spatele dezvoltării sistemului GNU este sa diferenta totala din UNIX. UNIX a fost întotdeauna și rămâne software proprietar, ceea ce înseamnă că îi privează pe utilizatorii săi de libertatea de a colabora, precum și de controlul asupra computerelor lor. Pentru a fi o comunitate care să folosească liber propriile computere, aveam nevoie de un sistem de operare gratuit. Nu aveam suficienți bani pentru a cumpăra și a face gratuit oricare dintre sistemele existente, dar aveam suficiente cunoștințe și abilități pentru a crea unul nou. Crearea GNU a fost o întreprindere masivă. Am făcut-o în numele libertății noastre, dar și al tău.”

În 1985, R. Stallman a scris faimosul său Manifest GNU (a fost publicat în numărul din martie 1985 al Dr. Dobb's Journal) și a fondat Free Software Foundation (FSF) - o fundație caritabilă pentru dezvoltarea de software liber. distribuirea benzilor Emacs , iar mai târziu distribuirea altor software-uri libere (atât din proiectul GNU, cât și în afara acestuia) și vânzarea manualelor acestora, care au oferit fonduri pentru dezvoltarea proiectului GNU. FSF a acceptat donații, dar cea mai mare parte a veniturilor a venit întotdeauna din vânzarea de copii. a software-ului liber și a serviciilor conexe.

Dezvoltarea software-ului liber a fost un pas foarte important, dar meritul și mai mare al lui R.Stallman ar trebui recunoscut ca fiind crearea Licenței Publice Generale GNU (GPL). Diferiți autori traduc acest nume în rusă în moduri diferite - Licența Publică Universală, Licența Publică Generalizată etc. Dar se consideră că Doar versiunea în limba engleză a acestei licențe este valabilă. Ideea principală a GPL este că utilizatorul trebuie să aibă următoarele patru drepturi (sau patru libertăți):

Dreptul de a rula programul în orice scop (libertate 0)

· Dreptul de a studia structura programului și de a o adapta nevoilor dumneavoastră (libertate 1), ceea ce presupune accesul la codul sursă al programului.

· Dreptul de a distribui programul în timp ce puteți ajuta pe alții (libertatea 2).

· Dreptul de a îmbunătăți programul și de a publica îmbunătățiri în beneficiul întregii comunități (libertatea 3), care implică și accesul la codul sursă al programului.

Puteți utiliza, copia, modifica, modifica, transfera sau vinde versiuni modificate (sau nemodificate) altora în orice mod doriți, cu condiția ca rezultatul unei astfel de procesări să fie distribuit și sub licența GPL. Ultima condiție este cea mai importantă și definitorie din această licență. Se asigură că rezultatele eforturilor dezvoltatorilor de software liber rămân open source și nu devin parte a niciunui produs cu licență convențională. De asemenea, distinge software-ul liber de software-ul liber. Una dintre cerințele acestei licențe este că atunci când vindeți software sub GPL, trebuie să puneți codul sursă al acelui software la dispoziția oricui dorește să aibă acces la el. În cuvintele creatorilor FSF, GPL „face software-ul gratuit și se asigură că rămâne gratuit”.

Scopul principal al GPL este de a proteja software-ul liber de „privatizare”. Dar trebuie remarcat faptul că este conceput în așa fel încât să permită toate modalitățile „echitabile” de a face bani din software-ul liber. Acesta este un punct foarte semnificativ care necesită o atenție specială. Când a fost introdusă pentru prima dată în GPL, poate fi înțeles greșit că această licență interzice, în general, orice modalitate de a câștiga bani din software sau din dezvoltarea acestuia. De fapt, GPL în special, și FSF în general, încurajează direct afacerile asociate cu furnizarea de servicii conexe - formare, consultanță și replicare software comercială. Acest lucru face posibilă atragerea către cooperare atât a corporațiilor, cât și a persoanelor pentru care interesul material este mai important decât stimulentele morale.

Publicat inițial în carte surse deschise. Richard Stallman a fost, dar a contribuit cu acest articol, astfel încât ideile mișcării software liber să nu lipsească cu totul din acea carte.

Prima comunitate de partajare de software

Când am început să lucrez la MIT Artificial Intelligence Lab în 1971, am devenit parte dintr-o comunitate de partajare a software-ului care exista de mulți ani. Partajarea de software nu a fost limitată la comunitatea noastră specială; este la fel de veche ca computerele, la fel cum împărtășirea rețetelor este la fel de veche ca și gătitul. Dar am făcut-o mai mult decât majoritatea.

Laboratorul AI a folosit un sistem de operare de partajare a timpului numit ITS (Sistemul de partajare a timpului incompatibil) pe care hackerii personalului laboratorului (1) l-au proiectat și scris în limbaj de asamblare pentru Digital PDP -10, unul dintre calculatoarele mari ale epocii. un membru al acestei comunități, un hacker de sistem al personalului AI Lab, treaba mea era să îmbunătățesc acest sistem.

Nu am numit software-ul nostru „software liber”, deoarece acel termen nu exista încă; dar asta a fost. Ori de câte ori oameni de la o altă universitate sau o companie au vrut să port și să folosească un program, le lăsăm cu plăcere. Dacă ați văzut pe cineva folosind un program necunoscut și interesant, ați putea oricând să cereți să vedeți codul sursă, astfel încât să îl puteți citi, să îl schimbați sau să canibalizați părți din acesta pentru a crea un program nou.

(1) Utilizarea termenului „hacker” pentru a însemna „rupător de securitate” este o confuzie din partea mass-media. Noi, hackerii, refuzăm să recunoaștem acest sens și continuăm să folosim cuvântul pentru a însemna pe cineva căruia îi place să programeze, pe cineva căruia îi place inteligența jucăușă sau combinația celor două. Vezi articolul meu, Despre hacking.

Prăbușirea comunității

Situația s-a schimbat drastic la începutul anilor 1980, când Digital a întrerupt seria PDP-10. Arhitectura sa, elegantă și puternică în anii '60, nu s-a putut extinde în mod natural la spațiile de adrese mai mari care deveneau fezabile în anii '80. Aceasta a însemnat că aproape toate programele care compun ITS erau învechite.

Comunitatea hackerilor AI Lab se prăbușise deja, cu puțin timp înainte. În 1981, compania spin-off Symbolics a angajat aproape toți hackerii din Laboratorul AI, iar comunitatea depopulată nu a putut să se mențină. (Cartea Hackers, de Steve Levy, descrie aceste evenimente, precum și oferă o imagine clară a acestei comunități în plină experiență.) Când AI ​​Lab a cumpărat un nou PDP-10 în 1982, administratorii săi au decis să folosească programul non-free al Digital. sistem de partajare a timpului în loc de ITS.

Calculatoarele moderne ale epocii, precum VAX sau 68020, aveau propriile sisteme de operare, dar niciunul nu era software liber: trebuia să semnezi un acord de confidențialitate chiar și pentru a obține o copie executabilă.

Aceasta însemna că primul pas în folosirea unui computer a fost să promiți că nu-ți vei ajuta aproapele. O comunitate cooperantă a fost interzisă. Regula făcută de proprietarii de software proprietar a fost: „Dacă împărtășești cu vecinul tău, ești un pirat. Dacă doriți modificări, roagă-ne să le facem.”

Ideea că sistemul social de software proprietar – sistemul care spune că nu aveți voie să partajați sau să schimbați software – este antisocial, că nu este etic, că este pur și simplu greșit, poate fi o surpriză pentru unii cititori. Dar ce altceva am putea spune despre un sistem bazat pe împărțirea publicului și menținerea utilizatorilor neputincioși? Cititorii cărora li se pare surprinzătoare ideea este posibil să fi considerat sistemul social software proprietar ca un dat sau să l-au judecat în condițiile sugerate de companiile cu software proprietar. Editorii de software au muncit mult și din greu pentru a convinge oamenii că există o singură modalitate de a privi problema.

Când editorii de software vorbesc despre „aplicarea” „drepturilor” lor sau „oprirea pirateriei”, ceea ce ei de fapt Spune este secundar. Adevăratul mesaj al acestor afirmații este în ipotezele neenunțate pe care le consideră de la sine înțelese, pe care publicul este rugat să le accepte fără examinare. Prin urmare, să le examinăm.

O presupunere este că companiile de software au un drept natural incontestabil de a deține software și astfel au putere asupra tuturor utilizatorilor săi. (Dacă acesta ar fi un drept natural, atunci oricât de mult rău ar face publicului, nu am putea obiecta.) Interesant, Constituția SUA și tradiția juridică resping acest punct de vedere; Dreptul de autor nu este un drept natural, ci un monopol artificial impus de guvern care limitează dreptul natural de copiere al utilizatorilor.

O altă presupunere neenunțată este că singurul lucru important despre software este ce locuri de muncă vă permite să faceți - că nouă utilizatorilor de computere nu ar trebui să ne pese ce fel de societate avem voie să avem.

O a treia presupunere este că nu am avea niciun software utilizabil (sau nu am avea niciodată un program care să facă asta sau acea activitate specială) dacă nu am oferi unei companii putere asupra utilizatorilor programului. Această presupunere poate părea plauzibilă, înainte ca mișcarea de software liber să demonstreze că putem face o mulțime de software util fără a pune lanțuri pe el.

Dacă refuzăm să acceptăm aceste presupuneri și judecăm aceste probleme pe baza moralității obișnuite de bun simț, în timp ce plasăm utilizatorii pe primul loc, ajungem la concluzii foarte diferite. Utilizatorii de computere ar trebui să fie liberi să modifice programele pentru a se potrivi nevoilor lor și liberi să partajeze software, deoarece ajutarea altor oameni este baza societății.

O alegere morală cruntă

Cu comunitatea mea plecată, era imposibil să continui ca înainte. În schimb, m-am confruntat cu o alegere morală cruntă.

Alegerea ușoară a fost să mă alăturăm lumii software-ului proprietar, semnând acorduri de confidențialitate și promițând că nu-mi voi ajuta colegul hacker. Cel mai probabil, aș dezvolta și software care a fost lansat în baza unor acorduri de confidențialitate, adăugând astfel presiunea asupra altor persoane de a-și trăda și semenii.

Aș fi putut câștiga bani în acest fel și poate să mă distrez scriind cod. Dar știam că, la sfârșitul carierei mele, voi privi în urmă anii în care am construit ziduri pentru a împărți oamenii și voi simți că mi-am petrecut viața făcând lumea un loc mai rău.

Am avut deja experiența că am primit un acord de confidențialitate, când cineva a refuzat să ne ofere mie și laboratorului MIT AI codul sursă pentru programul de control pentru imprimanta noastră. (Lipsa anumitor funcții din acest program a făcut ca utilizarea imprimantei să fie extrem de frustrantă.) Așa că nu mi-am putut spune că acordurile de confidențialitate erau nevinovate. Am fost foarte supărat când a refuzat să ne împărtășească; Nu puteam să mă întorc și să fac același lucru tuturor celorlalți.

O altă alegere, simplă, dar neplăcută, a fost să părăsești domeniul computerelor. În acest fel, abilitățile mele nu vor fi folosite greșit, dar tot vor fi irosite. Nu aș fi vinovat pentru împărțirea și restricționarea utilizatorilor de computere, dar s-ar întâmpla totuși.

Așa că am căutat o modalitate prin care un programator ar putea face ceva spre bine. M-am întrebat, există vreun program sau programe pe care să le scriu, pentru a face posibilă o comunitate din nou?

Răspunsul a fost clar: ceea ce era nevoie mai întâi a fost un sistem de operare. Acesta este software-ul crucial pentru a începe să utilizați un computer. Cu un sistem de operare, puteți face multe lucruri; fără unul, nu poți rula computerul deloc. Cu un sistem de operare gratuit, am putea avea din nou o comunitate de hackeri cooperanți – și am putea invita pe oricine să se alăture. Și oricine ar putea folosi un computer fără să înceapă prin a conspira pentru a-și priva prietenii.

Ca dezvoltator de sisteme de operare, aveam abilitățile potrivite pentru acest job. Așa că, deși nu puteam lua succesul de la sine înțeles, mi-am dat seama că am fost ales să fac treaba. Am ales să fac sistemul compatibil cu Unix, astfel încât să fie portabil și astfel încât utilizatorii Unix să poată trece cu ușurință la el. Numele GNU a fost ales, urmând tradiția hackerilor, ca acronim recursiv pentru „GNU’s Not Unix”. Se pronunță ca o silabă cu un g dur.

Un sistem de operare nu înseamnă doar un nucleu, abia suficient pentru a rula alte programe. În anii 1970, fiecare sistem de operare demn de acest nume includea procesoare de comandă, asamblare, compilatoare, interpreți, depanatoare, editori de text, mailere și multe altele. ITS le avea, Multics le avea, VMS le avea și Unix le avea. Sistemul de operare GNU le-ar include și pe acestea.

Mai târziu am auzit aceste cuvinte, atribuite lui Hillel (1):

Dacă nu sunt pentru mine, cine va fi pentru mine?
Dacă sunt doar pentru mine, ce sunt?
Daca nu acum, atunci cand?

Decizia de a începe Proiectul GNU sa bazat pe un spirit similar.

(1) Ca ateu, nu urmăresc niciun lider religios, dar uneori constat că admir ceva ce a spus unul dintre ei.

Liber ca în libertate

Termenul „software liber” este uneori greșit înțeles – nu are nimic de-a face cu prețul. Este vorba despre libertate. Iată, așadar, definiția software-ului liber.

Un program este software gratuit, pentru dvs., un anumit utilizator, dacă:

  • Aveți libertatea de a rula programul așa cum doriți, pentru orice scop.
  • Aveți libertatea de a modifica programul pentru a se potrivi nevoilor dvs. (Pentru a face această libertate efectivă în practică, tu trebuie avut accesul la codul sursă, deoarece efectuarea de modificări într-un program fără a avea codul sursă este extrem de dificilă.)
  • Aveți libertatea de a redistribui copii, fie gratuit, fie contra cost.
  • Ai libertatea de a distribui versiuni modificate ale programului, astfel încât comunitatea să poată beneficia de îmbunătățirile tale.

Deoarece „gratuit” se referă la libertate, nu la preț, nu există nicio contradicție între vânzarea de copii și software-ul liber. De fapt, libertatea de a vinde copii este crucială: colecțiile de software gratuit vândute pe CD-ROM-uri sunt importante pentru comunitate, iar vânzarea lor este o modalitate importantă de a strânge fonduri pentru dezvoltarea de software liber. Prin urmare, un program pe care oamenii nu sunt liberi să îl includă în aceste colecții nu este un software liber.

Din cauza ambiguității cuvântului „liber”, oamenii au căutat de mult timp alternative, dar nimeni nu a găsit un termen mai bun. Limba engleză are mai multe cuvinte și nuanțe decât oricare alta, dar îi lipsește un cuvânt simplu, lipsit de ambiguitate, care să însemne „liber”, ca în libertate – „nelimitat” fiind cuvântul care se apropie cel mai mult în sens. Alternative precum „eliberat”, „libertate” și „deschis” au fie un înțeles greșit, fie un alt dezavantaj.

Software-ul GNU și sistemul GNU

Dezvoltarea unui întreg sistem este un proiect foarte mare. Pentru a-l aduce la îndemână, am decis să adaptez și să folosesc piese existente de software gratuit oriunde era posibil. De exemplu, am decis de la bun început să folosesc TeX ca format principal de text; câțiva ani mai târziu, am decis să folosesc X Window System în loc să scriu un alt sistem de ferestre pentru GNU.

Din cauza acestor decizii, și a altora asemănătoare lor, sistemul GNU nu este același cu colecția tuturor programelor GNU. Sistemul GNU include programe care nu sunt software GNU, programe care au fost dezvoltate de alți oameni și proiecte în scopuri proprii, dar pe care le putem folosi pentru că sunt software liber.

Demararea proiectului

În ianuarie 1984, mi-am părăsit slujba la MIT și am început să scriu software GNU. Părăsirea MIT a fost necesară pentru ca MIT să nu poată interfera cu distribuirea GNU ca software liber. Dacă aș fi rămas în personal, MIT ar fi putut pretinde că deține lucrarea și și-ar fi impus propriile condiții de distribuție sau chiar ar fi transformat lucrarea într-un pachet software proprietar. Nu aveam nicio intenție să fac o cantitate mare de muncă doar pentru a vedea că devine inutilă pentru scopul propus: crearea unei noi comunități de partajare a software-ului.

Cu toate acestea, profesorul Winston, pe atunci șeful Laboratorului MIT AI, m-a invitat cu amabilitate să folosesc în continuare facilitățile laboratorului.

Primii pași

Cu puțin timp înainte de a începe proiectul GNU, am auzit despre Free University Compiler Kit, cunoscut și sub numele de VUCK. (Cuvântul olandez pentru „gratuit” este scris cu a v.) Acesta a fost un compilator conceput pentru a gestiona mai multe limbi, inclusiv C și Pascal, și pentru a suporta mai multe mașini țintă. I-am scris autorului său întrebând dacă GNU îl poate folosi.

El a răspuns în derizoriu, afirmând că universitatea este liberă, dar compilatorul nu. Prin urmare, am decis că primul meu program pentru Proiectul GNU va fi un compilator multilingv, multiplatformă.

În speranța de a evita nevoia de a scrie singur întregul compilator, am obținut codul sursă pentru compilatorul Pastel, care era un compilator multiplatform dezvoltat la Lawrence Livermore Lab. A susținut și a fost scris în, o versiune extinsă a Pascal, concepută pentru a fi un limbaj de programare a sistemului. Am adăugat un front end C și am început să-l port pe computerul Motorola 68000. Dar a trebuit să renunț la asta când am descoperit că compilatorul avea nevoie de mulți megaocteți de spațiu pe stivă, iar sistemul Unix 68000 disponibil ar permite doar 64k.

Am realizat apoi că compilatorul Pastel a funcționat prin analizarea întregului fișier de intrare într-un arbore de sintaxă, conversia întregului arbore de sintaxă într-un lanț de „instrucțiuni”, apoi generând întreg fișierul de ieșire, fără a elibera vreodată niciun spațiu de stocare. În acest moment, am ajuns la concluzia că va trebui să scriu un nou compilator de la zero. Noul compilator este acum cunoscut sub numele de GCC; nici un compilator Pastel nu este folosit în el, dar am reușit să adaptez și să folosesc front-end-ul C pe care îl scrisesem. Dar asta a fost câțiva ani mai târziu; mai întâi, am lucrat pe GNU Emacs.

GNU Emacs

Am început să lucrez la GNU Emacs în septembrie 1984, iar la începutul lui 1985 începea să fie utilizabil. Acest lucru mi-a permis să încep să folosesc sisteme Unix pentru a edita; neavând niciun interes să învăț să folosesc vi sau ed, îmi făcusem editarea pe alte tipuri de mașini până atunci.

În acest moment, oamenii au început să dorească să folosească GNU Emacs, ceea ce a ridicat întrebarea cum să-l distribuie. Desigur, l-am pus pe serverul ftp anonim de pe computerul MIT pe care l-am folosit. (Acest computer, prep.ai.mit.edu, a devenit astfel principalul site de distribuție ftp GNU; când a fost dezafectat câțiva ani mai târziu, am transferat numele pe noul nostru server ftp.) Dar la acel moment, mulți dintre cei interesați oamenii nu erau pe internet și nu puteau obține o copie prin ftp. Deci întrebarea a fost, ce le-aș spune?

Aș fi putut spune: „Găsiți un prieten care este pe net și care vă va face o copie”. Sau aș fi putut face ceea ce am făcut cu Emacs-ul original PDP-10: spune-le: „Trimite-mi o bandă și un SASE și le voi trimite înapoi cu Emacs-ul.” Dar nu aveam de lucru și căutam modalități de a câștiga bani din software-ul liber. Așa că am anunțat că voi trimite prin poștă o casetă oricui vrea una, pentru o taxă de 150 de dolari. În acest fel, am început o afacere de distribuție de software gratuit, precursorul companiilor care distribuie astăzi distribuții întregi de sisteme GNU/Linux.

Este un program gratuit pentru fiecare utilizator?

Dacă un program este software liber atunci când părăsește mâinile autorului său, asta nu înseamnă neapărat că va fi software gratuit pentru toți cei care au o copie a acestuia. De exemplu, software-ul din domeniul public (software care nu este protejat prin drepturi de autor) este software liber; dar oricine poate face o versiune proprie modificată a acestuia. De asemenea, multe programe gratuite sunt protejate prin drepturi de autor, dar sunt distribuite sub licențe permisive simple care permit versiuni modificate proprietare.

Exemplul paradigmatic al acestei probleme este sistemul X Window. Dezvoltat la MIT și lansat ca software gratuit cu o licență permisivă, a fost adoptat în curând de diverse companii de calculatoare. Ei au adăugat X la sistemele lor proprietare Unix, numai în formă binară și acoperiți de același acord de confidențialitate. Aceste copii ale lui X nu erau mai mult software liber decât Unix.

Dezvoltatorii sistemului X Window nu au considerat aceasta o problemă – se așteptau și intenționau să se întâmple asta. Scopul lor nu era libertatea, ci doar „succesul”, definit ca „a avea mulți utilizatori”. Nu le păsa dacă acești utilizatori au libertate, doar că ar trebui să fie numeroși.

Acest lucru a condus la o situație paradoxală în care două moduri diferite de a număra cantitatea de libertate au dat răspunsuri diferite la întrebarea „Este acest program gratuit?” Dacă ați judeca pe baza libertății oferite de termenii de distribuție ai versiunii MIT, ați spune că X este software liber. Dar dacă ai măsura libertatea utilizatorului mediu de X, ar trebui să spui că a fost software proprietar. Majoritatea utilizatorilor X rulau versiunile proprietare livrate cu sistemele Unix, nu versiunea gratuită.

Copyleft și GNU GPL

Scopul GNU a fost să ofere utilizatorilor libertate, nu doar să fie populari. Așa că trebuia să folosim termeni de distribuție care să împiedice transformarea software-ului GNU în software proprietar. Metoda pe care o folosim se numește „copyleft”.(1)

Copyleft folosește legea dreptului de autor, dar o răstoarnă pentru a servi opusul scopului său obișnuit: în loc de un mijloc de restricționare a unui program, devine un mijloc de a menține programul liber.

Ideea centrală a copyleft-ului este că dăm tuturor permisiunea de a rula programul, copia programul, modifica programul și distribuie versiuni modificate, dar nu permisiunea de a adăuga restricții proprii. Astfel, libertățile cruciale care definesc „software liber” sunt garantate tuturor celor care dețin o copie; devin drepturi inalienabile.

Pentru un copyleft eficient, versiunile modificate trebuie să fie, de asemenea, gratuite. Acest lucru asigură că lucrările bazate pe ale noastre devin disponibile pentru comunitatea noastră dacă sunt publicate. Când programatorii care au locuri de muncă ca programatori se oferă voluntari pentru a îmbunătăți software-ul GNU, copyleft-ul îi împiedică pe angajatori să spună: „Nu puteți împărtăși acele modificări, pentru că le vom folosi pentru a face versiunea noastră proprietară a programului”.

Cerința ca modificările să fie gratuite este esențială dacă dorim să asigurăm libertatea fiecărui utilizator al programului. Companiile care au privatizat sistemul X Window au făcut de obicei unele modificări pentru a-l porta pe sistemele și hardware-ul lor. Aceste modificări au fost mici în comparație cu marea întindere a lui X, dar nu au fost banale. Dacă efectuarea modificărilor ar fi o scuză pentru a refuza libertatea utilizatorilor, ar fi ușor pentru oricine să profite de scuză.

O problemă conexă se referă la combinarea unui program gratuit cu cod non-free. O astfel de combinație ar fi inevitabil neliberă; oricare dintre libertățile lipsesc pentru partea neliberă ar lipsi și pentru întreg. A permite astfel de combinații ar deschide o gaură suficient de mare pentru a scufunda o navă. Prin urmare, o cerință crucială pentru copyleft este să astupe această gaură: orice adăugat sau combinat cu un program copyleft trebuie să fie astfel încât versiunea combinată mai mare să fie, de asemenea, liberă și cu copyleft.

Implementarea specifică a copyleft-ului pe care o folosim pentru majoritatea software-ului GNU este GNU General Public License, sau GNU GPL pe scurt. Avem alte tipuri de copyleft care sunt folosite în circumstanțe specifice. Manualele GNU sunt, de asemenea, copyleft, dar folosesc un tip mult mai simplu de copyleft, deoarece complexitatea GNU GPL nu este necesară pentru manuale.(2)

(1) În 1984 sau 1985, Don Hopkins (un tip foarte imaginativ) mi-a trimis o scrisoare prin poștă. Pe plic scrisese mai multe proverbe amuzante, inclusiv aceasta: „Copyleft – toate drepturile sunt inversate”. Am folosit cuvântul „copyleft” pentru a denumi conceptul de distribuție pe care îl dezvoltam în acel moment.

Angajații Free Software Foundation au scris și întreținut o serie de pachete software GNU. Două notabile sunt biblioteca C și shell-ul. Biblioteca GNU C este ceea ce folosește fiecare program care rulează pe un sistem GNU/Linux pentru a comunica cu Linux. A fost dezvoltat de un membru al personalului Free Software Foundation, Roland McGrath. Shell-ul folosit pe majoritatea sistemelor GNU/Linux este BASH, Bourne Again Shell(1), care a fost dezvoltat de angajatul FSF Brian Fox.

Am finanțat dezvoltarea acestor programe deoarece Proiectul GNU nu era doar despre instrumente sau despre un mediu de dezvoltare. Scopul nostru a fost un sistem de operare complet, iar aceste programe erau necesare pentru acest scop.

(1) „Bourne Again Shell” este o joacă cu numele „Bourne Shell”, care era shell-ul obișnuit pe Unix.

Suport software gratuit

Filosofia software-ului liber respinge o practică specifică de afaceri larg răspândită, dar nu este împotriva afacerilor. Când afacerile respectă libertatea utilizatorilor, le dorim succes.

Vânzarea de copii ale Emacs demonstrează un fel de afacere cu software gratuit. Când FSF a preluat această afacere, aveam nevoie de o altă modalitate de a-mi câștiga existența. L-am găsit în vânzarea de servicii legate de software-ul gratuit pe care l-am dezvoltat. Aceasta a inclus predare, pentru subiecte precum cum să programați GNU Emacs și cum să personalizați GCC și dezvoltarea de software, mai ales portarea GCC pe noi platforme.

Astăzi, fiecare dintre aceste tipuri de afaceri cu software liber este practicat de o serie de corporații. Unii distribuie colecții de software gratuit pe CD-ROM; alții vând asistență la niveluri care variază de la răspunsul la întrebările utilizatorilor, la remedierea erorilor și la adăugarea de noi funcții majore. Începem chiar să vedem companii de software liber bazate pe lansarea de noi produse software libere.

Atenție, totuși – o serie de companii care se asociază cu termenul „sursă deschisă” își bazează de fapt afacerea pe software non-liber care funcționează cu software liber. Acestea nu sunt companii de software liber, sunt companii de software proprietar ale căror produse ispitesc utilizatorii de la libertate. Ei numesc aceste programe „pachete cu valoare adăugată”, ceea ce arată valorile pe care și-ar dori să le adoptăm: confortul mai presus de libertate. Dacă prețuim mai mult libertatea, ar trebui să le numim pachete „scăderea libertății”.

obiective tehnice

Scopul principal al GNU este să fie software liber. Chiar dacă GNU nu ar avea niciun avantaj tehnic față de Unix, ar avea un avantaj social, permițând utilizatorilor să coopereze, și un avantaj etic, respectând libertatea utilizatorului.

Dar a fost firesc să se aplice standardele cunoscute de bună practică în muncă – de exemplu, alocarea dinamică a structurilor de date pentru a evita limitele arbitrare de dimensiune fixă ​​și gestionarea tuturor codurilor posibile de 8 biți oriunde avea sens.

În plus, am respins concentrarea Unix pe dimensiunea mică a memoriei, hotărând să nu acceptăm mașinile pe 16 biți (era clar că mașinile pe 32 de biți vor fi norma până la terminarea sistemului GNU) și să nu facem niciun efort. pentru a reduce utilizarea memoriei dacă nu depășește un megaoctet. În programele pentru care gestionarea fișierelor foarte mari nu era crucială, am încurajat programatorii să citească un întreg fișier de intrare în nucleu, apoi să-i scaneze conținutul fără a fi nevoit să-și facă griji cu privire la I/O.

Aceste decizii au permis multor programe GNU să depășească omologii lor Unix în fiabilitate și viteză.

calculatoare donate

Pe măsură ce reputația proiectului GNU a crescut, oamenii au început să se ofere să doneze mașini care rulau Unix pentru proiect.Acestea au fost foarte utile, deoarece cea mai simplă modalitate de a dezvolta componente ale GNU a fost să o faci pe un sistem Unix și să înlocuiești componentele acelui sistem. de unul.Dar ei au ridicat o problemă etică: dacă era corect ca noi să avem deloc o copie a Unix.

Unix a fost (și este) software proprietar, iar filosofia Proiectului GNU spunea că nu ar trebui să folosim software proprietar.Dar, aplicând același raționament care duce la concluzia că violența în autoapărare este justificată, am ajuns la concluzia că utilizarea este legitimă. un pachet proprietar când acesta era crucial pentru dezvoltarea unui înlocuitor gratuit care să-i ajute pe alții să nu mai folosească pachetul proprietar.

Dar, chiar dacă acesta a fost un rău justificat, a fost totuși un rău. Astăzi nu mai avem nicio copie a Unix, pentru că le-am înlocuit cu sisteme de operare gratuite. Dacă nu am putut înlocui sistemul de operare al unei mașini cu unul gratuit, am înlocuit mașina.

Lista de sarcini GNU

Pe măsură ce proiectul GNU a continuat și un număr tot mai mare de componente de sistem au fost găsite sau dezvoltate, în cele din urmă a devenit util să se facă o listă cu golurile rămase. L-am folosit pentru a recruta dezvoltatori care să scrie piesele lipsă. Această listă a devenit cunoscută ca Lista de sarcini GNU. Pe lângă componentele Unix lipsă, am enumerat diverse alte programe utile și proiecte de documentare pe care, ne-am gândit, un sistem cu adevărat complet ar trebui să le aibă.

Astăzi (1), aproape nicio componentă Unix este lăsată în Lista de sarcini GNU — acele lucrări au fost făcute, în afară de câteva neesențiale. Dar lista este plină de proiecte pe care unii le-ar putea numi „aplicații”. Orice program care atrage mai mult decât o clasă restrânsă de utilizatori ar fi un lucru util de adăugat la un sistem de operare.

Chiar și jocurile sunt incluse în lista de sarcini – și au fost încă de la început. Unix a inclus jocuri, așa că în mod firesc și GNU ar trebui. Dar compatibilitatea nu a fost o problemă pentru jocuri, așa că nu am urmat lista de jocuri pe care Unix le-a avut. În schimb, am enumerat un spectru de diferite tipuri de jocuri pe care utilizatorii le-ar putea plăcea.

(1) Asta a fost scris în 1998. În 2009 nu mai menținem o listă lungă de sarcini. Comunitatea dezvoltă software gratuit atât de repede încât nici măcar nu le putem urmări pe toate. În schimb, avem o listă de Proiecte cu prioritate înaltă, o listă mult mai scurtă de proiecte pe care dorim cu adevărat să încurajăm oamenii să scrie.

Biblioteca GNU GPL

Biblioteca GNU C folosește un tip special de copyleft numit GNU Library General Public License(1), care dă permisiunea de a lega software-ul proprietar cu biblioteca. De ce să facem această excepție?

Nu este o chestiune de principiu; nu există niciun principiu care să spună că produsele software proprietare au dreptul să includă codul nostru. (De ce să contribui la un proiect bazat pe refuzul de a împărtăși cu noi?) Utilizarea LGPL pentru biblioteca C, sau pentru orice bibliotecă, este o chestiune de strategie.

Biblioteca C face o treabă generică; fiecare sistem proprietar sau compilator vine cu o bibliotecă C. Prin urmare, a face biblioteca noastră C disponibilă numai pentru software-ul liber nu i-ar fi oferit niciun avantaj software-ului liber - ar fi doar descurajat utilizarea bibliotecii noastre.

Un sistem este o excepție de la aceasta: pe sistemul GNU (și acesta include GNU/Linux), biblioteca GNU C este singura bibliotecă C. Deci, termenii de distribuție ai bibliotecii GNU C determină dacă este posibil să compilați un program proprietar pentru sistemul GNU. Nu există niciun motiv etic pentru a permite aplicații proprietare pe sistemul GNU, dar din punct de vedere strategic se pare că interzicerea acestora ar descuraja mai mult utilizarea sistemului GNU decât pentru a încuraja dezvoltarea de aplicații gratuite. De aceea, utilizarea Bibliotecii GPL este o strategie bună pentru biblioteca C.

Pentru alte biblioteci, decizia strategică trebuie luată în considerare de la caz la caz. Când o bibliotecă face o treabă specială care poate ajuta la scrierea anumitor tipuri de programe, atunci lansarea acesteia sub GPL, limitându-l doar la programele gratuite, este o modalitate de a ajuta alți dezvoltatori de software liber, oferindu-le un avantaj față de software-ul proprietar.

Luați în considerare GNU Readline, o bibliotecă care a fost dezvoltată pentru a oferi editare în linie de comandă pentru BASH. Readline este lansat sub GNU GPL obișnuit, nu GPL Library. Acest lucru probabil reduce cantitatea de Readline utilizată, dar asta nu este o pierdere pentru noi. Între timp, cel puțin o aplicație utilă a fost creată de software gratuit, în mod specific, astfel încât să poată folosi Readline, iar acesta este un real câștig pentru comunitate.

Dezvoltatorii de software proprietar au avantajele oferite de bani; dezvoltatorii de software liber trebuie să-și aducă avantaje unii altora. Sper că într-o zi vom avea o colecție mare de biblioteci acoperite de GPL care nu au nicio paralelă disponibilă cu software-ul proprietar, oferind module utile care să servească drept blocuri de construcție în noul software liber și adăugând un avantaj major pentru dezvoltarea ulterioară a software-ului liber.

(1) Această licență se numește acum Licența publică generală minoră GNU, pentru a evita ideea că toate bibliotecile ar trebui să o folosească. Vedeți De ce nu ar trebui să utilizați GPL mai mic pentru următoarea bibliotecă pentru mai multe informații.

Scărpinat o mâncărime?

Eric Raymond spune că „Orice muncă bună de software începe prin a zgâria mâncărimea personală a dezvoltatorului”. Poate că asta se întâmplă uneori, dar multe piese esențiale de software GNU au fost dezvoltate pentru a avea un sistem de operare complet gratuit.

De exemplu, am dezvoltat biblioteca GNU C pentru că un sistem asemănător Unix are nevoie de o bibliotecă C, BASH pentru că un sistem asemănător Unix are nevoie de un shell și GNU tar pentru că un sistem asemănător Unix are nevoie de un program tar. Același lucru este valabil și pentru propriile mele programe — compilatorul GNU C, GNU Emacs, GDB și GNU Make.

Unele programe GNU au fost dezvoltate pentru a face față unor amenințări specifice la adresa libertății noastre. Astfel, am dezvoltat gzip pentru a înlocui programul Compress, care a fost pierdut pentru comunitate din cauza brevetelor LZW. Am găsit oameni care să dezvolte LessTif și, mai recent, am început GNOME și Harmony, pentru a rezolva problemele cauzate de anumite biblioteci proprietare (vezi mai jos). Dezvoltăm GNU Privacy Guard pentru a înlocui popularul software de criptare neliber, deoarece utilizatorii nu ar trebui să aleagă între confidențialitate și libertate.

Desigur, cei care scriau aceste programe au devenit interesați de lucrare și multe caracteristici le-au fost adăugate de către diverși oameni de dragul propriilor nevoi și interese. Dar nu de aceea există programele.

evoluții neașteptate

La începutul Proiectului GNU, mi-am imaginat că vom dezvolta întregul sistem GNU, apoi îl vom lansa ca întreg. Nu așa s-a întâmplat.

Deoarece fiecare componentă a sistemului GNU a fost implementată pe un sistem Unix, fiecare componentă putea rula pe sisteme Unix cu mult înainte de a exista un sistem GNU complet. Unele dintre aceste programe au devenit populare, iar utilizatorii au început să le extindă și să le porteze — la diferite versiuni incompatibile de Unix și, uneori, și la alte sisteme.

Procesul a făcut aceste programe mult mai puternice și a atras atât fonduri, cât și contribuitori la Proiectul GNU. Dar, probabil, a întârziat și finalizarea unui sistem minim de funcționare cu câțiva ani, deoarece dezvoltatorii GNU au avut timp pentru menținerea acestor porturi și adăugarea de caracteristici la componentele existente, mai degrabă decât să treacă la scrierea unei componente lipsă după alta.

GNU Hurd

Până în 1990, sistemul GNU era aproape complet; singura componentă majoră lipsă a fost nucleul. Am decis să implementăm nucleul nostru ca o colecție de procese de server care rulează pe Mach. Mach este un microkernel dezvoltat la Universitatea Carnegie Mellon și apoi la Universitatea din Utah; GNU Hurd este o colecție de servere (adică o turmă de GNU-uri) care rulează pe Mach și fac diferitele sarcini ale nucleului Unix. Începutul dezvoltării a fost amânat deoarece așteptam ca Mach să fie lansat ca software gratuit, așa cum fusese promis.

Un motiv pentru alegerea acestui design a fost acela de a evita ceea ce părea a fi cea mai grea parte a muncii: depanarea unui program kernel fără un depanator la nivel sursă cu care să o facă. Această parte a lucrării fusese deja făcută, în Mach, și ne așteptam să depanăm serverele Hurd ca programe de utilizator, cu GDB. Dar a durat mult face asta posibil, iar serverele multithreaded care își trimit mesaje unul altuia s-au dovedit a fi foarte greu de depanat. A face ca Hurd să funcționeze solid s-a extins de mulți ani.

Alix

Nucleul GNU nu trebuia inițial să fie numit Hurd. Numele său inițial era Alix – numit după femeia care era iubita mea la acea vreme. Ea, un administrator de sistem Unix, a subliniat cum numele ei s-ar potrivi unui model comun de denumire pentru versiunile de sistem Unix; în glumă, le-a spus prietenilor ei: „Cineva ar trebui să numească un sâmbure după mine”. Nu am spus nimic, dar am decis să o surprind cu un nucleu pe nume Alix.

Nu a ramas asa. Michael (acum Thomas) Bushnell, principalul dezvoltator al nucleului, a preferat numele Hurd și a redefinit Alix pentru a se referi la o anumită parte a nucleului - partea care ar capta apelurile de sistem și le-ar gestiona prin trimiterea de mesaje către serverele Hurd.

Mai târziu, eu și Alix ne-am despărțit și ea și-a schimbat numele; independent, designul Hurd a fost modificat astfel încât biblioteca C să trimită mesaje direct către servere, iar acest lucru a făcut ca componenta Alix să dispară din design.

Dar înainte să se întâmple aceste lucruri, o prietenă de-a ei a dat peste numele Alix în codul sursă Hurd și i-a menționat-o. Așa că a avut șansa de a găsi un nucleu care poartă numele ei.

Linux și GNU/Linux

GNU Hurd nu este potrivit pentru utilizare în producție și nu știm dacă va fi vreodată. Designul bazat pe capabilități are probleme care rezultă direct din flexibilitatea designului și nu este clar dacă există soluții.

Din fericire, un alt nucleu este disponibil. În 1991, Linus Torvalds a dezvoltat un nucleu compatibil Unix și l-a numit Linux. A fost proprietar la început, dar în 1992, el a făcut-o software gratuit; combinarea Linux cu sistemul GNU nu complet a rezultat într-un sistem de operare complet gratuit. (Combinarea lor a fost o muncă substanțială în sine, desigur.) Datorită Linuxului, putem rula de fapt o versiune a sistemului GNU astăzi.

Provocări în viitorul nostru

Avem capacitatea noastră dovedită de a dezvolta un spectru larg de software liber. Asta nu înseamnă că suntem invincibili și de neoprit. Mai multe provocări fac viitorul software-ului liber incert; îndeplinirea lor va necesita un efort constant și rezistență, uneori durand ani de zile. Va necesita genul de determinare pe care oamenii o manifestă atunci când își prețuiesc libertatea și nu vor lăsa pe nimeni să i-o ia.

Următoarele patru secțiuni discută aceste provocări.

hardware secret

Producătorii de hardware tind din ce în ce mai mult să păstreze secrete specificațiile hardware. Acest lucru face dificilă scrierea de drivere gratuite, astfel încât Linux și XFree86 să poată suporta hardware nou. Avem sisteme complete gratuite astăzi, dar nu le vom avea mâine dacă nu putem suporta computerele de mâine.

Există două moduri de a face față acestei probleme. Programatorii pot face inginerie inversă pentru a afla cum să suporte hardware-ul. Ceilalți dintre noi putem alege hardware-ul care este suportat de software liber; pe măsură ce numărul nostru crește, secretul specificațiilor va deveni o politică auto-înfrângătoare.

Ingineria inversă este o treabă mare; vom avea programatori cu suficientă hotărâre să o întreprindă? Da, dacă ne-am creat un sentiment puternic că software-ul liber este o chestiune de principiu, iar driverele care nu sunt libere sunt intolerabile. Și vor cheltui un număr mare dintre noi bani în plus, sau chiar puțin timp în plus, astfel încât să putem folosi drivere gratuite? Da, dacă hotărârea de a avea libertate este răspândită.

(Notă 2008: această problemă se extinde și la BIOS. Există un BIOS gratuit, LibreBoot (o distribuție a coreboot); problema este obținerea de specificații pentru mașini, astfel încât LibreBoot să le poată susține fără „blobs” non-libere.)

biblioteci non-libere

O bibliotecă non-free care rulează pe sisteme de operare libere acționează ca o capcană pentru dezvoltatorii de software liber. Caracteristicile atractive ale bibliotecii sunt momeala; dacă folosiți biblioteca, cădeți în capcană, deoarece programul dvs. nu poate face util parte dintr-un sistem de operare gratuit. (Strict vorbind, am putea include programul dvs., dar va câștiga" t alerga cu biblioteca lipsă.) Și mai rău, dacă un program care folosește biblioteca proprietară devine popular, poate atrage în capcană alți programatori nebănuiți.

Prima instanță a acestei probleme a fost trusa de instrumente Motif, încă din anii 80. Deși nu existau încă sisteme de operare gratuite, era clar ce problemă le va cauza Motif mai târziu. Proiectul GNU a răspuns în două moduri: cerând proiectelor individuale de software liber să sprijine widget-urile gratuite X Toolkit, precum și Motif și cerând cuiva să scrie un înlocuitor gratuit pentru Motif. Munca a durat mulți ani; LessTif, dezvoltat de Hungry Programers, a devenit suficient de puternic pentru a suporta majoritatea aplicațiilor Motif abia în 1997.

Între 1996 și 1998, o altă bibliotecă de instrumente GUI non-liberă, numită Qt, a fost folosită într-o colecție substanțială de software gratuit, desktop-ul KDE.

Sistemele gratuite GNU/Linux nu au putut folosi KDE, deoarece nu am putut folosi biblioteca. Cu toate acestea, unii distribuitori comerciali ai sistemelor GNU/Linux care nu au fost stricti în a rămâne cu software-ul liber au adăugat KDE sistemelor lor - producând un sistem cu mai multe capabilități, dar mai puțină libertate. Grupul KDE încuraja în mod activ mai mulți programatori să folosească Qt, iar milioane de noi „utilizatori de Linux” nu fuseseră niciodată expuși ideii că există o problemă în acest sens. Situația părea sumbră.

Comunitatea de software liber a răspuns la problemă în două moduri: GNOME și Harmony.

GNOME, GNU Network Object Model Environment, este proiectul desktop GNU, început în 1997 de Miguel de Icaza și dezvoltat cu sprijinul Red Hat Software, GNOME și-a propus să ofere facilități desktop similare, dar folosind exclusiv software gratuit. avantaje, de asemenea, cum ar fi suportarea unei varietăți de limbaje, nu doar C++.

Harmony este o bibliotecă de înlocuire compatibilă, concepută pentru a face posibilă rularea software-ului KDE fără a utiliza Qt.

În noiembrie 1998, dezvoltatorii Qt au anunțat o schimbare a licenței care, atunci când va fi realizată, ar trebui să facă Qt software gratuit. Nu există nicio modalitate de a fi sigur, dar cred că acest lucru s-a datorat parțial răspunsului ferm al comunității la problema pe care a pus-o Qt atunci când nu era liber. (Noua licență este incomodă și inechitabilă, așa că rămâne de dorit să se evite utilizarea Qt.)

Cum vom răspunde la următoarea bibliotecă tentantă non-liberă? Va înțelege întreaga comunitate nevoia de a rămâne departe de capcană? Sau mulți dintre noi vor renunța la libertate pentru comoditate și vor produce o problemă majoră? Viitorul nostru depinde de filozofia noastră.

Brevete de software

Cea mai mare amenințare cu care ne confruntăm vine din brevetele de software, care pot interzice algoritmii și funcțiile software-ului gratuit timp de până la douăzeci de ani. Brevetele algoritmului de compresie LZW au fost solicitate în 1983 și încă nu putem lansa software gratuit pentru a produce GIF-uri comprimate adecvate. În 1998, un program gratuit care producea audio comprimat MP3 a fost scos din distribuție sub amenințarea unui proces de brevet.

Există modalități de a face față brevetelor: putem căuta dovezi că un brevet este invalid și putem căuta modalități alternative de a face o treabă. Dar fiecare dintre aceste metode funcționează doar uneori; când ambele eșuează, un brevet poate forța tuturor software-ului gratuit să lipsească anumite caracteristici pe care utilizatorii le doresc. După o lungă așteptare, brevetele expiră (se așteaptă ca brevetele MP3 să fi expirat până în 2018), dar ce vom face până atunci?

Aceia dintre noi care prețuiesc software-ul liber de dragul libertății vor rămâne oricum cu software-ul liber. Vom reuși să ducem la bun sfârșit munca fără caracteristicile brevetate. Dar cei care prețuiesc software-ul gratuit pentru că se așteaptă ca acesta să fie superior din punct de vedere tehnic sunt probabil să-l numească un eșec atunci când un brevet îl reține.Astfel, deși este util să vorbim despre eficacitatea practică a modelului de dezvoltare „bazar” și despre fiabilitatea și puterea unor programe libere, nu trebuie să ne oprim aici.libertate și principii.

Documentatie gratuita

Cea mai mare deficiență a sistemelor noastre de operare gratuite nu se află în software - este lipsa unor manuale gratuite bune pe care le putem include în sistemele noastre. Documentația este o parte esențială a oricărui pachet software; atunci când un pachet de software gratuit important nu vine cu un manual gratuit bun, aceasta este o lacună majoră. Avem multe astfel de lacune astăzi.

Documentația gratuită, ca și software-ul liber, este o chestiune de libertate, nu de preț. Criteriul pentru un manual gratuit este aproape același ca și pentru software-ul liber: este vorba de a oferi tuturor utilizatorilor anumite libertăți. Redistribuirea (inclusiv vânzarea comercială) trebuie permisă, online și pe hârtie, astfel încât manualul să poată însoți fiecare copie a programului.

Permisiunea pentru modificare este de asemenea esențială. Ca regulă generală, nu cred că este esențial ca oamenii să aibă permisiunea de a modifica tot felul de articole si carti. De exemplu, nu cred că dvs. sau eu trebuie să acordăm permisiunea de a modifica articole ca acesta, care descriu acțiunile și opiniile noastre.

Dar există un motiv special pentru care libertatea de modificare este crucială pentru documentația pentru software liber. Când oamenii își exercită dreptul de a modifica software-ul și de a adăuga sau de a modifica caracteristicile acestuia, dacă sunt conștiincioși, vor schimba și manualul, astfel încât să poată furniza documentație precisă și utilizabilă cu programul modificat. Un manual negratuit, care nu permite programatorilor să fie conștiincioși și să termine treaba, nu satisface nevoile comunității noastre.

Unele tipuri de limite ale modului în care se efectuează modificările nu reprezintă nicio problemă. De exemplu, cerințele de păstrare a notificării de copyright a autorului original, a termenilor de distribuție sau a listei de autori sunt OK. De asemenea, nu este nicio problemă să ceri versiuni modificate care să includă notificarea că au fost modificate, chiar și pentru a avea secțiuni întregi care ar putea să nu să fie șterse sau modificate, atâta timp cât aceste secțiuni tratează subiecte netehnice. Cu alte cuvinte, nu împiedică comunitatea de software liber să folosească pe deplin manualul.

Cu toate acestea, trebuie să fie posibilă modificarea tuturor tehnic conținutul manualului, apoi distribuiți rezultatul în toate mediile obișnuite, prin toate canalele obișnuite; în caz contrar, restricțiile obstrucționează comunitatea, manualul nu este gratuit și avem nevoie de un alt manual.

Dezvoltatorii de software liber vor avea conștientizarea și determinarea de a produce un spectru complet de manuale gratuite? Încă o dată, viitorul nostru depinde de filozofie.

Trebuie să vorbim despre libertate

Se estimează astăzi că există zece milioane de utilizatori ai sistemelor GNU/Linux, cum ar fi Debian GNU/Linux și Red Hat „Linux”. Software-ul liber a dezvoltat atât de avantaje practice încât utilizatorii se îngrămădesc la el din motive pur practice.

Consecințele bune ale acestui lucru sunt evidente: mai mult interes pentru dezvoltarea de software liber, mai mulți clienți pentru afaceri cu software liber și mai multă capacitate de a încuraja companiile să dezvolte software comercial liber în loc de produse software proprietare.

Dar interesul pentru software crește mai repede decât conștientizarea filozofiei pe care se bazează, iar acest lucru duce la probleme. Capacitatea noastră de a face față provocărilor și amenințărilor de mai sus depinde de voința de a rămâne ferm pentru libertate. Pentru a ne asigura că comunitatea noastră are această voință, trebuie să răspândim ideea noilor utilizatori pe măsură ce intră în comunitate.

Dar nu reușim să facem acest lucru: eforturile de a atrage noi utilizatori în comunitatea noastră depășesc cu mult eforturile de a le învăța cunoștințele civice ale comunității noastre. Trebuie să le facem pe amândouă și trebuie să menținem cele două eforturi în echilibru.

"sursa deschisa"

Învățarea noilor utilizatori despre libertate a devenit mai dificilă în 1998, când o parte a comunității a decis să nu mai folosească termenul „software liber” și să spună în schimb „software open source”.

Unii care au favorizat acest termen au urmărit să evite confuzia „liber” cu „gratis” – un scop valabil. Alții, însă, și-au propus să lase deoparte spiritul de principiu care a motivat mișcarea software-ului liber și proiectul GNU și să atragă în schimb directori și utilizatori de afaceri, mulți dintre ei deținând o ideologie care plasează profitul mai presus de libertate, mai presus de comunitate, de mai sus. principii. Astfel, retorica „sursei deschise” se concentrează pe potențialul de a face software puternic de înaltă calitate, dar evită ideile de libertate, comunitate și principiu.

Revistele „Linux” sunt un exemplu clar în acest sens – sunt pline de reclame pentru software proprietar care funcționează cu GNU/Linux. Când apare următorul Motif sau Qt, aceste reviste îi vor avertiza pe programatori să stea departe de el sau vor difuza reclame pentru el?

sprijinul afacerilor poate contribui la comunitate în multe feluri; toate celelalte fiind egale, este util. dar câștigarea sprijinului lor vorbind și mai puțin despre libertate și principiu poate fi dezastruos; aceasta înrăutățește și mai mult dezechilibrul anterior dintre educație și educație civică.

„Free software” și „open source” descriu aceeași categorie de software, mai mult sau mai puțin, dar spun lucruri diferite despre software și despre valori. Proiectul GNU continuă să folosească termenul „software liber”, pentru a exprima ideea că libertatea, nu doar tehnologia, este importantă.

Încerca!

Aforismul lui Yoda („Nu există nicio „încercare”) sună frumos, dar nu funcționează pentru mine. Mi-am făcut cea mai mare parte a muncii în timp ce eram îngrijorat dacă aș putea face treaba și nu sunt sigur că ar fi suficient pentru a atinge obiectivul dacă aș face-o. Dar am încercat oricum, pentru că nu era nimeni în afară de mine între inamic și orașul meu. Surprinzându-mă, uneori am reușit.

Uneori am eșuat; unele dintre orașele mele au căzut. Apoi am găsit un alt oraș amenințat și m-am pregătit pentru o altă luptă. De-a lungul timpului, am învățat să caut amenințări și să mă pun între ele și orașul meu, chemând alți hackeri să vină să mi se alăture.

În ziua de azi, de multe ori „nu sunt singurul. Este o ușurare și o bucurie când văd un regiment de hackeri care săpă pentru a ține linia și îmi dau seama că acest oraș poate supraviețui – deocamdată. Dar pericolele sunt mai mari fiecare. anul, iar acum Microsoft a vizat în mod explicit comunitatea noastră. „Nu putem să luăm viitorul libertății de la sine înțeles. Nu o lua de la sine înțeles! Dacă vrei să-ți păstrezi libertatea, trebuie să fii pregătit să o aperi.

TH.arial (familie de fonturi: Arial, Serif;) P.topic (familia de fonturi: sans-serif;) A.plain (decor text: niciuna;) A.topic01 (culoare: #006890; familia de fonturi: sans-serif; text-decor: niciunul;) A.topic02 ( culoare: #099771; font-family: sans-serif; text-decoration: niciunul;) serif; text-decoration: niciunul;) A.topic04 ( culoare: #98650A; familia de fonturi: sans-serif; decor text: niciunul;) decor text: niciunul;) A.topic06 ( culoare: #099607; familia de fonturi: sans-serif; decor text: niciunul;) A .topic07 ( culoare: #9E1215; font-family: sans-serif; decor: niciunul;) A.topic08 ( culoare: #970941; font-family: sans-serif; text-decor: niciunul;) A.topic09 ( culoare : #950995; font-family: sans-serif; text-decoration: none;) A.topic010 (culoare: #390A98; font-family: sans-serif; text-decoration: none;) H1 ( font-family: sans -serif;) H2 ( familia de fonturi: sans-serif;) H3 ( familia de fonturi: sans-serif;) H4 ( familia de fonturi: sans-seri f;) H5 (familie de fonturi: sans-serif;) H6 (familie de fonturi: sans-serif;)

Ideologia software-ului liber și proiectul GNU: starea actuală și provocări imediate

S.D. Kuznetsov

Free Software Foundation (FSF) este un fenomen foarte interesant și în multe privințe excepțional în lumea programării de astăzi. Mulți programatori autohtoni au avut de-a face cu programe de la FSF (sistemul de programare GCC este deosebit de bine cunoscut), dar lipsa publicațiilor în limba rusă face dificilă înțelegerea ideologiei și obiectivelor FSF și, de asemenea, face imposibilă evaluarea existentei restante. Scopul acestui scurt articol este de a umple cel puțin parțial acest gol. Articolul se bazează în întregime pe materialele FSF și, prin urmare, în conformitate cu principiile generale ale acestei organizații, poate fi retipărit, copiat sau distribuit în mod liber în orice alt mod (cu păstrarea acestei note).

1. Ideologia FSF și obiectivele generale ale proiectului GNU

FSF este o organizație de programare fondată și condusă de Richard Stallman. În cadrul cel mai general, sarcina FSF este de a elimina restricțiile privind copierea, distribuirea, studierea și modificarea programelor de calculator. Pentru a atinge acest obiectiv comun, FSF încurajează dezvoltarea și utilizarea software-ului liber care vizează o gamă largă de aplicații.

În „Manifestul GNU”, scris încă din 1985, R. Stallman, ca idee principală care a dus la apariția FSF și a proiectului GNU, își propune respingerea proprietății software. Particularitățile relațiilor din comunitatea de programare îi fac adesea pe oameni să aleagă să urmeze sentimentul natural de prietenie și asistență reciprocă, sau supunere care interferează cu această lege a proprietății. Cu software-ul gratuit, această alegere oneroasă nu mai este necesară.

Crearea unui sistem integrat de software gratuit evită duplicarea muncii de către programatori (ceea ce este adesea necesară doar din cauza cuiva care deține software-ul). Distribuirea gratuită a codurilor sursă ale programelor facilitează întreținerea și adaptarea acestora la nevoile unui anumit utilizator (nu este necesar să se recurgă la serviciile doar companiilor care dețin licențe pentru codurile sursă). Există o oportunitate suplimentară și foarte importantă de a utiliza un software bun în scopuri educaționale.

Potrivit lui R. Stallman, la trecerea la software liber, programatorii nu vor muri de foame (deși, aparent, vor câștiga puțin mai puțin). Restricționarea copierii software nu este singura modalitate de a câștiga bani. Ideea principală a lui Stallman este că nu ar trebui să vinzi programe, ci munca unui programator. În special, sursa de venit poate fi întreținerea sistemelor software sau configurarea acestora pentru utilizare pe calculatoare noi și/sau în condiții noi, predarea etc.

„Manifestul” lui Stallman este scris foarte emoționant și, pe alocuri, este prea utopic. Cu toate acestea, se pare că ideile de software liber sunt din punct de vedere istoric apropiate de atitudinile tradiționale (cu excepția celor mai recenti ani) ale programatorilor sovietici. Poate că linia FSF este cea mai naturală cale de integrare profundă a comunităților interne și mondiale de programatori.

Mai precis, FSF dezvoltă programe în cadrul proiectului GNU (abrevierea GNU este extinsă recursiv - GNU "s Not Unix). Scopul proiectului GNU este de a crea un sistem software complet integrat care să fie compatibil cu capabilitățile mediul Unix OS (de regulă, capabilitățile programelor GNU sunt capacități mai largi ale analogilor mediului Unix).

Software-ul FSF este „gratuit” în două sensuri. În primul rând, orice program poate fi copiat și transferat în mod liber oricui. În al doilea rând, disponibilitatea codurilor sursă ale programelor oferă o oportunitate pentru studiul gratuit al programelor, îmbunătățirea acestora și distribuirea versiunilor modificate.

Așa cum drepturile companiilor de software obișnuite sunt protejate de marca lor de copyright (copyright), „libertatea” sistemelor software FSF este protejată de „copyleft” - o combinație de drepturi de autor și un document cu titlul „GNU General Public License” prezent. în toate textele FSF. Acest document precizează drepturile pe care le are orice proprietar actual al acestui text și imposibilitatea de a priva aceste drepturi de la orice alt subiect.

Activitatea principală a FSF este dezvoltarea de noi componente software libere în cadrul proiectului GNU. În cea mai mare parte, proiectul GNU se dezvoltă într-o manieră planificată (vezi, în special, secțiunea 3 a acestui articol), dar FSF acceptă și programe de distribuție gratuită dezvoltate de firme și persoane din proprie inițiativă. În plus, FSF produce și vinde benzi de software gratuit, pregătește, publică și distribuie manuale pentru diferite componente ale software-ului GNU și menține și distribuie un director de servicii, o listă de firme și persoane care oferă servicii plătite utilizatorilor de programe GNU și sisteme..

Baza financiară a FSF este vânzarea de benzi și documente, precum și sponsorizarea firmelor comerciale și a persoanelor fizice.

2. Software GNU disponibil

În prezent, nu toate componentele software-ului Proiectului GNU sunt gata. Cu toate acestea, FSF distribuie multe programe, dintre care unele sunt scrise direct de programatori FSF, iar unele sunt donate FSF pentru distribuire gratuită de către alte organizații și persoane fizice. Să enumerăm pe scurt produsele software distribuite de FSF acum.

Emacs este un editor extensibil, personalizabil pentru diferite tipuri de terminale și nevoi ale utilizatorilor. Extensibilitatea editorului se bazează pe utilizarea interpretului de limbaj Lisp încorporat în editor (un dialect al Common Lisp). Concomitent cu textele sursă ale editorului sunt distribuite manuale de utilizare a Emacs și un manual de referință pentru programarea în Lisp în mediul Emacs.

Bison este un înlocuitor pentru generatorul standard de analiză Yacc cu unele extensii. Ghidul este, de asemenea, distribuit.

Două implementări ale unui dialect simplificat al limbajului Lisp - Scheme: una de la MIT (scrisă în C), a doua de la Universitatea din Yale (scrisă în Scheme).

Utilitarul texi2roff este conceput pentru a converti fișiere text în format TeX în fișiere text în formatul standard roff pentru sistemul de operare Unix (documentația distribuită de FSF pe suportul mașinii este formatată în format TeX).

Utilități pentru împachetarea/despachetarea fișierelor text.

Programul de șah GNU.

GNU CC este un compilator C portabil de optimizare. Suportă pe deplin standardul ANSI C. Conține instrumente pentru a construi semi-automat generatoare de cod pentru computere noi. Distribuit cu manualul.

Un asamblator GAS portabil cu o singură trecere, care este aproape de două ori mai rapid decât un asamblator standard Unix.

Opțiuni de utilitate gratuite pentru lucrul cu fișiere obiect: ar, ld, nm, size, gprof, strip și ranlib. Un nou utilitar de încărcare dinamică, dld, este de asemenea distribuit.

GNU make include aproape toate utilitarele BSD, System V și POSIX make, precum și o serie de extensii. Distribuit cu manualul.

Depanatorul GDB poate fi folosit pentru a depana programe scrise în C, C++ și Fortran. Distribuit cu manualul.

BASH (Bourne Again SHell) - GNU Shell este compatibil cu comanda standard Unix sh și include o serie de extensii preluate din alte variante Shell.

GAWK este versiunea GNU a utilitarului standard Unix AWK.

flex este un înlocuitor GNU pentru lexul generator de analizor lexical standard. flex vă permite să obțineți scanere mai eficiente decât lex.

GNU tar este o extensie a utilitarului standard de arhivă tar.

O parte din fișierele de la BSD 4.3-tahoe care nu conțin cod sursă AT&T și au fost lansate pentru distribuție gratuită de către Universitatea din Berkeley. Aceste fișiere conțin, în special, textele sursă complete ale unor utilitare, jocuri, rutine de bibliotecă etc.

Sisteme care acceptă lucrul cu versiuni de software în proiecte software mari, RCS (Revision Control System) și CVS (Concurrent Version System).

Mai rapid decât versiunile gratuite standard ale utilitarelor grep și diff.

Un limbaj grafic aproape în întregime compatibil cu Postscript, Ghostscript.

Un program interactiv pentru desenarea expresiilor matematice și a datelor gnuplot.

Un set de instrumente pentru transformarea compilatorului GCC într-un compilator C++, inclusiv biblioteci de clase avansate.

Cantitate uriașă de programe X11, implementare MIT X-Windows (versiunea 11, ediția 4). Volumul articolului nu permite să discutăm mai detaliat asupra acestui lucru.

Practic, toate programele distribuite de FSF sunt concepute pentru a funcționa în mediul Unix și sunt deja folosite cu diverse versiuni ale acestui sistem, dar există versiuni ale unor programe pentru lucrul cu VMS și chiar MS-DOS.

3. Sarcinile imediate ale proiectului GNU

Lista de lucrări care este planificată să fie realizată ca parte a proiectului GNU este destul de extinsă. Să oferim doar o scurtă prezentare a direcțiilor principale.

3.1. Documentație

Este necesar să se pregătească o serie de manuale pentru programele care sunt deja gata sau aproape de finalizare: un manual de referință pentru limbajul C, o descriere a GCC, inclusiv un manual pentru determinarea mașinilor țintă, un manual pentru programarea sistemelor de aplicații în X- Mediul Windows, etc.

3.2. Proiecte legate de dezvoltarea nucleului Unix gratuit

FSF lucrează la construirea unui nucleu Unix bazat pe microkernel-ul gratuit Mach. Sarcinile imediate includ implementarea protocoalelor de rețea TCP/IP și a unui nou sistem de fișiere (se speră să profite de niște software standard care se așteaptă să fie declarat gratuit). Există și alte sarcini, inclusiv dezvoltarea unui depanator la distanță pentru nucleul sistemului de operare.

3.3. Dezvoltarea mediului Unix gratuit

Unele utilitare trebuie implementate (sdiff, mailx, join etc.). Este necesară dezvoltarea unui număr de biblioteci. Printre sarcini se numără dezvoltarea unei interfețe terminale ușor de utilizat.

3.4. Extensii la software-ul GNU existent

Practic, Emacs, GCC și GDB au nevoie de lucru.

În ceea ce privește Emacs, sunt necesare două domenii de îmbunătățire: extinderea Emacs pentru a-i permite să fie folosit ca sistem de publicare și internaționalizarea completă a Emacs, astfel încât să poată fi utilizat orice script național.

GCC trebuie să fie finalizat pentru a remedia comentariile acumulate și a implementa sugestiile existente (lista de comentarii și sugestii este distribuită împreună cu GCC).

GDB trebuie îmbunătățit în ceea ce privește introducerea unui interpret C în depanator; De asemenea, sunt necesare unele ajustări pentru a putea folosi GDB la depanarea programelor scrise în alte limbi decât C.

3.5. Compilatoare noi

Este necesară implementarea compilatoarelor pentru o serie de limbaje de programare (Algol, Algol-68, PL/1, Ada etc.) cu acces la generatorul de cod GCC. (O astfel de muncă este deja în curs pentru Fortran, Pascal și Modula-2.)

3.5. O mulțime de alte proiecte

Lista actuală de sarcini imediate a proiectului GNU include o mare varietate de alte lucrări. Sa mentionam dorinta de a avea analogi gratuiti ai sistemelor Page Maker, Ventura Publisher, dbase2 sau dbase3 etc. Necesită un număr de programe X-Windows. etc. etc.

4. Cum să obțineți mai multe informații și/sau programe GNU

Pentru a comunica cu FSF în mediul casnic actual, cel mai bine este să folosiți e-mailul. Persoana de contact a FSF pentru persoanele care doresc să se alăture Proiectului GNU este Walter Poxon. Adresa lui de e-mail: De asemenea, puteți obține informații despre regulile de primire a benzilor cu software GNU de la FSF. Din păcate, această cale naturală nu este prea potrivită realității sovietice actuale (plata casetelor, deși simbolică, este încă în valută).

La noi, de fapt, există toate aceste casete. Orice deținător al acestora, în conformitate cu regulile jocului FSF, este obligat să faciliteze distribuirea lor ulterioară. Din păcate, aceasta este o muncă tehnică destul de mare. Asociația Sovietică a Utilizatorilor UNIX (SUUG) intenționează să preia, de îndată ce condițiile tehnice o permit, distribuția gratuită de software gratuit pentru membrii săi și copierea plătită a benzilor pentru toată lumea (acesta este o chestiune a lunilor următoare). Toți membrii SUUG vor primi informații relevante, informațiile actuale pot fi obținute la adresa prin e-mail sau la adresa obișnuită SUUG: 125502, Moscova, st. Lavochkina, 19 ani.

Literatură.

  1. Richard M. Stallman. Manifestul GNU.
  2. Licență publică generală GNU // Free Software Foundation, 1989.
  3. Buletinul GNU // Free Software Foundation, 1991.
  4. GNU Task List (fișier actualizat periodic disponibil prin e-mail; ne-am bazat pe versiunea din 24 iulie 1991)