De atunci, am devenit conștienți de unele neînțelegeri frecvente, pe care folosirea unei anume terminologii le poate evita. Notele de subsol, adăugate Manifestului începând cu anul 1993, ajută la clarificarea acestor aspecte.
Proiectul GNU (The GNU Project) este parte a Mișcării pentru Programe Libere (
Free Software Movement - n. t.), o campanie pentru
libertatea utilizatorilor de programe. Constituie o greșeală să asociați GNU cu termenul
„open-source” — acest termen a fost inventat în 1998 de către oameni care sunt în dezacord cu valorile etice ale Mișcării. Ei îl folosesc pentru a promova o
viziune amorală asupra aceluiași domeniu.
Ce este GNU? Gnu nu este Unix!
GNU, care înseamnă
„Gnu nu este Unix”, este numele unui sistem de programe complet compatibil cu Unix, pe care îl scriu ca să îl ofer liber[1] oricui are nevoie să-l folosească. Mă ajută alți câțiva voluntari. Contribuții constând în timp, bani, programe și echipamente ne sunt foarte necesare.
Până acum avem editorul Emacs, care oferă limbajul Lisp pentru scrierea comenzilor sale, un corector de cod-sursă (
debugger), un generator de analizoare compatibile cu
yacc, un editor de legături și aproximativ 35 de programe utilitare. Un
shell (interpretor de comenzi) este aproape gata. Un compilator C nou, portabil și capabil de optimizări, s-a compilat singur și ar putea fi lansat anul acesta. Există un nucleu (
kernel - n. t.) de bază, dar sunt necesare mai multe funcții pentru a putea simula funcționarea Unix-ului. Când nucleul și compilatorul vor fi gata, va deveni posibil să se distribuie celor interesați un sistem GNU potrivit pentru dezvoltarea de programe. Vom folosi
TeX ca instrument pentru prelucrarea de text, dar se lucrează și la o variantă de
nroff. De asemenea, vom folosi sistemul
X Window, care este liber și portabil. După aceea, vom adăuga un
Common Lisp portabil, un joc Empire, un editor de tabele de calcul și sute de alte lucruri, plus documentație în format electronic
(online - în momentul publicării acestui text, „documentație online” nu putea însemna documentație disponibilă pe World Wide Web, fiindcă acesta nu luase naștere încă, ci documentație în format electronic, disponibilă pentru a putea fi citită pe calculatorul local sau pentru a putea fi copiată prin rețea - n. t.). Sperăm să putem oferi, în cele din urmă, orice componentă utilă care, în mod normal, este livrată împreună cu Unix - și chiar mai mult decât atât.
GNU va fi capabil să ruleze programe Unix, dar nu va fi identic cu Unix. Vom face toate îmbunătățirile pe care le găsim convenabile, pe baza experienței noastre cu alte sisteme de operare. În particular, plănuim să avem nume mai lungi de fișiere, cu număr de versiune, un sistem de fișiere garantat împotriva distrugerii accidentale, probabil o funcție de completare a numelor de fișier, lucru cu afișaje independent de tipul terminalului și, la urmă, poate și un sistem de ferestre bazat pe Lisp, în care mai multe programe Lisp și Unix să poată partaja afișajul. Atât C cât și Lisp vor fi disponibile ca limbaje pentru programarea sistemului. Vom încerca să oferim UUCP, sistemul Chaosnet de la MIT și Internet ca protocoale pentru comunicații.
La început, GNU este destinat să ruleze pe mașini din clasa 68000/16000 cu memorie virtuală, ele fiind cele pe care scopul e cel mai simplu de atins. Efortul suplimentar pentru a-l face să funcționeze pe mașini mai puțin puternice va fi lăsat în seama celor care vor dori să-l folosească pe astfel de calculatoare.
Pentru a evita o încurcătură de nedescris, vă rugăm să pronunțați
g-ul din numele „GNU” când vine vorba de numele proiectului.
De ce trebuie să scriu GNU
Consider că regula de aur e următoarea: dacă un program îmi place, am obligația să îl împart și cu alții cărora le place. Vânzătorii de programe vor să dezbine utilizatorii și să-i cucerească, făcându-l pe fiecare să accepte că nu trebuie să împartă nimic cu alții. Eu refuz să încalc, în felul ăsta, solidaritatea cu ceilalți utilizatori. Nu pot semna, cu bună credință, un acord de confidențialitate, sau unul pentru licența programului. Ani de zile am militat, în interiorul Laboratorului de Inteligență Artificială, ca să nu se dea curs acestor tendințe și altor lucruri neplăcute, dar până la urmă s-a depășit măsura: nu pot rămâne într-o instituție unde astfel de lucruri se fac în numele meu, împotriva voinței mele.
Așa că, pentru a putea continua să utilizez calculatoarele fără să-mi pătez obrazul, am hotărât să acumulez o cantitate suficientă de programe libere, astfel încât să pot supraviețui fără nici un program neliber. Am demisionat de la Laboratorul de Inteligență Artificială ca să privez MIT de orice argument juridic cu care să mă împiedice să ofer oricui sistemul GNU.[2]
De ce GNU va fi compatibil cu Unix
Pentru mine, Unix nu reprezintă sistemul ideal, dar nu e groaznic. Trăsăturile generale ale Unix-ului par să fie bune și cred că pot completa ce îi lipsește fără să le afectez. Iar pentru adoptare, compatibilitatea cu Unix ar conveni multora.
Cum va fi disponibil GNU
GNU nu se află în domeniul public. Oricine va avea permisiunea să modifice și să redistribuie GNU, dar nici un distribuitor nu va putea să restricționeze răspândirea lui ulterioară. Altfel spus, modificările proprietare nu vor fi admise. Vreau să mă asigur că toate versiunile de GNU vor rămâne libere.
De ce mulți alți programatori doresc să ajute
Am găsit mulți alți programatori care sunt încântați de GNU și vor să dea o mână de ajutor.
Multor programatori le displace comercializarea programelor de sistem. Poate că îi ajută să câștige mai mulți bani, dar, în general, le impune să fie în conflict cu alți programatori, în loc să se simtă camarazi. Gestul fundamental de prietenie între programatori este punerea în comun a programelor; în esență, aranjamentele comerciale utilizate acum îi împiedică să-i trateze pe alții ca prieteni. Cumpărătorul de programe are de ales între prietenie și a respecta legea. Natural, mulți hotărăsc că prietenia este mai importantă. Dar cei care pun legea pe primul loc nu se simt confortabil în nici una dintre variante. Ei devin cinici și se gândesc că programarea reprezintă doar un mod de a face bani.
Dezvoltând și utilizând GNU în loc de programe proprietare, putem fi ospitalieri cu oricine fără a încălca legea. În plus, GNU servește ca exemplu care să-i inspire pe alții și ca drapel în jurul căruia să se adune cei care vor să împartă, alături de noi. Lucrul ăsta ne poate da un sentiment de armonie imposibil de atins dacă am utiliza programe nelibere. Pentru circa jumătate dintre programatorii cu care țin legătura, aceasta este o bucurie importantă, pe care banii nu o pot înlocui.
Cum puteți contribui
(În zilele noastre, pentru a identifica sarcini de programare la care să lucrați, vedeți în lista de proiecte de mare prioritate și în cea de proiecte pentru care GNU are nevoie de ajutor, lista generală a pachetelor de programe GNU. Pentru ate moduri în care puteți ajuta, vedeți ghidul pentru a oferi ajutor sistemului de operare GNU.)
Solicit fabricanților de calculatoare donații constând în mașini de calcul și bani. Solicit persoanelor fizice donații în programe și muncă.
O consecință la care vă puteți aștepta dacă donați calculatoare este aceea că sistemul GNU va rula pe ele mai devreme. Sistemele de calcul trebuie să fie complete, gata de utilizare, agrementate pentru folosirea într-o zonă rezidențială; nu trebuie să necesite metode sofisticate de răcire sau de alimentare electrică.
Am cunoscut foarte mulți programatori dispuși să contribuie cu muncă ocazională la GNU. Pentru majoritatea proiectelor, o asemenea muncă distribuită ar fi foarte greu de coordonat, iar părțile de program scrise independent nu ar funcționa împreună. Dar, pentru înlocuirea Unix, ca sarcină anume, problema nu există. Un sistem Unix complet conține sute de programe utilitare, fiecare având documentație separată. Majoritatea specificațiilor interfețelor sunt impuse de necesitatea compatibilității cu Unix. Dacă fiecare persoană contribuitoare poate scrie câte un program compatibil, care să înlocuiască un utilitar Unix, atunci programele vor funcționa corespunzător când sunt puse împreună. Chiar dacă acceptăm că Murphy o să dea naștere câtorva probleme neașteptate, asamblarea componentelor acestea constituie o sarcină rezolvabilă (nucleul necesită o comunicare mai strânsă și va fi scris de un grup mai mic de persoane, bine integrat).
Dacă voi obține donații în bani, poate voi putea angaja câțiva oameni care să lucreze cu program normal sau redus. După standardele programatorilor, salariile nu vor fi mari, dar caut persoane pentru care spiritul de construire a unei comunități să fie la fel de important ca și dorința de a face bani. Privesc asta ca pe o cale de a permite unor oameni dedicați să-și consacre întreaga energie lucrului la GNU, scutindu-i de necesitatea de a-și câștiga traiul prin alte metode.
De ce vor avea de câștigat toți utilizatorii de calculatoare
Odată ce GNU este scris, va deveni posibil pentru oricine să obțină în mod liber programe de sistem de bună calitate, exact ca pe aer.[3]
Asta înseamnă mult mai mult decât a scuti fiecare utilizator de plata unei licențe Unix. Înseamnă că cea mai mare parte a efortului de programare ce se risipește pentru scrierea programelor de sistem duplicate poate fi evitat. În loc, efortul poate fi îndreptat către producerea de programe de vârf.
Codul-sursă complet al sistemului va fi disponibil oricui. În consecință, un utilizator care va avea nevoie să îi aducă o modificare va putea s-o opereze el însuși sau să angajeze un programator sau o firmă să o facă. Utilizatorii nu se vor mai afla la mila unei companii care, deținând monopolul surselor, este și singura care le poate modifica.
Școlile vor putea oferi un mediu mult mai educativ, încurajându-și elevii să studieze și să îmbunătățească codul sistemului. Laboratorul de calculatoare de la Harvard obișnuia să impună o regulă conform căreia nici un program nu putea fi instalat pe sistem dacă sursele sale nu erau disponibile publicului; ei au respectat într-adevăr această politică, refuzând să instaleze anumite programe. Eu m-am simțit foarte inspirat de lucrul ăsta.
În fine, va fi eliminată bătaia de cap necesară pentru a vă lămuri cine anume deține programele de sistem și ce vă este sau nu vă este îngăduit să faceți cu ele.
Aranjamentele necesare pentru a-i determina pe oameni să plătească pentru folosirea unui anumit program, inclusiv cel de licențiere a copiilor, induc întotdeauna un cost social uriaș, din cauza mecanismelor greoaie necesare pentru a determina cât (adică, pentru care programe anume) trebuie să plătească fiecare. Numai un stat polițienesc poate obliga pe toată lumea să utilizeze mecanismele amintite. Imaginați-vă o stație spațială la bordul căreia aerul ar trebui fabricat cu mari costuri: a factura un anumit număr de litri de aer fiecărei persoane care respiră poate fi o metodă onestă, dar purtarea unei măști de gaze cu contor, zi și noapte, devine intolerabilă chiar și pentru unul care și-ar permite să plătească factura. Iar amplasarea de camere TV peste tot, pentru a detecta dacă cineva își scoate masca, ar fi scandaloasă. Este mai bine să finanțăm instalația de producere a aerului dintr-o taxă fixă pe cap de locuitor și să azvârlim măștile.
Pentru un programator, a copia toate părțile unui program este la fel de natural ca și a respira - și la fel de productiv. De aceea, trebuie să fie și la fel de liber.