Mihai BUDIU -- mihaib+ at cs.cmu.ro
http://www.cs.cmu.edu/~mihaib
decembrie 1995, revizuit septembrie 1998
Orice informatician profesionist care s-a întîlnit cu UNIX odată s-a îndrăgostit cu siguranţă de el. Motivele pasiunilor pe care le suscită constituie ele însele un subiect despre care s-au scris sute de cărţi şi nu despre asta intenţionez să povestesc aici. Nu despre ``de ce'' voi vorbi, ci mai curînd despre ``cum'' şi ``cînd''. Istoria genezei acestui sistem de operare este ea însăşi plină de învăţăminte interesante.
Putem coborîpe firul timpului pentru a regăsi rădăcinile UNIX pînă la zilele de început ale calculatoarelor, prin anii '40-'50. Atunci lumea (de fapt ``selecta'' comunitate a informaticienilor) încerca să construiască un set de ``scule'' care să mărească productivitatea calculatoarelor, care pe atunci costau o grămadă de bani şi-şi petreceau tare mult timp citind cartele sau facînd alte treburi de acelaşi gen -- plictisitoare şi mari consumatoare de timp -- scule care vor fi sămînţa a ceea ce mai tîrziu se va numi ``Sistem de Operare''. Ar fi însă prea departe o astfel de întoarcere, deşi cu siguranţă nu lipsită de interes.
Povestea începe cu adevarat prin 1962, cînd trei mari companii din domeniul calculatoarelor din Statele Unite şi-au unit forţele pentru a da naştere unui monstru software. MIT (Massachusets Institute of Technology -- o universitate de numele careia sunt legate multe pietre de hotar din istoria calculatoarelor), Bell Laboratories, care pe vremea aceea aparţinea de AT&T (American Telephone and Telegraph -- un colos al telecomunicaţiilor) şi General Electric (atunci un important producător de calculatoare) s-au decis să pună la bătaie nişte creiere, şi o grămadă de bani ca să facă un ``utilitar'' sofisticat. Acesta trebuia să permită folosirea unei capacităţi de calcul în comun de către sute de utilizatori, cu un maximum de eficienţă şi securitate. Modelul la care aspirau era cel al reţelei de electricitate: vroiau ca fiecare potenţial utilizator să aibă la dispoziţie un fel de mufă la care să cupleze un terminal şi prin care să aibă acces instantaneu la toate resursele de calcul ale sistemului. Vroiau sa aibă un singur calculator care să satisfacă toate nevoile utilizatorilor din Boston. Proiectul s-a numit MULTICS, prescurtare de la MULTiplexed Information and Computer Service -- serviciu multiplexat la informaţii şi putere de calcul. Acesta este unul dintre cele mai răsunătoare eşecuri din istoria informaticii mondiale.
Proiectul n-a ajuns la sfîrşit. Bell s-a retras după cîţiva ani şi cîteva milioane de dolari cheltuiţi. General Electric a renunţat cu totul să mai lucreze în industria calculatoarelor.
Motivele eşecului sunt multe. Unul dintre ele este puterea hardware-ului de atunci. Ideea că peste douăzeci de ani un calculator de puterea celui pe care îl foloseau va putea să fie vîndut cu numai cîteva mii de dolari drept un calculator personal nu era bună nici ca SF. Un alt motiv, paradoxal, a fost o prea mare efervescenţă de idei. Fiecare din cei implicaţi era un artizan, şi varietatea conceptelor a dus la o proastă integrare a părţilor. Nu în ultimul rînd a contribuit limbajul folosit: MULTICS ar fi trebuit să fie scris în PL/I, iar compilatorul era dezvoltat în acelaşi timp de o altă echipă, care niciodată nu era în termen.
Retrospectiv vorbind e greu de spus că MULTICS a fost un mare eşec. Majoritatea ideilor elaborate atunci sunt acum conceptele fundamentale din teoria sistemelor de operare. Pe de altă parte MIT a realizat pînă la urmă o variantă funcţională MULTICS care se foloseşte în cîteva locuri din lume.
MULTICS a fost prima dintre rădăcinile UNIX. O a doua a fost fenomenala dezvoltare a minicalculatoarelor. De la nişte coloşi (foarte, foarte scumpi), o ``rasă'' de calculatoare a evoluat spre dimensiuni mici şi preţuri accesibile. Tipică este familia PDP a lui DEC (numit apoi Digital, cumpărat în 1998 de Compaq), care in 1961 vindea un PDP-1 cu 4K de memorie RAM de cîte 18 biţi cu numai 120 000$ (de douăzeci de ori mai ieftin decît un IBM 7094). La preţul ăsta PDP-urile se vindeau ca pîinea caldă. La asta s-a adăugat şi politica DEC de a scoate o întreagă familie de calculatoare (PDP) compatibile unele cu altele.
Unul dintre participanţii la proiectul MULTICS din partea Bell Labs, Ken Thomson, după nefericita experienţă, a găsit prin sediul firmei un PDP-7 pe care aparent nimeni nu-l folosea. Şi-a propus să scrie pe el un program foarte interesant, şi anume un joc de simulare a unor nave spaţiale şi a sistemului solar. Calculatorul avea tot hard-ul necesar, dar soft de loc. Aşa că Thomson s-a apucat de lucru folosind întîi un cross-assembler (un asamblor care se executa pe o maşină dar genera cod pentru alta). După ce s-a plictisit să tot care benzi cu hîrtie găurita de la asamblor la PDP ca să încarce programele s-a hotărît să-şi scrie un asamblor pentru PDP. Zis şi făcut.
Să scrii un joc însă nu e o treabă deloc banală. E o provocare pentru orice programator, oricît de experimentat. Jocurile sunt programe extrem de complexe, care implică adesea algoritmi sofisticaţi. Pe deasupra sunt greu de depanat şi testat. Ei, asta-i trebuia de fapt şi lui Thomson: un mediu de dezvoltare, care să-i permită să scrie uşor şi eficient programul. Atunci el şi-a folosit cunoştinţele acumulate cu prilejul MULTICS şi a scris, împreună cu un coleg, Dennis Ritchie, o variantă mai sărăcuţă a acestuia pentru PDP. Prima piesă a fost un sistem de fişiere, duipă care au urmat un subsistem pentru execuţia proceselor şi apoi un interpretor de comenzi (shell). Colegii lui au numit rezultatul, ca să rîdă de Thomson, UNICS (UNiplexed Information...). Uite însă că numele a prins, deşi grafia a fost apoi schimbată in UNIX. Această primă variantă era scrisă in assembler PDP-7.
Programul lui Thomson i-a fermecat pe colegii lui, programatori şi ei. Iată însă că unul din departamentele hîrţogare ale Bell avea nevoie de nişte programe mai de doamne-ajută pentru prelucrarea de texte. Sarcina a căzut tot pe umerii lui Thomson, care a primit pentru aceasta un calculator mai mare şi mai frumos, numit PDP-11/20. Si pentru că decît să scrie direct programele mai simplu i-ar fi fost să aibă un mediu de programare asemănător pe noua maşină, s-a decis să ``porteze'' UNIX pe noua arhitectură. Compatibile, compatibile, dar nu chiar de tot. Totul trebuia rescris de la cap, in limbaj de asamblare PDP-11.
Aici interesele lui s-au unit cu al altui grup de la Bell, care lucra la nişte limbaje de programare care pot exprima algoritmi mai precis decît engleza şi mai fiabil decît FORTRAN-ul. Ei elaborasera deja două noi limbaje care vor avea un rol important în evoluţia ulterioară a domeniului. Acestea erau Algol şi BCPL. Thomson şi-a scris un interpretor de B -- o versiune proprie de BCPL, dar acesta era mult prea lent ca să poată fi folosit pentru programe mari. Denis Ritchie a fost însărcinat să scrie un compilator pentru B. Ritchie era şi el un tip foarte inventiv, aşa ca a modificat masiv limbajul pentru a-l face cit mai eficace fără a pierde însă portabilitatea. Programele nu trebuia să facă prea multe presupuneri despre arhitectura maşinii pe care rulează, pentru a se potrivi pe cît mai multe dintre ele. Dialectului creat de el, Ritchie i-a spus C.
C a fost limbajul potrivit la momentul potrivit. Este totodată simplu (sub 40 de cuvinte rezervate!), flexibil, extrem de eficient (aproape de maşină!), structurat, rapid şi portabil. De altfel, de atunci încoace a dominat categoric scena programării de sistem: majoritatea sistemelor de operare, compilatoarelor şi utilitarelor existente în lume sunt scrise în C. Succesul C a depăşit cu mult pe cel al Unix-ului. C este încă direct sau indirect limbajul dominant în lume şi la ora actuală (indirect prin urmaşii săi C++ şi Java).
Thomson şi Ritchie au rescris UNIX în C pentru noile maşini, şi apoi pe succesoarele lor PDP-11/45 şi PDP-11/70. Acestea din urmă aveau mecanisme de protecţie hardware şi au permis o implementare eficientă a mecanismelor de securitate din UNIX.
Primele versiuni de Unix au fost folosite numai în interiorul Bell Laboratories. Ediţia a treia, din februarie 1973 includea un compilator de C. În acelaşi an întregul Unix a fost rescris în C. Thomson şi Ritchie au fost co-autori ai unui articol acum faimos, numit ``The Unix Time-Sharing System'', publicat în Communications of the ACM în iulie 1974.
Prima portare în afara familiei PDP a fost făcută pe un calculator Interdata 8/321. Aceasta a fost ocazia de a constata că UNIX se baza cîteodată pe anumite particularităţi ale maşinii pe care trebuia să ruleze (cum ar fi că adresele sunt pe 16 biţi, deci sunt maximum 64K de memorie). O grămadă de timp a fost petrecută pentru a face UNIX independent de asemenea idiosincrazii.
La început transpunerea pentru Interdata s-a desfăşurat lent, pentru că dezvoltarea se făcea pe PDP, care se afla la etajul 5 al clădirii. Interdata era la etajul 1. O nouă versiune însemna să compilezi la etajul 5, şi să cobori cu benzile la 1, să vezi dacă merge. Dupa ce s-au uzat scările, a apărut un amplu interes pentru posibilitatea conectării a două maşini printr-un mediu electronic. Acesta a fost începutul programelor de comunicaţie în reţea de calculatoare din UNIX.
Sistemul era foarte uşor acum de portat, pentru ca 95 la sută din el era scris in C. Dacă vroiai să-l muţi pe o maşină nouă, tot ce aveai de făcut era să scrii un compilator de C pentru maşina aceea, iar un compilator e mult mai mic decît un întreg sistem de operare. Asta nu era chiar totul, pentru că pe noua maşină trebuia să mai scrii un pic cod în asamblare (intreruperi, porturi) şi să rescrii partea care se ocupa cu perifericele (driverele pentru discuri, benzi, terminale). Oricum, treaba era mult mai simplă pentru că tot ceea ce rămînea putea fi transportat neschimbat, iar asta e mare lucru! (Cîte din programele scrise de dumneavoastra se compilează uşor pe un calculator complet diferit de cel pe care le-aţi dezvoltat?)
Lucrurile nu s-au oprit aici! Steve Johnson de la Bell s-a apucat să studieze compilatorul de C şi a constatat că o mare parte din compilare se face la fel independent de maşina pentru care se generează codul. Ideea lui a fost să parametrizeze compilatorul în aşa fel încît să-i furnizezi doar o descriere a maşinii pentru care trebuie să genereze cod, iar grosul compilatorului să fie neschimbat. Acesta a fost compilatorul portabil de C. Ani întregi compilatoarele de C de peste tot au fost bazate pe cel al lui Johnson, şi aceasta a ajutat mult la răspîndirea UNIX-ului.
Versiunea cea mai importantă de Unix numită ``Versiunea 7'' a fost lansată în ianuarie 1979; era primul sistem Unix cu adevărat portabil, mult mai robust şi mai funcţional decît toate versiunile anterioare.
Poate nici unul din motivele de mai sus nu ar fi fost suficient pentru ca UNIX să cunoască popularitatea de care se bucură azi. A mai fost ceva. Pe vremea aceea AT&T era un monopol pe telecomunicaţii in SUA. Or americanii au nişte legi destul de severe anti-trust (vedeţi şi procesul intentat de departamentul de justiţie împotriva companiei Microsoft.) AT&T semnase cu DOJ (Department of Justice) o înţelegere prin care se abţinea să activeze în industria calculatoarelor. De aceea n-a avut nimic împotrivă să vîndă licenţa codului sursă UNIX, pentru preţuri modice, universităţilor. PDP-11 era, printr-o fericită coicidenţă, foarte răspîndit în universităţi, dar sistemul de operare cu care era livrat de DEC nu prea era pe placul utilizatorilor. UNIX a fost providenţial. Cursurile erau ţinute pe UNIX, cu exemple luate din UNIX. Codul se putea studia la seminare. Lumea era într-o efervescenţă nesfîrşită (un informatician obsedat este foarte obsedat!). Fiecare inova ceva, fiecare depana ceva. Conferinţe, întruniri, comunicări. Un profesor australian, John Lions, a scris pe marginea codului un comentariu de genul celor pentru operele lui Shkespeare sau Chaucer. Versiunile se succedau versiunilor.
În 1975 sistemul deja rula în colţuri foarte îndepărtate ale lumii: universitatea Berkeley din California, universitatea Ebraică din Ierusalim, universitatea South Wales din Australia şi universitatea din Toronto din Canada. Studenţii absolvenţi au dus apoi cu ei în industrie lecţiile învăţate cu UNIX, contribuind la răspîndirea lui în continuare. AT&T încorpora adesea contribuţii din întreaga lume în codul sistemului (colaborare care s-a deteriorat simţitor cînd AT&T a început mai tîrziu să comercializeze sistemul).
In 1984 Thomson şi Ritchie au primit prestigiosul premiu Turing al ACM (Association for Computing Machinery) pentru lucrarea lor din 1974 care descria pentru prima oară UNIX. ACM este o asociaţie profesională a calculatoriştilor din întreaga lume, de un prestigiu rivalizînd cu IEEE.
Lucrurile păreau a fi într-o deplină concordie, dar nu a fost să rămînă aşa.
În 1979 Microsoft (sic!) împreuna cu Santa Cruz Operations (SCO) au portat sistemul Unix pentru PCuri cu 80x86, sub numele de XENIX, una dintre primele variante comerciale ale sistemului.
Cam în acea perioadă, Thomson a avut un an sabatic (în sistemul american un cercetător cu experienţă din industrie face o dată la cîţiva ani o pauză şi lucrează -- de obicei -- în învăţămînt şi invers) la Universitatea Berkeley din California. Berkeley era una dintre primele universităţi care avusese licenţa codului. Studenţii şi cercetătorii de la Berkeley au dezvoltat un sistem propriu gen UNIX numit BSD (Berkeley Software Distribution) şi care avea o mulţime de îmbunătăţiri faţă de System V.
Printre părţile tari BSD: un mecanism de memorie virtuală cu paginare, inspirat din sistemul de operare VMS de la Digital, scris de Bill Joy şi Ozap Babaoglu, care permitea executarea unor programe mai mari decît încăpeau în memorie, un sistem de fişiere mult mai rapid (``The Fast File System''), compilatoare de LISP şi Pascal şi o implementare a protocolului de comunicaţii pentru reţele de calculatoare numit TCP/IP, care este de departe cel mai răspîndit astăzi, mult înafara lumii UNIX (este protocolul folosit în reţeaua Internet), plus o grămadă de utilitare de toate felurile. Armata a investit o grămadă de bani în cercetarea legată de Unix la Berkeley, prin agenţia DARPA (Defense Advanced Research Projects Agency)2. Dezvoltarea lui BSD a fost continuată la Berkeley pîna în 1993.
În 1982 Bill Joy a plecat de la Berkeley pentru a înfiinţa propria lui companie numită Sun Microsystems, care a lansat o variantă proprie de Unix numită SunOS, bazată pe BSD.
Tot în 1982 legea americana a spart AT&T în mai multe companii independente şi concurente pentru a sfărîma monopolul asupra telecomunicaţiilor. AT&T a avut voie să intre în arena calculatoarelor. Prima mişcare: a schimbat clauzele licenţei şi a făcut din el un sistem comercial, pentru care trebuia să dai o grămadă de bani şi ale cărui surse nu erau public disponibile. Prima variantă s-a numit System III, urmată curînd după aceea de System V. SV (cum mai este numit) avea multe facilităţi şi inovaţii faţă de BSD (memorie partajată, semafoare, o nouă arhitectură de memorie virtuală, biblioteci partajate, STREAMS, etc.).
Spre sfîrşitul anilor '80 în lume existau două stiluri mari de UNIX: BSD şi System V, care adesea nu prea se potriveau între ele. Acest lucru împiedica succesul comercial al produselor, pentru că nu puteai garanta că programele vîndute vor funcţiona pe orice variantă.
Marile firme de calculatoare au început să elaboreze propriile variante, cu tot felul de adaosuri şi modificări. Unele dintre ele se bazează pe codul cumpărat de la AT&T şi dezvoltat, altele sunt scrise de la cap la coadă, altele împrumută idei de la BSD. Fiecare mare fabricant de calculatoare are propriul sau UNIX:
Firmă | Unix |
Hewlet Packard | HP UX |
IBM | AIX |
Sun Microsystems | SunOS, Solaris |
Digital | Ultrix |
Silicon Graphics | IRIX |
SCO | SCO Unix |
Numai pentru calculatoarele din familia PC există mai multe UNIXuri mititele: XENIX, Coherent, 386BSD, Minix, Linux, etc.
Datorită proliferării de variante nu mai era foarte clar ce e şi ce nu e Unix. Fiecare fabricant adăuga propriile lui ``ornamente''. Sistemele bazate pe BSD şi SV erau diferite într-o mulţime de aspecte fundamentale.
Din păcate încercarea de a standardiza Unix a dus la apariţia unui întreg set de standarde incompatibile! În final 3 standarde diferite s-au bucurat de o acceptare largă: SVID, POSIX şi X/Open. Standardele descriu numai ce fel de servicii trebuie să exporte sistemul de operare, şi nu modul în care acestea sunt implementate.
Primul standard a fost făcut public de AT&T şi a fost numit System V Interface Definition, sau SVID (1983). Acesta este practic o descriere precisă a tuturor funcţionalităţilor pe care SV le oferea. AT&T a publicat şi o serie de teste pe care un sistem trebuia să le treacă înainte de a putea fi numit ``Unix''.
Oficiul de standarde al IEEE (Asociaţia Inginerilor Elecronişti) a făcut un alt pas spre reconciliere. Sute de experţi din industrie, universităţi şi guvern au format un colectiv numit POSIX (Portable Operating System -- unIX).
Standardul elaborat de ei este publicat într-o serie de documente numite seria POSIX 1003. Ele spun explicit cum trebuie să arate un sistem de operare ca să fie un UNIX.
Spre deosebire de standardele obişnuite din calculatoare, acesta este deosebit de bine scris, şi a extras din Sys V şi BSD intersecţia calităţilor iar nu reuniunea lor, plus cîteva din lucrurile foarte bune din BSD. Prima versiune a fost publicată în 1990.
In plus limbajul C a fost standardizat de ANSI (American National Standard Institute).
În fine, X/Open este o coaliţie de fabricanţi şi comercianţi de calculatoare care a extins specificaţiile POSIX cu o grămadă de alte recomandări, de pildă despre sistemele de ferestre sau managementul datelor. Recomandările lor sunt publicate sub numele X/Open Portability Guide.
La mijlocul anilor '80, la universitatea Carnegie Mellon a început un proiect de cercetare în arhitectura sistemelor de operare, folosind un nou sistem de operare numit Mach3. Mach era un sistem revoluţionar, micro-nucleu, care oferea o serie foarte simplă de servicii peste care se puteau construi ca din cărămizi de Lego oricare altele; de exemplu Mach putea executa Unix ca pe un proces şi putea oferi toate serviciile Unix, simultan cu ale unui alt sistem de operare. Mach nu avea nici un fel de restricţii de licenţiere ca Unix, aşa că a devenit extrem de popular; multe sisteme comerciale se bazează pe Mach 2.5: OSF/1, despre care vom vorbi mai jos, şi NextSTEP, al companiei NEXT, fondată de Steve Jobs (cunoscut ca creator al primului calculator Apple).
Sistemul de operare Windows NT (1992) de la Microsoft are o arhitectură extrem de apropiată de Mach.
În 1987 AT&T a cumpărat 20% din ac'tiunile Sun 'si a intrat într-un parteneriat strîns cu Sun pentru a dezvolta noile versiuni de Unix. AT&T a anunţat că Sun se va bucura de tratament preferenţial în ceea ce priveşte accesul la surse; Sun a renunţat complet la nucleul SunOS, bazat pe BSD şi a îmbrăţişat cealaltă versiune, SV. AT&T şi Sun au lansat împreună System V Release 4, sau SVR4. Sistemul de operare de la Sun este numit de atunci încoace Solaris 2.x.
În reacţie, un grup de mari fabricanţi, cuprinzînd IBM, Digital, Hewlet Packard, Apollo a fondat un consorţiu numit OSF (Open Software Foundation) care lupta împotriva dominaţiei AT&T şi Sun în arena UNIX. OSF era finanţată de membrii componenţi şi trebuia să dezvolte o gamă largă de software şi să extindă sistemul Unix în alte direcţii; unele din părţile dezvoltate sunt: un sistem de ferestre grafice (X11, dezvoltat la MIT), o interfaţă grafică (Motif), un mediu de calcul distribuit (DCE -- Distributed Computing Environment), un mediu de management distribuit al resurselor (DME).
Primul sistem de operare al OSF a fost lansat de Digital s-a numit OSF/1 şi era bazat pe o combinaţie de Mach, 4.3BSD şi anumite funcţiuni din nucleul de la IBM, AIX. În plus oferea o sumedenie de avantaje tehnologice care nu se găseau în oferta de la Sun/AT&T (suport pentru multiprocesoare, biblioteci dinamice, etc.)
Ca să se răzbune AT&T, Sun şi alţi comercianţi care se bazau pe SVR4 su făcut un consorţiu numit Unix International (UI).
Cînd doi se ceartă al treilea cîştigă. O scădere economică la începutul anilor '90, rapida evoluţie a performanţei PCurilor şi dominanţa crescîndă a sistemului de operare Windows al Microsoft au oprit creşterea şi au ameninţat supravieţuirea Unix. UI a fost desfiinţată în 1993 iar OSF şi-a îngustat simţitor anvergura planurilor. (Chiar şi sistemul OSF/1 a fost redenumit în 1995 Digital Unix).
A urmat o serie rapidă de schimbări de proprietar pentru marca comercială Unix şi drepturi asupra codului. În 1991 Novell a cumpărat o parte din drepturile asupra Unix de la AT&T şi a lansat propria lui versiune numită UnixWare în 1992. În 1993 Novell a cumparat ce mai rămăsese de la AT&T, iar Sun a cumpărat dreptul de a folosi cod de la Novell. De curînd SCO a cumpărat în întregime Unix de la Novell.
Lupta marilor companii pentru dominanţă a dus aproape la pieirea Unix. Dar un contracurent foarte spectaculos şi-a făcut la apariţia la început pe nesimţite, dar apoi cu din ce în ce mai multă forţă.
Lucrurile au pornit de la un informatician american care lucrează la universitatea ``Frei'' din Amsterdam, Andrew Tanenbaum. În 1987 el a publicat codul unui mic sistem de operare, care pe dinafară seamănă cu UNIX, deşi pe dinauntru este complet diferit (într-un stil micro-nucleu, ca Mach). Sistemul lui Tanenbaum se numea MINIX şi putea fi folosit fără nici un fel de plată în scopuri academice, dar cu restricţii de copiere, modificare şi distribuire. Codul merge pe o varietate de calculatoare şi este excelent comentat. (O a doua ediţie a cărţii şi MINIX 2.0 au fost publicate în 1997.)
Comunitatea utilizatorilor MINIX se bucura de o creştere constantă cînd, în 1992, un student finlandez în vîrstă de 22 de ani, Linus Torvalds, după lectura cărţii în care Tanenbaum dă sursele sistemului lui, modifică iniţial MINIX, scrie un sistem pentru PC cu 80386, şi îl face ``free software'', adică fără restricţii de copiere şi distribuire. Faptul că era ceva mai performant, datorită design-ului tradiţional, a dus la o răspîndire explozivă a sistemului, care are la ora actuală milioane de utilizatori în întreaga lume.
La versiunea actuală de Linux (2.1.10x) au pus umărul mii de programatori pasionaţi din întreaga lume. Fiecare a găsit un bug, a scris un utilitar, a scris o documentaţie. În aceste condiţii codul Linux este de foarte bună calitate (eficient şi fără bug-uri grave) rivalizînd şi surclasînd implementări de firmă. În plus este absolut gratuit.
Colaborarea aceasta a fost posibilă datorită dezvoltării extraordinare a reţelelor de calculatoare. La crearea produsului final au contribuit mii de oameni care nu s-au întîlnit niciodată! Lipsa restricţiilor şi disponibilitatea codului sursă face Linux un candidat ideal pentru cercetare şi dezvoltare. La ora aceasta Linux este considerat de analişti singurul sistem de operare care poate oferi o alternativă solidă dominaţiei totale Microsoft. Cele mai mari firme de calculatoare renunţă încetul cu încetul la variantele lor de Unix speriate de creşterea rapidă a Windows NT. Deşi Windows NT este încă un sistem relativ imatur faţă de Unix, forţa comercială a Microsoft precum şi compatibilitatea cu alte sisteme Windows, care domină 95% din pia't'a sunt ni'ste adversari de temut.
Pentru comparaţie, iată dimensiunile nucleelor în linii de cod-sursă:
Nucleu | Linii |
Linux | 1 milion |
Solaris | 11 milioane |
Windows NT | 40 milioane |
Pe de altă parte Linux se bucură de o creştere constantă, sub directa supervizare a autorului său, Linus, care acum lucrează la o companie nou înfiinţată în California. Linux este pe departe cel mai portat sistem de operare din istorie, funcţionînd pe o gamă extrem de largă de calculatorare şi staţii de lucru, şi pentru care din ce în ce mai multe companii lansează software.
Sistemele Unix comerciale sunt încă nişte realizări impresionante, care oferă funcţionalităţi superioare Linux sau NT.
Unii analişti cred că versiunile de Unix vor dispărea încet din arena jucătorilor ``grei'' economici; ultimul supravieţuitor comercial pronosticat fiind Sun. Mulţi pariază pe o luptă Linux/NT. Ce se va întîmpla însă numai un profet ar putea spune. Oricum, deşi substanţial sub cifra de afaceri a lui Microsoft, sistemele Unix continuă să reprezinte o piaţă de mai multe zeci de miliarde de dolari.
La ora actuală UNIX este singurul sistem de operare care funcţionează simultan pe microcalculatoare şi supercalculatoare. Este practic singurul sistem de operare pentru minicalculatoare şi staţii de lucru. TCP/IP este protocolul folosit pe cea mai mare reţea de calculatoare din lume: Internet, cu sute milioane de abonaţi pe toate continentele.
Eleganţa interfeţelor sale şi calitatea remarcabilă a abstracţiilor pe care le oferă utilizatorilor au influenţat şi vor continua să influenţeze profund arhitectura sistemelor de calcul.
Să ne amintim că totul a început de la un joc.
Informaţiile din acest text sunt extrase dintr-o multitudine de surse. Iată aici unele dintre ele:
Nume | Bazat pe | Fabricant |
AIX | SV | IBM |
A/UX | SV | Apple |
BOS | SV | Bull |
BSD | BSD | University of California at Berkeley (UCB) |
Chorus | SV | Chorus |
Coherent | SV | Mark Williams Company |
EP/IX | POSIX | Control Data Corporation |
FreeBSD | BSD | UCB |
GNU Hurd | Mach | Free Software Foundation |
HP-UX | SV+BSD | Hewlet Packard |
IRIX | SV | Silicon Graphics |
Linux | -- | Linus Torvalds + hackeri |
Minix | clone SV | Tanenbaum (Vrije Universitet Amsterdam) |
Net/2 | BSD | UCB |
NEWS-OS | ? | Sony |
QNX | ? | Quantum Software |
OSF/1 | Mach | DEC, Open Software Foundation |
Plan 9 | - | AT&T |
SCO Xenix | SV | SCO |
SCO Unix | SV | SCO |
Solaris | SV | Sun Microsystems |
SunOs | BSD | Sun Microsystems |
Ultrix | BSD | DEC |
UNICOS | SV | Cray |
UnixWare | SV | Novell |
UTEK | ? | Tektronix |
Xenix | SV | Microsoft |
1968 | Proiectul Multics |
1969 | Unics pentru PDP-7, Bell Labs, AT&T |
1971 | Unix versiunea 1, asamblor PDP11/20 |
1974 | Unix versiuna 4, C |
1975 | Unix versiunea 6, foarte răspîndit |
1978 | 2.x Berkeley Software Distribution (BSD) |
1978 | 3BSD, memorie virtuală |
1979 | Unix V7 ``ultimul Unix adevărat'' |
1980 | 4.0BSD |
1982 | System III, Unix comercial de la AT&T |
1982 | Fondat Sun Microsystems |
1983 | System V |
1983 | 4.2BSD, TCP/IP |
1984 | System V Release (SVR)2; publicată SV Interface Definition SVID |
1984 | X/Open, consorţiu de comercianţi Unix |
1985 | SVID1, SVR2 |
1986 | SVR3, SVID2 |
1986 | 4.3BSD |
1986 | Mach |
1987 | X/Open Portability Guide 2 publicat |
1987 | Alianţă AT&T - Sun |
1988 | SVR4, amestecă SV, BSD, SunOS |
1988 | Se fondează OSF |
1989 | X/Open Portability Guide 3 |
1991 | OSF/1 bazat pe SVR2; micronucleu Mach2.5 |
1992 | Linux e creat |
1992 | X/Open Portability Guide 4 |
1992 | Windows NT 1.0 |
1993 | 4.4BSD; dezvoltarea Unix la Berkeley încetează |
1993 | Novell cumpără Unix System Laboratories |
1993 | Novell vinde dreptul pentru marca UNIX lui X/Open |
1995 | Digital OSF/1 |
1996 | GNU Hurd alfa lansat |
1998 | Solaris 2.6 |
1998 | Windows NT 5.0 (amînat) |
1003.1 | funcţii de bibliotecă, apeluri de sistem |
1003.2 | shell-ul şi utilitarele |
1003.3 | metode de testare |
1003.4 | timp real |
1003.5 | limbajul Ada pentru Unix |
1003.6 | securitatea |
1003.7 | administraţia sistemului |
1003.8 | accesul la fişiere |
1003.9 | Limbajul FORTRAN pentru Unix |
1003.10 | super-calculatoare |
1003.12 | interfeţele independente de protocol |
1003.13 | real-time profiles |
1003.15 | interfeţele pentru supercalculatoare - batch processing |
1003.16 | limbajul C |
1003.17 | servicii de directoare |
1003.18 | POSIX standardized profile |
1003.19 | FORTRAN 90 |