Copyright,
licențe, patente și secrete comerciale
Mecanismele
juridice cu care societatea protejează software-ul sunt
cu precădere adaptate de la mecanismele dezvoltate pentru a proteja
alte creații ale spiritului uman (prin opoziție cu bunurile
materiale). De aceea vom arunca întâi o privire
asupra acestor
mecanisme, ca să înțelegem mai bine unele dintre dilemele
contemporane legate de software.
Patente
Patentul
este un contract între societate și un inventator privitor
la o invenție a acestuia:
- Din partea sa,
inventatorul dă societății toate informațiile
despre o invenție a sa, suficient de amănunțite
încât societatea
să poată folosi invenția într-o utilizare concretă.
- În schimb
societatea conferă inventatorului un monopol asupra
utilizării ideii: nimeni altcineva decât inventatorul nu are
dreptul
să aplice ideea pentru o anumită perioadă de timp;
Ideea
este destul de naturală: dacă inventatorul nu ar fi protejat
în vreun fel, ar putea veni un altcineva mai puternic, care
să
beneficieze de truda inventatorului, să aplice invenția și să
strângă toți banii. Inventatorul are prin patent o perioadă
de
autonomie în care să-și fructifice ideea, fără frica unei
astfel
de concurențe.
Societatea
este câștigată, la rândul ei, în două
forme:
- După 17 ani invenția
poate fi folosită de către oricine;
- Ideea este imediat
vizibilă, putând deveni un punct de plecare
pentru alte idei mai avansate.
Inventatorul
are toate drepturile asupra ideii sale pentru perioada
acoperită de patent; el poate decide să nu facă absolut nimic cu
ideea, să încerce să o fructifice de unul singur, sau să facă
o
asociere cu alți indivizi prin care să o exploateze. De pildă
poate face un contract cu o firmă, prin care-și vinde
drepturile exclusive asupra ideii.
Societatea,
prin biroul de patente, oferă inventatorului care și-a
descris ideea o dovadă de întâietate. Dacă cineva
încalcă
drepturile inventatorului (de pildă o firmă fabrică niște aparate
bazate pe ideea patentată), inventatorul poate da în judecată
firma, iar tribunalul îi poate acorda despăgubiri
proporționale cu
daunele suferite de lipsa exclusivității.
Primul
individ care depune o înscriere la patent obține dreptul
exclusiv de folosire, chiar dacă altcineva inventează același
lucru, fără a avea cunoștință de invenția anterioară.
Nu
orice lucru se poate patenta. De exemplu în Statele Unite nu
se
pot patenta idei care erau în circulație cu mai mult de un an
de la
depunerea înscrierii la patent. Nu mă pot deci trezi
mâine și
patenta motorul Carnot; e prea târziu. Nu se pot de asemenea
patenta
formulele matematice sau procesele cognitive.
Copyright
Copyright-ul
este o altă formă de protecție a unei creații
intelectuale. Copyright, literal ``drept de copiere'', stabilește
că numai autorul unei creații are dreptul să multiplice și
distribuie acea creație. Drepturile acestea, în sistemul
american,
durează până la moartea autorului plus 50 de ani.
Spre
deosebire de patente, copyright-ul nu protejează o idee,
ci modul de exprimare al ideii. Cu alte cuvinte
nu pot proteja
la copiere idila între Romeo și Julieta, dar Shakespeare ar
fi putut
proteja piesa cu pricina. Scenariul unui film despre Romeo și
Julieta este o cu totul altă creație decât piesa, și autorul
scenariului are drepturi exclusive de copiere asupra sa.
Iarăși,
spre deosebire de patente, copyright-ul apare automat. De
îndată ce am fixat într-un mediu permanent expresia
mea, am drept
de copyright asupra ei, fie că este vorba de un text literar, un
manual școlar, o simfonie sau o pictură.
Drept
de copiere exclusiv am asupra creațiilor mele; problema este
cum pot să dovedesc în fața instanței acest lucru, la nevoie,
dacă altcineva îmi ia manuscrisele, le multiplică și le
vinde?
Pentru a beneficia de astfel de protecție pot să-mi înregistrez
creația la un organism oficial; ștampila lor este
dovada de care am nevoie.
Faptul
că un obiect este protejat de copyright este indicat de obicei
de semnul (C) (c într-un cerculeț). Pentru
înregistrările
muzicale avem de-a face cu fonograme în loc de litere
(phonograms),
așa că semnul folosit este (P).
Copyright-ul
este mai puțin restrictiv decât patentele: alți
indivizi au dreptul să folosească fragmente din creația mea dacă o
fac în scopuri dezinteresate și nu îmi cauzează
daune. Aceasta
este așa numita clauză fair use.
De
exemplu un autor poate fi citat, fără ca prin asta să se
încalce copyright-ul. Care este limita între ``fair
use'' și
încalcare, tribunalele stabilesc de la caz la caz,
în funcție de
circumstanțe.
Ca
și în cazul patentelor, un autor poate decide să
vândă altora
o parte din drepturile sale exclusive asupra obiectului în
schimbul
unor compensații.
Anumite
lucruri nu pot fi protejate de copyright; în pofida
aparențelor, titlurile (cărților, filmelor, produselor) nu
pot intra în această categorie. Sloganuri, obiecte de uz
general
(forma lor mai exact), cărțile de telefon nu pot fi protejate de
copyright. Obiectele protejate trebuie să fie într-o oarecare
măsură originale. (Un slogan sau un simbol pot fi protejate
însă
printr-o marcă comercială, dar asta e altă
poveste care ne
interesează mai puțin.)
Domeniul public
Ce
se întâmplă după expirarea perioadei de validitate
a unui
patent sau copyright? Bunurile protejate intră în domeniul
public: oricine are voie să le folosească fără a fi
îndatorat
cuiva. Sunt bunuri ale întregii societăți.
Astfel,
piesele lui Shakespeare pot fi jucate pe scenă de către
oricine, fără ca prin aceasta să fie încălcate drepturile
sale de
copyright.
Licențe
Licența
este un contract prin care posesorul unor drepturi exclusive
vinde o parte din aceste drepturi altcuiva. Cele două părți
în
mod normal semnează un contract, prin care se specifică
întinderea
transferului (de exemplu un autor poate licenția o carte pentru a se
face o piesă după ea, dar nu pentru un film).
Secrete comerciale
Când
ai pus mâna pe o găselniță cu potențial ai două
posibilități:
- O patentezi și ești
apărat de lege în monopolul tău;
- Ții ideea secretă și o
``storci'' cât poți. Ideea devine
atunci un secret comercial.
Secretele
comerciale au avantaje și dezavantaje față de patente.
Un avantaj este că atâta vreme cât reușești să
păstrezi
secretul, beneficiezi singur de el, pe când un patent expiră
după o
vreme; de pildă compoziția băuturii ``Coca-Cola'' este un secret
comercial păzit cu grijă de mai bine de un secol.
Un
dezavantaj este că oricine poate -- teoretic -- avea aceeași
idee și o poate patenta. Atunci adio avantaje, ba chiar dimpotrivă.
Legea
apără într-o oarecare măsură secretele comerciale. Anumite
activități, ca spionajul, sunt ilegale tocmai din astfel de motive.
Companiile care au secrete comerciale se apără de proprii lor
angajați folosind contracte speciale numite Non-Disclosure
Agreements, NDA: înțelegeri de ne-divulgare.
Practic angajatul
semnează cu compania un act cum că nu va divulga nimănui
informațiile secrete, etc., iar compania îl poate da
în judecată
pentru încălcarea contractului dacă o face. (Pe de altă parte
odată secretul divulgat e bun dus; ``trădătorul'' va plăti atunci
daune.)
Situația în
software
După
atâtea ocolișuri ``legale'' să vedem care este situația
în
domeniul care ne interesează -- în software.
Ei
bine, toate ingredientele de mai sus apar și în software.
Astfel:
- Algoritmii se pot
patenta (dar nu programele!); un exemplu este
algoritmul de criptografie RSA, care este patentat de autorii săi; ei
sunt singurii care au dreptul să-l implementeze (patentul va expira
în curând);
- Programele sunt
protejate prin copyright;
- Multe firme decid să
facă tehnologiile folosite secrete
comerciale (atât programele cât și algoritmii);
astfel de firme
semnează cu angajații lor NDA-uri foarte stricte;
- Algoritmi și programe
pot fi licențiate (între creatorii lor
și firme); de exemplu sistemul de operare Unix a fost licențiat
multor firme de către AT&T; cea mai notabilă este Sun
Microsystems,
al cărei sistem de operare Solaris este construit pe baza unor
bucăți de cod licențiate de la AT&T (între timp
AT&T a vândut
drepturile sale exclusive și marca comercială Unix lui Novell, care
le-a vândut apoi lui SCO).
Să
observăm că (lucru valabil și pentru patente și copyright în
general) o firmă poate angaja indivizi care să inventeze/creeze
pentru ea, iar produsele devin posesiunea firmei, și nu a indivizilor
care le-au creat. Acest lucru este de obicei specificat în
contractele de muncă ale inșilor. Majoritatea firmelor software
aplică acest model.
Tipuri de protecție
legală a creatorilor de software
Varietatea
de protecții aplicate în software este însă foarte
mare, în parte și pentru că un program poate fi văzut la două
nivele: al codului sursă, în limbajul în care este
scris (C,
Pascal, Java, etc.), sau la nivelul programului obiect,
executabil, așa cum iese dintr-un compilator. Iată unele
dintre
categoriile cele mai răspândite de software:
- Public
domain:
- sunt
programe care nu sunt supuse nici unei
protecții, pentru că autorii lor nu au luat măsurile necesare de
protecție. Oricine poate folosi aceste programe în orice fel,
inclusiv le poate include în programe mai mari care sunt
secrete sau
sunt protejate de copyright.
- Proprietary:
- (în
proprietatea cuiva) sunt programe a căror
modificare, folosire și redistribuire sunt supuse la restricții de
către posesorii lor. Semi-free software, de mai jos, intră în
această categorie.
- Semi-free:
- anumite
programe sunt disponibile fără
constrângeri dacă sunt folosite în scopuri
non-profit, dar sunt
supuse la restricții pentru alte utilizări. Un exemplu este
pachetul PGP (Pretty Good Privacy).
- Shareware:
- shareware
este un tip de program care se poate
folosi într-o formă restrânsă (fără funcționalitate
completă,
sau doar pentru o anumită vreme) gratuit, dar care trebuie cumpărat
în versiunea completă. Practic un fel de software cu mostre
gratuite pentru a momi cumpărătorii. În general ``shareware''
este
o formă de software ``proprietary''.
- Freeware:
- acest
termen este ambiguu și nu se bucură de o
interpretare unanim acceptată.
- Comercial:
- software-ul
comercial este vândut de o companie
pentru bani. În mod paradoxal, software-ul comercial nu este
același lucru cu software-ul ``proprietary''! Poate exista software
comercial free, cum explică următoarea categorie!
- Free/Open
Source:
-
aceasta
este de fapt creatura cea mai
interesantă, care este scopul central al acestui articol. Software
free este orice software care:
- Este distribuit
fără restricții de copiere sau utilizare
pentru oricine;
- Este
întotdeauna distribuit (și) în limbajul sursă;
- A cărui modificare
și distribuire sunt permise oricui.
Termenii
``open source'' și ``free software'' sunt sinonimi. Cel
de-al doilea este mai tradițional, dar puțin mai confuz, pentru că
``free'' înseamnă în engleză atât
``liber'' (de restricții) cât
și ``gratuit''. Free software nu
înseamnă gratuit, ci
``liber de restricții''.
Garanțiile software-ului
E
interesant de văzut ce fel de garanții oferă firmele în
general
atunci cînd livrează programe, cel puțin în cazul
consumului de
masă (ce se întâmplă cu software-ul scris pentru a
monitoriza
centrale nucleare este o altă poveste).
Când
cumperi soft de la Microsoft (sau orice alt mare producător)
vei avea surpriza să observi că nu ți se oferă nici o
garanție asupra calității sale! Dacă ați avut răbdarea să
citiți un astfel de contract, care de obicei apare când
pornești
prima oară un program, ați observat că firma producătoare nu
promite că programul face ceva bine cu siguranță 100%.
Desigur,
programele nu sunt în realitate inutile, pentru că nu le-ar
cumpăra nimeni. Ele nu sunt însă nici complet fiabile.
În
general merg, însă producătorul nu este răspunzător de nici o
malfuncție.
Situația
programelor este complet diferită de cea a tuturor
celorlalte bunuri de larg consum; o fabrică de mașini este obligată
să garanteze ca motorul nu poate lua foc (desigur, în
condiții rezonabile).
Această
diferență de atitudine este posibilă pentru că în
general software-ul nu are un impact imediat asupra lumii materiale:
ți se blochează calculatorul, îl scoți din priză,
îi dai drumul,
poate ai pierdut ceva din munca ta, dar merge din nou. Complexitatea
programelor a ajuns atât de mare încât
este virtual imposibil să
fie garantată corectitudinea lor, nici măcar din punct de vedere
statistic. O viață de om nu ajunge pentru a citi toate cele 20 de
milioane de linii sursă ale sistemului de operare Windows NT, cu
atât mai puțin pentru a garanta corectitudinea lor.
Este
pe deplin acceptat că fiabilitatea unui program este funcție
(crescătoare) de vechimea lui: cu cât un program a fost
folosit mai
mult și peticit mai tare, cu atât este mai sigur. Din această
cauză marile bănci rulează în continuare software scris prin
anii
'70, scris în Cobol: riscul unei pierderi este prea mare
pentru a
încerca o altă soluție.
Free Software
Noțiunea
de free-software (sau open-source) este aparent paradoxală:
dacă oricine poate lua un program și-l poate multiplica, cum poate
acel program să mai poarte valoare pentru cel care l-a creat? Cum se
pot face bani scriind program pe care apoi oricine le poate folosi?
Orice
economist o să exclame: ``nu se poate''! Absurd! Așa ceva nu
există.
Bine,
dar atunci cum explicăm cele 7 milioane de servere din lume pe
care sunt instalate Linux?
Pentru
a vedea geneza acestui fenomen misterios trebuie să facem un
pic de istorie.
Apariția valorii
în software
La
început a existat numai hardware. La începutul
anilor '60
calculatoarele erau mari, puține și extrem de scumpe (milioane de
dolari). Timpul lor era foarte prețios, și cei care știau să le
``descânte'' erau puțini.
Cu
vremea hardware-ul a devenit din ce în ce mai ieftin;
``încrucișarea'' s-a produs undeva la începutul
anilor '70, când
oamenii au realizat că programele care se execută pe computere sunt
cel puțin la fel de importante economic ca și computerele
însele.
Dacă
programele au valoare economică atunci ele trebuie protejate,
nu? Cum? Făcându-le secrete comerciale. Practica
ne-publicării
surselor programelor și interzicerii multiplicării datează din
această perioadă.
Aparent
modelul funcționează de minune: companiile care scriu
software fac o grămadă de bani din asta; programatorii sunt
în mare
cerere și salariile lor sunt impresionante. Costul de producție al
software-ului nu este deloc scăzut: randamentul unui programator este
destul de mic. Cea mai mare parte a efortului este cheltuită
în întreținerea și depanarea
programelor. Microsoft are
pentru fiecare programator doi indivizi care testează! Ceea ce face
software-ul profitabil este ușurința cu care este multiplicat. Un
program popular este scris o singură dată (și întreținut cu
un
efort continuu), dar este vândut în milioane de
copii.
O
altă mare sursă de venit al companiilor de software este
``customer support''. Compania oferă o formă limitată de
asistență tehnică utilizatorilor săi, răspunzând la
întrebări
și ajutându-i în anumite proceduri (service).
Compania nu promite,
dar încearcă, să corecteze malfuncțiile programelor.
Deși
acest statut juridic/economic al software-ului funcționează de
minune, poate de fapt nu este cel mai potrivit. Obiecții pertinente
se ivesc una cîte una.
Contracurentul:
Richard Stallman și proiectul GNU
Cea
mai importantă figură a opoziției noțiunii de ``proprietary
software'' (software secret, cu restricții de publicare și copiere)
este cu certitudine Richard Stallman. Dacă nu este cea mai
importantă figură, Stallman este cu siguranță cea mai pitorescă.
Stallman
este un ``hacker'' cu o experiență impresionantă: a
început să programeze încă din anii '60. Stallman a
lucrat o
vreme îndelungată la Universitatea MIT (Massachusetts
Institute of
Technology) ca programator de sistem
în laboratorul de Inteligență Artificială. După aceea și-a
dat
demisia ca să se consacre în întregime proiectului
său GNU despre
care o să vorbesc ceva mai jos.
Cea
mai răspândită creație a lui este editorul de texte Emacs, pe
care
l-a conceput cât timp era la MIT. Astăzi Emacs este probabil
unealta
preferată pentru interacțiunea cu calculatorul a majorității
profesioniștilor din calculatoare din lume.
De
asemenea Stallman este arhitectul și realizatorul excelentului
compilator de C numit GNU C Compiler, pe scurt GCC. Este
singurul compilator care, ca și Emacs dealtfel, funcționează pe
câteva zeci de mașini diferite arhitectural (de la PC-uri și
stații de lucru la supercalculatoare).
Stallman
este însă extraordinar prin proiectul său GNU, și prin
fundația pe care a creat-o pentru a-l duce la capăt. Despre
proiectul GNU puteți afla o sumedenie de lucruri din pagina sa de web
de la http://www.gnu.org.
Pe
scurt, Stallman crede că a face software-ul secret și a
împiedica
diseminarea sa este imoral, pentru că privează societatea de accesul
la valoare. Mai mult decât atât, acest lucru
înseamnă risipă: pentru
că nu poți copia (și îmbunătăți) software, trebuie să-l
rescrii. Asta
se vede destul de clar în sumedenia de sisteme de tip Unix
care
există: fiecare firmă mare a dezvoltat propria ei versiune, ușor
incompatibilă cu toate celelalte.
Stallman
spunea:
Pentru ca astfel
de lucruri să nu se mai poată întâmpla m-am
hotărât să scriu un set complet de software de sistem, pe
care să
îl pot da oricui îl vrea să îl
folosească. [Pachetul ăsta de
programe poartă denumirea de GNU]. Odată ce GNU va fi scris,
oricine va fi capabil să obțină software de sistem de calitate,
fără a face vreun efort.
Nu-i
așa că sună nebunește?
Proiectul
GNU a debutat în 1984. GNU urma să fie un set complet de
programe necesare pentru a utiliza un sistem de tip Unix, plus un
nucleu de sistem de operare stil Unix. Iar totul urma să fie ``free
software'', spre deosebire de Unix, care este o marcă comercială.
Numele
este o abreviere recursivă, (Stallman este un mare programator
în Lisp): GNU = Gnu is Not Unix (G este prescurtare la
rândul său
de la Gnu).
Programele
din sistemul GNU însă încearcă să remedieze unele
din
deficiențele tradiționale de implementare a UNIX-ului (în
multiplele variante ale diferitelor firme), păstrând multele
sale
calități.
Stallman
a înființat o societate non-profit, Free Software
Foundation (FSF), pentru a duce la bun sfârșit proiectul GNU.
Primele
programe scrise de Stallman pentru proiectul GNU au fost GCC,
o implementare complet ``free'' a editorului Emacs, și un generator
de parsere Bison. În timp proiectul GNU a dezvoltat
majoritatea
utilitarelor necesare oricărui sistem Unix tradițional. Și
într-adevăr, acestea sunt excelent implementate, cu mai
puține
bug-uri și eficiență mai mare decât cele pe care se dau bani
grei.
Toate aceste programe pot fi copiate gratuit prin Internet sau pot fi
cumpărate de la FSF.
În
1996 a fost lansată și prima versiune a nucleului sistemului de
operare GNU, numit ``The Herd'' (ciurda). Din rațiuni pe care le vom
evidenția mai jos (recte popularitatea Linux), The Herd nu
este foarte populară.
FSF
angajează programatori care scriu pentru proiectul GNU. Cele mai
multe din programele GNU însă sunt rodul muncii unor
entuziaști din
întreaga lume, care scriu programe pe care le pun la
dispoziția
fundației, sau care contribuie cu optimizări sau indicații de
bug-uri la programele existente. Fundația scrie și documentații
și manuale pentru produsele ei, pe care le tipărește și le vinde.
Periodic face CD-ROM-uri pe care ultimele versiuni ale programelor GNU
se află în totalitate, și care pot fi cumpărate la prețuri
derizorii. Fundația mai trimite cui vrea contra cost benzi cu
programe. Acestea sunt în principiu mijloacele ei de
subzistență.
Stallman
s-a așteptat și la suport financiar din partea unor
corporații mari care dezvoltă soft pentru Unix:
Mă așteptam ca
toți să mă sponzorizeze pentru ca eu să le fac
soft de excelentă calitate pe care să-l folosească toți, iar ei
să se poată ocupa de lucruri mai serioase, decât să refacă
fiecare același lucru în felul lui.
În
viziunea lui Stallman, cea mai importantă calitate a
software-ului este că poate fi citit de oricine și
îmbunătățit
de oricine. Or asta se poate numai dacă software-ul este ``free''.
Free
înseamnă două lucruri esențiale independente:
- Programele pot fi
copiate de către oricine și distribuite;
- Programele pot fi
citite de către oricine și modificate.
Desigur,
acestea sunt atribute adevărate ale oricărei creații care
este în domeniul public: oricine o poate copia, modifica și
distribui. Dar asta nu e suficient pentru a o face utilă: ce folos
dacă cineva ia un program public, îl îmbunătățește
și apoi îl
face secret?
Acesta
este pericolul de care trebuie să ne apărăm. Dar cum?
GNU Public License (GPL)
Pentru
a proteja soft-ul pe care FSF îl scrie, acesta nu este pus
pur
și simplu în domeniul public, unde oricine și l-ar putea
însuși
pentru scopuri personale. Soft-ul GNU este protejat de exact mijlocul
pe care marile firme îl folosesc pentru a-și apăra produsele
împotriva copierii: copyright-ul și licențele.
Stallman
a elaborat celebra GPL, ``General Public License'', care se
aplică programelor GNU. Programele GNU sunt deci protejate de
copyright, dar licența GPL dă următoarele drepturi utilizatorilor:
- Oricine are voie să
folosească, copieze, modifice și
distribuie (eventual pentru bani) soft GNU;
- Oricine construiește
programe folosind bucăți din programe
GNU trebuie să ofere aceleași drepturi tuturor
celorlalți
(copiere, distribuire, etc.).
Pentru
Stallman, a face cunoștințele ``secrete'' este profund
imoral. El observa, corect, că existenta suportului tehnic și a
garanțiilor nu are absolut nici o legătură cu proprietatea
software-ului de a fi secret sau ``free'':
Utilizatorii
cumpără software de firmă pentru că li se spune că
vor căpăta asistență tehnică și garanții. Este desigur un
lucru foarte util, dar dacă se vor gândi ce legătura poate să
aibă asta cu vânzarea de soft, sau cu interdicția de a-l
studia,
vor realiza că nu e prea clar. Nu există nici o garanție ca
soft-ul de firmă va primi suport tehnic bun.
[...]
În realitate lumea crede că GNU Emacs este mai bine
întreținut decât variante comerciale ale
programului. Unul dintre
motive este eu că sunt un hacker mai bun decât cei care scriu
celelalte Emacs-uri, dar celălalt motiv este că toată lumea are
sursele și sunt așa de mulți interesați să-l folosească la tot
felul de lucruri încât de fapt nu trebuie să fie
întreținut de
mine.
Acesta
este un lucru deosebit de interesant, asupra căruia o să
revenim mai jos, în secțiunea consacrată modelului
``open-source''.
Linux
Geneza
În
1987 un profesor de la Universitatea Vrije din Amsterdam, pe nume
Andrew S. Tanenbaum, scrisese o carte excelentă despre arhitectura
sistemelor de operare, care era însoțită de codul unui nucleu
complet, numit Minix. Minix arăta pentru un utilizator ca un Unix
foarte mic (de aici și numele), dar era construit folosind o
arhitectură complet deosebită de cea a Unix-ului tradițional (Minix
era un micro-nucleu).
Minix
era distribuit în categoria ``semi-free'' de mai sus, adică
fără restricții pentru cei care-l foloseau non-profit. Codul era
folosit pentru instruirea în sisteme de operare în
universitățile
din întreaga lume. Grupurile de discuții pe Internet (news)
despre
arhitectura nucleului, unde lumea sugera variante și
îmbunătățiri, se bucurau de un interes crescând.
În
1991 proiectul GNU pornise deja de 6 ani și dezvoltase toate
utilitarele necesare, mai puțin nucleul unui sistem de operare.
Utilitarele GNU erau folosite de multă lume, dar nimeni nu avea
încă la dispoziție ceea ce Stallman își dorise: un
sistem complet
free, de la un cap la altul.
Sudura
s-a produs datorită unui student finlandez de la universitatea
din Helsinki. Linus Torvalds a adăugat inițial un modul de memorie
virtuală la Minix și și-a făcut publică creația. Foarte mulți
entuziaști au început să folosească îmbunătățirile
aduse de
Linus.
Linus
a început încetul cu încetul și a rescris
feluritele părți
din Minix folosind o arhitectură monolitică. Noul sistem era dezvoltat
inițial
folosind Minix (compilatoarele, utilitarele pentru scrierea sistemului
se executau pe Minix). A urmat o ceartă publică (pe Internet)
între Linus și Tanenbaum, care era nemulțumit de evoluția
arhitecturii nucleului său. Tanenbaum este un cercetător renumit
în sistemele de operare distribuite, și crede că arhitectura
micro-nucleu este mai potrivită pentru evoluția sistemelor viitoare.
Linus pe de altă parte s-a bazat foarte mult pe arhitectura Unix-ului
tradițional (despre care s-a publicat foarte mult, și care este
relativ bine înțeleasă; trebuie reținut că design-ul
Unix-ului
tradițional nu este patentat; codul său este sub copyright, dar asta
nu înseamnă deloc că altcineva nu poate scrie noi sisteme
care să
arate ca Unix). În momente de
înfierbântare Tanenbaum a declarat
că Linus ar pica dacă ar fi student la cursul său de sisteme de
operare.
Linus
atunci și-a luat jucăriile și a plecat, redenumind propriul
lui nucleu Linux. După o vreme Linux
avea un nucleu suficient de complet încât să nu mai
fie nevoie de
mediul de dezvoltare oferit de Minix. În locul utilitarelor
de pe
Minix, Linus a ales să folosească sculele de dezvoltare de software
de la GNU. De asemenea, Linus a pus codul Linux sub protecția
licenței GPL, făcând codul ``free''.
Așa
a început ceea ce ar putea fi ``noua revoluție în
software''...
Explozia
Linux
a început să strângă tot mai mult aderenți,
în dauna
Minix-ului. Unul dintre motive era entuziasmul cu care Linus accepta
modificările sugerate de alții și le introducea în codul lui
(Tanenbaum era mult mai conservator). Un alt motiv era faptul că
Linus a implementat anumite trăsături foarte utile unui sistem de
operare, cum ar fi memoria virtuală. (Tanenbaum a spus că
așteaptă vremea când RAM-ul o să fie atât de ieftin
încât nu va
mai fi nevoie de memorie virtuală.)
Cert
este că evoluția numărului de utilizatori a fost explozivă,
exponențială. În 1995 când Linus a fost la
București la
conferința ROSE a prezentat un grafic care arăta cam așa:
| An |
Număr
de utilizatori Linux |
| 1991 |
50 |
| 1992 |
500 |
| 1993 |
5.000 |
| 1994 |
50.000 |
| 1995 |
500.000 |
De
atunci încoace numărul de utilizatori a continuat să crească
spectaculos. In 1998 cifra estimată era undeva între
4
milioane și 24 de milioane, dar este imposibil de afirmat cu precizie
câți. Unul dintre motive este că Linux este distribuit
``free'',
și oricine poate să-l descarce de pe Internet, fără a da
socoteală cuiva. Nu se pot deci contabiliza încasările pentru
a
afla popularitatea sa.
Sistemul
a crescut din ce în ce mai mult, și a căpătat din ce
în
ce mai multă funcționalitate. Linus menține un control
relativ strâns al arhitecturii interne a sistemului și
proiectează
interfețele. Contribuțiile unor programatori din întreaga
lume
sunt înglobate în nucleu și rapoartele despre erori
ale celor care
testează sunt imediat luate în considerare.
În
clipa asta Linux este pe locul doi în lume ca număr de
sisteme
de operare multi-utilizator instalate, după Windows al lui
Microsoft. Linux a
bătut toate Unix-urile comerciale ca popularitate (care există de peste
25
de ani)! E natural la prețul pe care îl are...o distribuție
Unix de firmă costă între cîteva sute și
câteva zeci de mii de
dolari, depinzând de utilitarele livrate.
Linux
mai deține și alte recorduri interesante: este cel mai
portabil nucleu de tip Unix, care rulează nu numai pe PC-uri cu
procesoare din familia Intel Pentium, ci și pe calculatoare Sun cu
procesoare SPARC, calculatoare Digital cu procesoare Alpha,
pe procesoare PowerPC de la IBM și Motorola, Motorola m68k, MIPS de
la Silicon Graphics, ARM de la Intel (fost la Digital), etc.
Linux
a devenit un sistem de operare redutabil, înzestrat cu toată
funcționalitatea necesară dezvoltării de software, rulării de
programe pentru servicii Internet (servere Web, de poștă
electronică, etc.), cercetare, etc. Nucleul este în
întregime
supus licenței GPL, ca și majoritatea utilitarelor sistemului.
Pe
de altă parte din ce în ce mai multe firme încep să
dezvolte
software care merge (și) pe Linux; grupul de discuții
comp.os.linux.announce este foarte populat cu noi anunțuri
de software, cel mai adesea software free. Anumite programe
esențiale folosite nu sunt neapărat supuse licenței GPL, cum ar fi
sistemul grafic de ferestre X Windows. Acesta este ``aproape free'':
cei care l-au scris îl oferă gratuit în surse,
însă oferă
posibilitatea dezvoltării de versiuni ``proprietary'' (și există
astfel de versiuni).
Din
ce în ce mai
multe companii adoptă Linux pentru a rula servicii
care au nevoie de fiabilitate (Windows este din punctul ăsta
de
vedere mult inferior). Soluția server-ului de Web Apache peste un
nucleu Linux este ideală din punctul de vedere al unui administrator
de sistem. Multă publicitate s-a făcut în jurul folosirii
sistemului Linux de către compania Digital Domain pentru a realiza
efectele speciale din filmul Titanic. Având de ales
între
Windows, IRIX (de la Silicon Graphics) și Linux a fost preferat cel din
urmă. NASA plătește programatori care dezvoltă software pentru a
transforma Linux într-un mediu pentru programare distribuită
(proiectul Beowulf). Poșta Americană folosește 900 de stații cu
Linux pentru a face recunoașterea scrisului de pe plicuri și
cartarea automată. Și exemplele de aplicații ``serioase'' ar putea
continua. Universitățile găsesc Linux un sistem din ce în ce
mai
tentant: e ieftin, e public, e bine întreținut, este
răspândit și
are o bază largă de aplicații. Plus faptul că sursele sunt
complet disponibile îl face un vehicul ideal pentru
cercetare:
când
faci cercetare pe nuclee obținute semnând NDA (non-disclosure
agreements) anumite rezultate nu pot fi publicate.
Modelul Open-Source
Așa
ceva este imposibil, știe toată lumea. Microsoft este o firmă
cu un buget uriaș, mii de programatori și testeri, care investește
enorm în dezvoltarea de software și cercetare, cu o
experiență
remarcabilă în domeniu, care angajează oameni plătiți
full-time
pentru a scrie programe, și nu a fost în stare să producă un
sistem de aceeași calitate. De unde atunci valoarea din Linux? Cine
produce valoare dacă recompensa este aparent imposibilă datorită
modelului de distribuție liber, și dacă restricțiile la copiere nu
împiedică ``furturile''?
Sau
poate software-ul are o natură complet diferită, și criteriile
despre conservarea valorii din alte domenii nu i se aplică?
De
fapt Linux nu este decât exemplul cel mai evident dintr-o
suită
întreagă de alte exemple. Modelul acesta de dezvoltare este
mai
răspândit decât pare.
Unul
dintre dezvoltatorii de software ``free'', Eric Raymond a
încercat să explice modelul de supraviețuire și
înflorire al
Linux-ului dintr-o perspectivă cât mai largă: economică,
tehnică,
socială. Un articol de-al său pe această temă a devenit faimos:
``Catedrala și Bazarul''. Dl. Raymond contrapune în acest
text
modelul de dezvoltare ``tradițional'' (catedrala) cu modelul Linux
(bazarul) și încearcă să explice meritele celui din urmă.
Acest
articol a fost foarte important pentru a conceptualiza fenomenul.
Pe
data de 6 martie 1998 s-au întâlnit în
Silicon Valley câțiva dintre
cei mai importanți actori din arena software-ului ``free''. S-a putut
observa cu această ocazie că o mare parte din software-ul care
constituie infrastructura Internet-ului este de
fapt free!
Iată cei mai importanți participanți:
- Linus
Torvalds,
- creatorul Linux;
- Larry
Wall,
- creatorul limbajului Perl,
folosit în
majoritatea serverelor de Web din lume;
- Brian
Behlendorf,
- fondator al grupului Apache,
al căror
server web free rulează pe mai mult din 50% din serverele din
Internet;
- Eric
Allman,
- creatorul programului sendmail
care asigură
livrarea poștei electronice în mai mult de 70% din Internet;
- Paul
Vixie,
- creator al programului
bind (Berkeley
Internet Name Daemon), piesa centrală din managementul numelor din
Internet;
- Phil
Zimmermann,
- creatorul pachetului
de criptografie Pretty
Good Privacy PGP;
- John
Gilmore,
- întemeietor
al firmei Cygnus Solutions,
prima companie care trăiește exclusiv din întreținerea și
vânzarea de software ``free'';
- Guido
van Rossum,
- creator al limbajului Python;
- John
Ousterhout,
- creator al
interpretorului Tcl folosit
pentru dezvoltarea rapidă de interfețe cu utilizatorii și generarea
de pagini de web;
- Tim
O'Reilly,
- patron la editura O'Reilly
& Associates,
care nu scrie software free, dar face bani grei publicând
cărți
despre software free;
- Tom
Paquin și Jamie Zawinski,
- reprezentând
site-ul mozilla.org
al companiei Netscape.
Unul
dintre rezultatele întâlnirii a fost propunerea de
a schimba
numele ambiguu de ``free'' software (care poate sugera ``gratuit'',
ceea ce am văzut că nu e adevărat) cu ``open-source''. Eric Raymond a
înregistrat marca comercială Opensource
și a înființat un
``site'' web consacrat acestui subiect; îl puteți vizita la http://www.opensource.org.
Acest
nume a fost ales pentru că cea mai importantă caracteristică a
software-ului de acest gen este că trebuie publicat în
``surse'' (în
limbajul în care a fost scris).
În
acest ``site'' Eric Raymond expune o serie de motive foarte
convingătoare care încearcă să explice succesul modelului de
dezvoltare open-source. Argumentele încearcă să fie
justificate
din cât mai multe puncte de vedere (în contrast cu
viziunea lui
Stallman, pentru care prerogativele morale erau dominante: ``nu e
cinstit să ascunzi software'', spunea el).
Meritele
``open-software''
Iată
o serie de motive pentru care software-ul poate fi dezvoltat
(mai bine) în stil ``liber'' decât ca secret
comercial. Care dintre
ingrediente este majoritar, rămâne de văzut.
- ``Dacă ai destui ochi,
orice ``bug'' devine evident''. Altă
formulare a acestui dicton este ``depanarea se poate face în
paralel''. Cu cât mai mulți inși utilizează un program cu
atât e
mai simplu de depistat ce nu merge bine. Atunci când
utilizatorii au
la dispoziție sursele programului pot investiga cauzele reale ale
erorii, și adesea le pot înlătura fără intervenția autorului
programului.
- Linux a introdus un
model de dezvoltare software cu reacție
extrem de rapidă; Linus pune în circulație o versiune nouă de
nucleu odată la 2-3 zile (câteodată apar două nuclee pe zi!).
În
felul acesta reparațiile și sugestiile sunt foarte rapid
implementate.
- Fiabilitatea
programelor free este mult mai bună decât a celor
comerciale, datorită faptului că practic oricine poate căuta și
depana bug-uri. Două studii prezentat la conferința ``Usenix'' a
dezvoltatorilor de Unix din 1990, respectiv 1995 comparau
cantitativ robustețea utilitarelor din mai multe sisteme de operare
comerciale, a celor produse de GNU și a celor folosite cu Linux (cele
din urmă se suprapun). Studiile observa două lucruri oarecum
surprinzătoare:
- Robustețea
programelor ``free'' era mult mai mare: când erau
``stresate'' cu date de intrare incorecte, în medie 9% din
programele
de pe Linux și 6% din utilitarele GNU manifestau erori. Sistemele
Unix comerciale se plasau între 12% (IRIX) 'si 43% (NeXT)!
- Anumite bug-uri
erau prezente atât în versiunile din 1990
cât
și din 1995 ale programelor comerciale, în pofida raportării
lor
(publice!) de către primul studiu!
Asta demonstrează că
firmele nu sunt de fapt cu adevărat capabile
sau interesate să înglobeze reparațiile sugerate de
utilizatori,
lucru mai puțin adevărat în cazul programelor ``free''.
Atunci
când codul este secret numai firma care
îl posedă îl poate
repară; un program public poate fi reparat de către oricine se
pricepe.
- Contrar aparențelor,
se pot câștiga bani din dezvoltarea de
software ``open''.
- O observație foarte
interesantă se impune despre natura
creației de software: mai mult (cel puțin pe scara temporală)
decât activitate creatoare, scrierea de software este
întreținere
și depanare! Cu alte cuvinte, a livra software de calitate seamănă
mai mult cu prestarea de servicii pentru clientul tău. Dar aceste
din urmă activități sunt cu siguranță ajutate de prezența
codului sursă și de o bază largă de utilizatori (care sunt atrași
de disponibilitatea software-ului).
- Rata de inovare este
mult sporită de prezența software-ului
free; o soluție odată descoperită este disponibilă tuturor, și pe
baza ei se poate construi o alta și mai eficace.
- O motivație de natură
socială: scriind software ``free''
poți deveni faimos. Câtă lume știe numele arhitectului șef al
sistemului de operare NT (David Cutler)? Și câtă lume a auzit
de
Linus? O companie mare ``înghite'' individualitățile
angajaților
ei.
|