This translation may not reflect the changes made since 2005-06-19 in the English original.

Please see the Translations README for information on maintaining translations of this article.

Linux și sistemul GNU

de Richard Stallman

Dacă doriți să aflați mai multe despre această chestiune, puteți citi pagina noastră de „întrebări puse frecvent”, GNU/Linux FAQ, și De ce GNU/Linux?

Multi utilizatori de computere folosesc o versiune modificată a sistemului GNU în fiecare zi, fără să o știe. Printr-o întorsătură ciudată a evenimentelor, versiunea de GNU care este folosită pe scară largă astăzi este mai ales cunoscută ca „Linux” și mulți utilizatori nu sunt conștienți de amploarea conexiunilor sale cu Proiectul GNU.

Există într-adevăr un Linux; iar acești oameni îl folosesc, dar el nu este sistemul de operare. Linux este un kernel: programul din sistem care alocă resursele computerului altor programe care sunt executate. Kernelul este o parte esențială a unui sistem de operare, dar un kernel de unul singur nu se poate folosi; el poate funcționa numai ca parte a unui întreg sistem de operare. Linux este în mod uzual folosit în combinație cu sistemul de operare GNU: sistemul este în fapt GNU, cu Linux funcționând ca și kernelul său.

Mulți utilizatori nu sunt conștienți de distincția dintre kernel, care este Linux, și întregul sistem, pe care îl numesc de asemenea „Linux”. Folosirea ambiguă a numelui nu promovează înțelegerea conceptelor. Acești utilizatori adesea cred că Linus Torvalds a dezvoltat întregul sistem de operare în 1991, cu un pic de ajutor.

Programatorii în general știu că Linux este un kernel. Dar întrucât ei au auzit de asemenea întregul sistem numit „Linux”, ei adeseori imaginează o istorie care ar justifica numirea întregului sistem după kernel. De exemplu mulți cred că odată ce Linus Torvalds a terminat de scris Linux, kernelul, utilizatorii săi au căutat alt software liber disponibil cu care acesta să funcționeze, și au descoperit că (din pură întâmplare) aproape tot ceea ce era necesar pentru a face un sistem similar Unix-ului era deja disponibil.

Ceea ce au găsit ei nu era un accident — era sistemul GNU. Software-ul liber disponibil a întregit un sistem complet pentru că Proiectul GNU a lucrat către acest obiectiv încă din 1984. Manifestul GNU a formulat ca scop dezvoltarea unui sistem liber similar Unix-ului, numit GNU. Anunțul inițial al Proiectului GNU schițează de asemenea unele dintre planurile inițiale ale sistemului GNU. Până în momentul când Linux a fost scris, sistemul era aproape terminat.

Cele mai multe dintre proiectele de software liber au ca scop dezvoltarea unui anumit program pentru a rezolva o anumită sarcină. De exemplu Linus Torvalds a decis să scrie un kernel similar Unix-ului (Linux); Donald Knuth a decis să scrie un program pentru formatarea textelor (TeX); Bob Scheifler a decis să scrie un sistem de ferestre (X Window System). Este natural să măsurăm contribuția acestui tip de proiecte prin programele specifice care au rezultat din proiect.

Dacă am încerca să măsurăm contribuția Proiectului GNU în acest fel, ce putem concluziona? Un distribuitor de CD-ROM-uri a constatat că în „distribuția Linux” pe care o generau software-ul GNU constituia cea mai mare parte din conținut, aproximativ 28% din totalul codului sursă, iar aceasta includea unele componente esențiale majore, fără de care sistemul nu ar exista. Linux în sine era aproximativ 3%. Așa că dacă ar fi să se aleagă un nume pentru sistem pe baza celor care au scris programele din sistem, cea mai potrivită alegere individuală ar fi „GNU”.

Dar noi nu credem că aceasta este metoda corectă de soluționare a problemei. Proiectul GNU nu a fost și nu este un proiect pentru dezvoltarea de pachete software specifice. Nu a fost un proiect pentru dezvoltarea unui compilator C, dar l-am creat. Nu a fost un proiect pentru dezvoltarea unui editor de texte, dar l-am creat. Scopul Proiectului GNU a fost să dezvolte un sistem liber complet, similar Unix-ului: GNU.

Mulți oameni au făcut contribuții majore la software-ul liber din sistem și ei toți merită să le acordăm credit. Dar motivul pentru care el este un sistem integrat — și nu doar o colecție de programe utilitare — este pentru că Proiectul GNU a fost menit să creeze unul. Noi am făcut o listă de programe necesare pentru a forma un sistem liber complet iar apoi sistematic am găsit, scris, sau găsit oameni să scrie programele de pe listă. Noi am scris componentele esențiale dar mai puțin senzaționale (1) cum ar fi asembler-ul și linker-ul, pentru că nu poți avea un sistem fără ele. Unele componente ale sistemului nostru, uneltele pentru programare, au devenit populare pe cont propriu printre programatori, dar noi am scris multe componente care nu sunt unelte (2). Am dezvoltat chiar și un joc de șah, GNU Chess (Șah), pentru că un sistem complet are nevoie și de jocuri.

