Documente Academic
Documente Profesional
Documente Cultură
2 Distribuţii 5
3 Certificate SUS 5
4 Necertificate 6
5 Designul sistemului 6
6 Componente 7
7 Istorie şi dezvoltare 9
9 FreeBSD 6 şi 7 11
10 Compatibilitate cu Linux 11
12 TrustedBSD 12
14 Fişiere 15
16 Directoare 17
17 Operaţiile cu atribute 19
18 Protecţie 20
Coala
22 Pseudo-perifericele (pseudo-devices) 26
27 Conjunctura 24
28 Un nou limbaj 36
29 O nouă gazdă 37
30 Propagarea 38
31 Divergenţa 38
32 Standardizarea 39
33 Bariera sonică 40
34 Războiul 40
35 Decăderea 41
36 Supravieţuirea 41
37 Încheiere 42
38 Note Bibliografice 42
39 Versiuni de UNIX 43
Bibliografie 44
Recenzie 45
Coala
2. Distribuţii
Sistemele UNIX actuale se bazează pe trei ramuri originale - UNIX System V
(produs de cei de la AT&T la mijlocul anilor 1980), BSD (ramură desprinsă din
proiectul AT&T la sfârşitul anilor 1970) şi respectiv GNU/Linux (produs ca replică
gratuită şi open-source la celelalte două ramuri - nucleul e dezvoltat de Linus Torvalds
începând cu 1991, iar o mare parte din aplicaţii sunt date de Proiectul GNU). Fiecare
distribuţie de astăzi se bazează pe una din aceste ramuri, dar a preluat şi anumite
caracteristici de la celelalte.
Astăzi se află în producţie următoarele variante:
3. Certificate SUS
Solaris - produs de firma Sun Microsystems. Este distribuit atât în versiune
closed-source cât şi in versiune open source numită Open Solaris. Rulează pe
arhitectura SPARC, x86 şi x64.
HP-UX - produs de firma HP. Rulează pe arhitectura PA-RISC şi IA-64
AIX - produs de firma IBM. Rulează pe arhitectura PowerPC şi POWER
Coala
4. Necertificate
Linux (sau GNU/Linux) - produs de multiple organizaţii într-o gama largă
distribuţii, open-source în baza licenţei GNU/GPL şi disponibil gratuit. Rulează
pe diverse arhitecturi, incluzând x86, x64, IA-64, PowerPC, MIPS, PlayStation 2.
BSD - astăzi open-source, şi disponibil în trei distribuţii principale (FreeBSD,
NetBSD şi OpenBSD). NetBSD rulează pe 54 de arhitecturi diferite, fiind portat
inclusiv pe un microcontroller care controla un prăjitor de pâine [1].
5. Designul sistemului
Sistemele Unix sunt bazate pe trei concepte :
fişierul - totul este un fişier - ele sunt fără tip, şi corespund unei anumite resurse,
fie un dispozitiv fizic, o resursă, un mesaj între procese, sau informaţie stocată pe
un dispozitiv fizic sau pe o reţea. Sistemul cunoaşte toate informaţiile necesare
prelucrării (drepturi pe fişier, proprietar, grup de acces)
procesul - procesele (instanţe ale unui program) pot rula în paralel, atât având un
Coala
6. Componente
Sistemele UNIX sunt construite în jurul a mai multe niveluri concentrice,
conţinând fiecare o serie de componente, puse împreună pentru a forma sistemul. Un
sistem UNIX conţine, pe lângă nucleu (kernel), un interpretor de comenzi care serveşte
şi drept limbaj de scripting (numit shell), un set de biblioteci tipice, o serie de aplicaţii
canonice şi cod sursă pentru portabilitate. Nu este necesar ca distribuţiile să conţină
aceleaşi programe sau comenzi - ci doar să respecte anumite standarde şi să aibă un
comportamen previzibil şi similar - astfel, kernelul Solaris nu este acelaşi cu kernelul
HP-UX, iar shellul standard de pe un sistem poate fi complet diferit de cel de pe alt
sistem (populare sunt shellurile bash - Bourne Again SHell, ksh - Korn SHell, tcsh - C
Shell, B
Coala
7. Istorie şi dezvoltare
Mascota proiectului FreeBSD: BSD Daemon
Dezvoltarea iniţială a sistemului FreeBSD a început în 1993, pornind de la sursele
386BSD. Totuşi, din cauza îngrijorărilor privind legalitatea tuturor surselor folosite în
386BSD şi a unui proces între Novell (pe atunci proprietarul drepturilor pentru UNIX)
şi Berkeley, FreeBSD a sfârşit prin reproiectarea unei mari părţi a sistemului pentru
versiunea FreeBSD 2.0 (ianuarie 1995), folosind versiunea 4.4BDS-Lite de la
Universitatea din California, Berkeley. Manualul FreeBSD (în limba engleză) cuprinde
mai multe date istorice despre geneza sistemului de operare FreeBSD.
Poate cel mai notabil câştig al versiunii FreeBSD 2.0 a fost restructurarea sistemului
Mach Virtual Memory (memorie virtuală Mach) al CMU-ului original, care a fost
optimizat pentru performanţă sub încărcări mari, precum şi crearea sistemului de
porturi, care face ca descărcarea, construirea şi instalarea de software din surse terţe
foarte uşoară. FreeBSD echipează situri de mare succes cum ar fi: cdrom.com (un
depozit imens de software care a doborât multe recorduri din internet), Hotmail şi
Yahoo!.
Coala
9. FreeBSD 6 şi 7
FreeBSD 6.1 a fost lansat în 8 mai, 2006, iar 7.0-CURRENT este în dezvoltare
activă. Aceste versiuni continuă să lucreze la optimizări SMP şi threading, la zona
funcţionalităţii avansate a 802.11 şi la auditarea evenimentelor de securitate
TrustedBSD. Realizările primei versiuni ale acestora includ înlăturarea Giant lock din
VFS, înlocuirea bibliotecii libthr cu o implementare 1:1 pentru threading care se execută
mai bine, şi adăugarea unei implementări de audit BSM, numită OpenBSM creată de
proiectul TrustedBSD, care se bazează solid pe implementarea BSD găsită în producţia
Open Source de la Apple: Darwin, publicată sub o licenţă de tip BSD.
12. TrustedBSD
Proiectul TrustedBSD oferă FreeBSD-ului un set de extensii de încredere pentru
sistemul de operare, fiind iniţiat de Robert Watson. Scopul proiectului a fost
implementarea conceptelor de la Common Criteria pentru Information Technology
Security Evaluation (evaluarea securităţii tehnologiei informaţiilor) şi Orange Book.
Acest proiect rămâne încă în dezvoltare, şi multe din aceste extensii de încredere au fost
integrate în lista de dezvoltare a FreeBSD 5.X, 6.X şi acum 7.X-CURRENT.
Pincipalul obiectiv al proiectului TrustedBSD este contribuţia la Access Control
Lists (listele de control al accesului), auditul evenimentului, atribuţii extinse, capacităţi
de acord fin şi mandatory access control (control al accesului obligatoriu). Ca parte din
proiectul TrustedBSD, există de asemenea un port care rulează pe FreeBSD al
implementării FLASK/TE al NSA în SELinux. Contribuţii mai recente includ
dezvoltarea OpenBSM, o implementare open source a API-ului Basic Security Module
(BSM, modul de securitate fundamentală) al companiei Sun şi un format de fişiere
pentru jurnale de audit, care suportă un sistem de audit pentru securitate extinsă care
face parte din FreeBSD 6.1.
Deşi majoritatea componentelor proiectului TrustedBSD sunt incluse în arborele
sursă principal al FreeBSD, aceasta nu este singura lor destinaţie. Multe caracteristici,
odată ajunse la maturitate, îşi găsesc locul în OpenBSD sau Darwin de la Apple
Computer.
Sistemul de operare Unix s-a impus în lumea calculatoarelor datorită multor
Coala
14. Fişiere
Funcţiunea cea mai evidentă a unui sistem de fişiere este de a organiza datele în
fişiere. Acestea pot avea proprietăţi felurite în diferite sisteme de operare. În Unix
fişierele propriu-zise (adică nu directoarele sau alte varietăţi ciudate pe care le discutăm
mai jos) sunt simple array-uri de octeţi din punct de vedere al sistemului de operare;
utilizatorul îşi organizează în aceste array-uri datele cum doreşte. Acest model este
valabil şi în MS-DOS şi Windows. În plus fişierele mai sunt caracterizate de nişte
atribute a căror semnificaţie este importantă pentru sistemul de operare. Atribute tipice
sunt: numele fişierelor, de care utilizatorul se foloseşte pentru a indica fişierele asupra
cărora vrea să facă operaţiile, posesorul fişierului, data la care fişierul a fost creat,
drepturile de acces la fişier, etc. Atributele unui fişier sunt memorate de Unix într-o
structură de date numită inod, de la ``information-node''.
Atributele sunt oarecum secundare funcţiei principale a fişierelor, cea de a
memora date; fişierele puteau fi folosite pentru a memora date chiar şi fără a avea la-
ndemînă atribute. Sistemul de operare însă menţine atributele pentru că s-a observat că
funcţionalitatea pe care acestea o oferă este foarte utilă. Vom vedea că atributele sunt
Coala
Coala
După cum vedeţi operaţiile sunt relativ clare, poate mai puţin mmap(), de care ne
vom ocupa altă dată, într-un articol referitor la sistemul de memorie virtuală (această
funcţie, de altfel foarte importantă, este o aplicaţie imediată a sistemului de memorie
virtuală).
Putem face mai multe lucruri cu un fişier: îl putem crea, îl putem scurta, ne putem
plimba prin el şi putem citi/scrie în el ``petice''. Funcţia fsync() ne asigură că fişierul
ajunge pe disc; sistemele de operare încearcă să ţină cît mai mult timp informaţiile în
memorie pentru că discul este foarte lent comparativ cu memoria şi orice acces la el este
foarte costisitor. Este demn de observat că doar open(), creat() şi truncate() lucrează cu
fişiere date prin nume; celelalte funcţii lucrează cu fişiere deja deschise cu open()
anterior, şi care sunt indicate cu rezultatul dat de funcţia open(). Cînd open() deschide
un fişier returnează un număr întreg care se numeşte descriptor de fişier: ``file
descriptor'', sau ``file handle'' (în traducere ``mîner de fişier''), folosit de alte funcţii
pentru a indica fişierul. Verificarea dreptului de acces se face o singură dată, la
deschiderea fişierului. Toate celelalte operaţii sunt apoi mult mai rapide.1
Funcţia open() poate crea noi fişiere, ca şi creat().
16. Directoare
Sistemul de directoare are ca misiune de a ordona fişierele într-o ierarhie şi de a
le da nume care să fie convenabile utilizatorilor. Un director este un obiect al cărui
``conţinut'' este format din nume de fişiere şi din nume de alte directoare. Directoarele
mai conţin pentru fiecare nume şi numărul inodului care-i corespunde (articolul citat în
introducere vorbeşte mai mult despre asta). Presupunem că cititorului îi este cunoscută
noţiunea de ``cărare'' (path) care descrie un lanţ de directoare care duce la un fişier (de
exemplu /usr/home/mihaib/data/articles/2fs.tex este cărarea care duce la fişierul în care
tocmai scriu acest articol în această clipă.
Să trecem rapid în revistă în tabelul 4 operaţiile (luate din tabelul 1) care lucrează
cu directoare.
Funcţia creat() apare din nou, pentru că schimbă conţinutul unui director atunci
cînd crează un fişier. mkdir() este echivalentul lui creat(), doar că face un nou director.
Un fişier în Unix poate avea mai multe nume. Primul nume apare cînd fişierul
este creat, următoarele se pot adăuga cu funcţia link(). Un nume al unui fişier poate fi
schimbat cu rename(), sau poate fi şters cu unlink(). rmdir() este echivalentul lui
unlink() pentru directoare.
În fine, în Unix există o clasă specială de fişiere numite legături simbolice
(symbolic links), al căror conţinut este numele altui fişier (o cărare). Aceste fişiere se
crează cu apelul symlink().
Dacă fişierul A este o legătură simbolică la B, atunci orice acces la A este
transformat de nucleu într-un acces la B. Pentru că un read() din fişierul A ne arată
automat conţinutul fişierului B, avem la dispoziţie funcţia specială, readlink(), cu care
putem vedea la ce fişier punctează o legătură simbolică.
Legăturile simbolice sunt foarte asemănătoare cu numele fişierelor, dar există o
serie de diferenţe subtile pe care le vom discuta altă dată. Ele au fost create pentru că,
deşi un fişier poate avea mai multe nume create cu link(), ele toate trebuie să se afle pe
acelaşi disc. Pentru a putea avea nume alternative pentru un fişier pe alte discuri decît
cel pe care se află fişierul, se folosesc legăturile simbolice.
URL-urile (Universal Resource Locators), cu care în Internet se indică paginile de web,
sunt o extensie a noţiunii de legătură simbolică: pe lîngă numele unui fişier ele indică şi
Coala
Posesorul
Drepturi de acces
Tipul (director,
18. Protecţie
Cum implementează sistemul de operare Unix protecţia accesului la fişiere?
În primul rînd trebuie să ne fie clar cine poate accesa fişierele. Fişierele sunt
accesate numai de procese (programele care sunt în curs de execuţie). Nu utilizatorii
lucrează cu fişiere2, ci programele lor. Fiecare program are o identitate moştenită de la
programul care a identificat utilizatorul cînd acesta a tastat parola. Pe toate programele
care s-au născut din programul căruia i-am tastat parola mea, scrie undeva ``ăsta e al lui
mihaib'' (numele meu de utilizator).
Atributul ``posesor'' al unui fişier este de aceeaşi natură. Cînd un proces ştampilat
``mihaib'' crează un fişier (cu open(), mknod(), mkdir() sau creat()), acel fişier capătă
aceeaşi ştampilă, care devine atributul ``posesor''. Comanda chown() poate fi folosită
pentru a schimba posesorul unui fişier.
Coala
Observaţi un lucru foarte interesant: decizia dacă un proces are dreptul să facă ceva
cu un fişier depinde numai de drepturile procesului pe fiecare componentă a cărării.
Decizia nu depinde nicidecum de conţinutul fişierului, de pildă. Decizia nu depinde
(aproape) nicidecum de tipul fişierului.
Chiar dacă fişierul este un director, un fişier de date, un fişier special (vom vedea ce
sunt astea mai jos), sau o legătură simbolică, dreptul de acces se verifică în acelaşi fel
(pentru toate fişierele care compun cărarea):
Se compară posesorul din inod cu posesorul procesului care vrea să facă operaţia;
Se compară drepturile din inod-ul fişierului cu tipul operaţiei cerute.
Observaţi că datorită faptului că un fişier poate avea mai multe cărări, accesul pe
diferite cărări poate avea restricţii diferite pentru un acelaşi proces!
Lăsăm ca exerciţiu cititorului ilustrarea aplicaţiilor acestui mecanism de protecţie.
Exemplele abundă: directoarele fiecărui utilizator au drepturi mai mari pentru posesor,
fişierele executabile de către toţi utilizatorii nu pot fi modificate (decît de
administrator), (deci viruşii nu se pot propaga!), se pot folosi directoare publice pentru
fişiere temporare (/tmp), poşta electronică poate fi stocată în fişiere ordinare fără frică
de violare a secretului corespondenţei, serverele de comunicaţie în reţea (ex.: ftp, www)
lucrează pe o ierarhie de directoare izolată de cea principală a sistemului (cu chroot()3),
etc.
Numele fişierelor speciale nu sunt prea bine standardizate; fiecare sistem va numi
Coala
Coala
vom afla ce se află în memoria fizică a maşinii la adresa 1000! (Fireşte, presupunînd că
drepturile de acces ne permit acest lucru.)
Alte fişiere bizare: /dev/null este un fişier de lungime 0, în care orice se scrie se
pierde (nu are nici un efect). Este extrem de util într-o sumedenie de circumstanţe. De
pildă dacă nu vrem să vedem erorile care pot fi generate de o comandă, putem să rugăm
comanda să scrie aceste erori ``în'' fişierul /dev/null: ls -R /var/spool/ 2>/dev/null.
Încă odată: protecţia accesului la pseudo-periferice se face în acelaşi fel, de către
codul din sistemul de fişiere care caută în directoare.
1. Footnotes
... rapide.1
Dezavantajul este că o schimbare a drepturilor de acces nu are nici un efect pentru
procesele care au deschis anterior fişierul!
... siere2
Un utilizator poate ``accesa'' discul doar cu un ciocan.
...chroot()3
În Unix nu numai noţiunea de ``director curent'' este alta pentru fiecare proces, dar
fiecare proces are propriul lui ``director rădăcină''.
... aici4
Diferenţa este că cele bloc se pot accesa fizic numai în blocuri de informaţie de
mărime fixă, iar cu cele caracter se pot transfera cantităţi arbitrare de informaţie.
Altă diferenţă este că se pot plasa sisteme de fişiere decît pe periferice de tip bloc
altor sisteme de operare performante, cel mai recent exemplu fiind sistemul de operare
Coala
Coala
Contents
Conjunctura
Faptele
Un nou limbaj
O nouă gazdă
Propagarea
Divergenţa
Standardizarea
Bariera sonică
Războiul
Decăderea
Supravieţuirea?
Încheiere
Note Bibliografice
Versiuni de UNIX
Cronologie
Standardul POSIX 1003
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.
27. Conjunctura
Putem coborîpe firul timpului pentru a regăsi rădăcinile UNIX pînă la zilele de
Coala
Faptele
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.
30. Propagarea
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.
31. Divergenţ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,
Coala
Numai pentru calculatoarele din familia PC există mai multe UNIXuri mititele:
XENIX, Coherent, 386BSD, Minix, Linux, etc.
32. Standardizarea
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ă:
Coala
34. Războiul
Î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.
Coala
35. Decăderea
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.
36. Supravieţuirea?
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.
Coala
Nucleu Linii
Linux 1 milion
Solaris 11 milioane
Windows
40 milioane
NT
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.
37. Încheiere
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.
Coala
2. Footnotes
... 8/321
Investigaţii istorice au arătat că prima portare a fost de fapt făcută la universitatea
Wollongong din Australia, urmată la scurtă durată de o portare făcută de Bell Labs.
... Agency)2
O mare parte din cercetarea tehnologică în Statele Unite este sposorizată de
DARPA.
... Mach3
Ernst Mach este un mare fizician din secolul 20; 1 Mach este şi unitatea de măsură
a vitezei egală cu viteza sunetului; de aici şi titlul acestei secţiuni.
Coala
Coala
Coala