Până pe la începutul anilor 90 noi am pus laolaltă întregul sistem, cu excepția kernelului. Lucram de asemenea la kernel, numit GNU Hurd, care rulează bazat pe Mach. Dezvoltarea acestui kernel a fost mult mai dificilă decât ne așteptam; GNU Hurd a început să funcționeze corespunzător în 2001. Noi ne pregătim acum să distribuim actualul sistem GNU, cu kernelul GNU Hurd.

Din fericire d-voastră nu a trebuit să așteptați pentru Hurd, pentru că Linux a fost disponibil. Când Linus Torvalds a scris Linux el a umplut ultimul gol major în sistem. Oamenii au putut atunci pune laolaltă Linux împreună cu sistemul GNU pentru a obține un sistem liber complet: o versiune a sistemului GNU bazat pe Linux: pe scurt sistemul GNU/Linux. Notele de distribuire ale Linux-ului au recunoscut că Linux era un kernel, folosit cu părți din GNU: „Multe dintre uneltele folosite cu Linux sunt software GNU și sunt sub copyleft GNU. Aceste unelte nu sunt în distribuție — cereți-mi mie (sau proiectului GNU) informații suplimentare.”

A le pune laolaltă sună simplu, dar nu a fost o treabă elementară. Unele componente GNU (3) au avut nevoie de schimbări substațiale pentru a funcționa cu Linux. Integrarea unui sistem complet într-o distribuție care să meargă ca „scoasă din cutie” a fost de asemenea un efort major. Aceasta a necesitat abordarea problemelor de instalare și boot-are a sistemului, o problemă pe care noi n-am tratat-o pentru că noi nu atinsesem încă acel nivel. Oamenii care au dezvoltat diversele distribuții ale sistemului au făcut o contribuție substanțială.

Noi folosim astăzi sisteme GNU bazate pe Linux pentru cea mai mare parte a muncii noastre și sperăm că și d-voastră faceți la fel. Dar vă rugăm nu încurcați publicul folosind numele „Linux” în mod ambiguu. Linux este kernelul, unul din componentele majore esențiale ale sistemului. Sistemul ca un întreg este mai mult sau mai puțin sistemul GNU, cu Linux adăugat. Când vorbiți despre această combinație, vă rugăm numiți-o „GNU/Linux”.

Dacă doriți să creeați o legătură despre „GNU/Linux” pentru viitoare referințe, această pagină și http://www.gnu.org/gnu/the-gnu-project.html sunt alegeri bune. Dacă vă referiți la Linux, kernelul, și doriți să adăugați o legătură pentru viitoare referințe, http://foldoc.org/linux este un URL bun de folosit.

Post-scriptum

Pe lângă GNU, un alt proiect a dezvoltat în mod independent un sistem de operare similar Unix-ului. Acest sistem este cunoscut ca BSD, și a fost dezvoltat la UC Berkeley. Acesta nu a fost liber în anii 80, dar a devenit liber la începutul anilor 90. Un sistem de operare liber care există astăzi este aproape sigur fie o variantă a sistemului GNU, fie un fel de sistem BSD.

Oamenii întreabă uneori dacă BSD este de asemenea o versiune de GNU, cum este GNU/Linux. Programatorii BSD au fost inspirați să facă codul lor software liber după exemplul Proiectului GNU iar apeluri explicite din partea activiștilor GNU a ajutat la convingerea lor, dar codul BSD are foarte puțin în comun cu GNU. Sisteme BSD folosesc azi unele programe GNU, așa cum și GNU și variantele sale folosesc unele programe BSD; totuși, luate pe ansamblu, ele sunt două sisteme diferite care au evoluat separat. Programatorii BSD nu au scris un kernel și nu l-au adăugat sistemului GNU, așa că un nume ca GNU/BSD n-ar fi potrivit situației.

Note

  1. Aceste componente mai puțin senzaționale dar esențiale includ asambler-ul GNU (GAS) și linker-ul (GLD), amândouă sunt acum parte a pachetului GNU Binutils, GNU tar, și altele.
  2. De exemplu, Bourne Again SHell-ul (BASH), interpretorul PostScript Ghostscript, și biblioteca GNU C nu sunt unelte de programare. Așa cum nu sunt nici GNUCash, GNOME, și GNU Chess.
  3. De exemplu, biblioteca GNU C.