UNIX

UNIX® este un sistem de operare inițiat de un grup de programatori de la AT&T Bell Labs, printre care Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy și Joe Ossanna. Astăzi există mai multe variante (implementări) ale sistemului, acestea fiind dezvoltate atât de firme comerciale cât și de indivizi și organizații non-profit (precum Free Software Foundation).

Trademark-ul UNIX aparține organizației The Open Group care îndeplinește rolul de standardizare și certificare. Oficial, poate fi numit UNIX doar un sistem de operare care a trecut de certificarea Single Unix Specification a acestei organizații. O mare parte din producători (mai ales cei non-profit) au ales, atât din cauza prețului cât și din cauza dezvoltării foarte rapide a distribuției lor, să nu-și certifice sistemele. Acestea, cu toate că sunt perfect sau aproape perfect compatibile cu standardul, sunt numite în mod comun „compatibile UNIX”, U*ix sau *nix. Astfel de sisteme nu sunt cu nimic inferioare celor certificate, iar în momentul de față dețin supremația din punct de vedere al bazei instalate.

Spre sfârșitul anilor 1970 și începutul anilor 1980, influența sistemului de operare UNIX în mediile academice a dus la o răspândire explozivă a sistemului (în principal varianta BSD, provenită de la Universitatea Berkeley din California). Sistemul a fost preluat și dezvoltat mai departe ducând la apariția unor variante precum Solaris, HP-UX și AIX. Pe lângă sistemele certificate, întâlnim astăzi o serie de descendenți BSD (FreeBSD, NetBSD și OpenBSD) precum și sisteme mai noi cum ar fi Linux. Termenul UNIX tradițional este folosit pentru a descrie un sistem cu caracteristici similare cu  sau UNIX System V.

Istoric

Prima versiune de UNIX, bazată pe Multics,  a fost elaborată în 1969 de Ken Thompson și Dennis Ritchie din grupa de cercetare de la Bell Laboratories, pentru a rula pe un calculator PDP-7. A doua versiune a fost scrisă pentru calculatorul PDP 11/20, iar a treia versiune, în limbajul C, necomercială, pentru calculatoare PDP 11/45 și 11/70, a apărut în 1973. 

Prima versiune comercializată de Bell Labs a fost V6, în 1976.

În anul 1978 este distribuită versiunea V7, care putea lucra pe calculatoarele PDP 11/70, Interdata 8/2 și VAX, minicalculatoarele de 32 de biți ale firmei DEC (versiunea 32V). Această versiune a fost distribuită gratuit în toate universitățile din S.U.A. ceeace a dus la creșterea popularității Unix-ului în mediile universitare.

În această perioadă se crează la AT&T Unix Support Group (USG) pentru distribuirea sistemului de operare UNIX. Bell Labs a continuat cercetările proprii, elaborând în 1985 versiunea V8, disponibilă numai în interiorul laboratoarelor.

Prima versiune distribuită de USG a fost System III, în 1982, care a incorporat facilitățile din V7 și 32V. În 1983, USG lansează noua versiune, System V. După reorganizarea USG în USDL (Unix System Development Laboratory) se livrează, începând cu 1984, System V-Release 2 (V2).

Numeroase alte firme (Remington Rand, DEC) și universități (California, Illinois, Harvard), au declanșat cercetări similare asupra Unix.
La Universitatea Berkeley din California s-au realizat versiunile BSD BSD-3 și BSD-4, pentru calculatoare VAX, care reprezintă îmbunătățiri ale versiunii 32V. În BSD 4.1 se introduc facilități de gestiune a memoriei virtuale prin paginare la cerere, iar in BSD 4.2 facilități de lucru în rețele locale Ethernet, sau rețele extinse  ARPANET. În plus, a fost creată o nouă interfață utilizator (C-Shell), noi editoare de texte (VI și Ex), noi compilatoare pentru PASCAL și LISP etc.

În 1985, AT&T încearcă să impună o versiune standard, ca singură alternativă de evoluție a propriului sistem și elaborează prima versiune a normelor SVID (System V Interface Definition).

După lansarea de către AT&T a System V-Release 4 (V2) în1988, IBM, Hewlett-Packard, DEC, Hitachi și Philips crează Open Software Fundation (OSF) ce reprezintă o acțiune de contracarare a atitudinii de monopolizare a AT&T. Scopul declarat al societății OSF este de a dezvolta un sistem UNIX standard și deschis, bazat pe sistemul IBM AIX.

La definirea standardelor UNIX roluri importante au avut și alte organisme internaționale precum IEEE (The Institute of Electrical and Electronics Engineers) prin
normele POSIX (Portable Operating System Interface) și X/Open. Scopul declarat al acestor organizații este de a dezvolta sisteme de operare deschise (în format deschis).

Prezentare generală 
Sistemul de operare Unix este folosit pe scară largă atât pentru servere cât și pentru stații de lucru. Mediul de dezvoltare Unix și modelul de programare client-server au fost esențiale în dezvoltarea Internetului și trecerea de la sistemele de calculatoare individuale la sistemele de calculatoare în rețea.

Atât Unix-ul cât și limbajul de programare C au fost dezvoltate de AT&T și distribuite guvernului și instituțiilor academice, ceea ce a dus la portarea lor pe un număr mai mare de calculatoare diferite decât orice alt sistem de operare. Astfel, UNIX-ul a devenit în informatică sinonim cu noțiunea de sistem deschis (open system).

Sistemul de operare UNIX a fost conceput de la bun început ca portabil, multi-user și multi-tasking, și este caracterizat de următoarele concepte informatice de bază: datele sunt stocate în format text simplu într-un sistem de fișiere ierarhic; dispozitivele și toate elementele IPC (inter-process communication) sunt văzute ca fișiere; se folosește pe larg linia de comandă; în loc de programe monolitice masive se preferă programe simple care au o singură funcție, aceste programe fiind cascadate folosind facilitatea pipe pentru a obține funcționalitatea dorită.

Sistemul UNIX constă din totalitatea acestor programe și a unui program master care controlează sistemul. Acest program poartă numele de nucleu sau kernel și oferă servicii precum: pornirea și oprirea altor programe; accesul la sistemul de fișiere; gestionarea resurselor și dispozitivelor hardware, etc.

Standardizare 
Prima încercare de standardizare a sistemelor de tip UNIX a avut loc în cadrul proiectului ARPA și a fost documentată în RFC 681. Documentul descrie cerințele sistemului Unix pentru a fi folosit ca un ARPANET mini-host. ARPANET avea să devină mai târziu Internetul din ziua de astăzi. Procesul de evaluare a fost de asemenea bine documentat.

Începând cu sfârșitul anilor 1980, un efort de standardizare cunoscut sub numele de POSIX a asigurat o bază comună pentru toate sistemele de operare de tip UNIX. POSIX este un standard deschis, bazat pe structurile comune de date întâlnite în sistemele UNIX concurente pe piață la vremea respectivă. Standardul POSIX a fost publicat de IEEE în anul 1988. Un efort similar a avut loc la începutul anilor 1990 sub numele de Common Open Software Environment (COSE) Initiative și este administrat de The Open Group. O nouă activitate de standardizare a fost pornită în 1998 de către Austin Group cu scopul de a uni cele două specificații anterioare (POSIX și COSE) sub numele de Single UNIX Specification.

În anul 1999, un număr de furnizori de sisteme UNIX au convenit asupra unui nou standard care vizează de data aceasta formatul binar folosit de programele din sistemele UNIX. Specificația se numește SVR4's Executable and Linkable Format (ELF) și oferă o compatibilitate binară substanțială între diversele versiuni de UNIX, cât timp tipul de procesor folosit este același.

Alt standard folosit în UNIX este The Filesystem Hierarchy Standard. A fost creat ca un layout de referință pentru sistemul de fișiere. Este folosit pe larg în ziua de astăzi în special în Linux.

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. 

Principalele tipuri de distribuții UNIX aflate în producție la ora actuală sunt:
 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, IA-32 și x86-64.
 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.
 IRIX - Produs de firma SGI. Rulează pe arhitectura MIPS.
 MacOS X - Produs de compania Apple pentru calculatoarele Macintosh. Este software comercial, bazat pe o combinație de FreeBSD, nucleul Mach și tehnologii specifice Apple. Rulează pe arhitectura PowerPC și x86.
 GNU - Produs de către proiectul GNU pentru a creea o alternativă liberă a sistemului UNIX. Mulți oameni se referă la sistemul GNU complet ca GNU/Hurd pentru a evidenția faptul că folosește nucleul Hurd și nu nucleul Linux. Rulează pe IA-32.
 Linux - Produs de multiple organizații într-o gama largă de distribuții, liber și open-source în baza licenței GPL (licența) și, în majoritatea cazurilor, disponibil gratuit. Rulează pe diverse arhitecturi, incluzând IA-32, x86-64, IA-64, PowerPC, MIPS, PlayStation 2. Majoritatea distribuțiilor Linux îl distribuie împreună cu utilitățile sistemului de operare GNU, ceea ce îi face pe mulți oameni să se refere la aceste distribuți ca GNU/Linux.  Dintre distribuțiile Linux cele mai importante amintim: Arch, Debian GNU/Linux, Fedora, Gentoo, Knoppix, Mandrake Linux, Parabola, Red Hat Linux, Slackware, SuSE Linux și Ubuntu.
 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 .

Componente 

Sistemele UNIX sunt construite din mai multe niveluri concentrice de software, conținând fiecare o serie de componente. 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 comportament 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, C Shell și tcsh).

Componența generală a sistemelor UNIX este :

Kernel 
În general, UNIX folosește un nucleu monolitic care are posibilitatea de a încărca module suplimentare. Aceasta este o trăsătură comună a nucleelor UNIX începând cu System 5 și până în ziua de astăzi în distribuțiile Linux și BSD. Nucleul Hurd este o excepție de la această regula, fiind un micronucleu.

Mediu de dezvoltare 
UNIX are un mediu suficient pentru a reconstrui tot sistemul direct din codul sursă. Canonice sunt un compilator de C (cc), un assembler (as) , un linker pentru combinarea fișierelor obiect (ld), un set tipic de biblioteci pentru limbaj (lib), un sistem de automatizare a compilării (make), și eventual alte limbaje de programare și scripting (C, C++, Java, Perl, Python, Fortran, COBOL, Pascal), programe de arhivare (ar, tar, gzip, bz2, xz, zip, rar, p7zip), unelte pentru dezvoltarea de compilatoare etc.

Comenzi UNIX 
În UNIX comenzile se introduc într-un anumit program intitulat shell. Acesta este pornit automat de sistem în momentul în care utilizatorul este autentificat. În general, nu se face o distincție între aplicații de sistem și aplicații de uz general. Există însă un set de comenzi generale care pot fi întâlnite pe orice sistem UNIX, comenzi standardizate de organizația The Open Group. Aceste comenzi sunt necesare pentru interacționarea cu sistemul și lucrul cu fișierele.

Interfață grafică 

Pe lângă aceste comenzi, o distribuție modernă UNIX vine cu un server grafic (X11 sau X Server), care implementează sistemul de ferestre și controlează tastatura și mausul. X11 s-a impus de la bun început ca standard de interfață grafică pentru sistemele UNIX. Cea mai des folosită implementare de server X11 este cea a Fundației X.Org și este folosită atât de distribuțiile libere BSD și Linux, cât și de versiunile UNIX proprietare cum ar fi Solaris de la Sun Microsystems. 

X11 nu specifică modul în care trebuie să arate ferestrele și elementele grafice de pe ecran. Acestea se particularizează cu ajutorul unui manager de ferestre și/sau a unui mediu desktop. Primul astfel de sistem de particularizare a fost OPEN LOOK.  Dezvoltat la sfârșitul anilor 1980 de AT&T, Sun Microsystems și XEROX, a încercat să se impună ca un standard fără să reușească. Alternativa s-a numit Motif și a fost dezvoltată de o serie de firme competitoare. În ziua de azi, OPEN LOOK și Motif sunt foarte rar folosite, și au fost înlocuite de noi medii grafice precum GNOME, KDE, MATE, Cinnamon, xfce, etc.

Aplicații UNIX 
UNIX oferă utilizatorilor accesul la o serie extinsă de programe, atât servere cât și aplicații. Practic, sunt acoperite toate domeniile de activitate, de la IDE-uri pentru programare, servere web și calcul științific până la browsere, procesoare de text și jocuri - spre exemplu, o parte din distribuții vin cu browserul Firefox.

Sisteme UNIX libere 
În anul 1983, Richard Stallman a anunțat proiectul GNU, un proiect ambițios al cărui scop este crearea unui sistem UNIX liber, în sensul că oricine obține o copie a sistemului de operare poate să-l utilizeze, studieze, modifice și distribuie mai departe. Printre pachetele de bază ale sistemului GNU amintim gcc - GNU Compiler Collection , glibc - GNU C library și GNU core utilities. Kernelul oficial al sistemului este Hurd, dar de cele mai multe ori este distribuit cu kernelul Linux.Numele de Linux vine de la numele lui Linus Torvalds, inițiatorul proiectului. Prima versiune Linux a apărut în anul 1991, și a fost publicată sub licență GNU General Public License. 

Multe organizații distribuie Linux și GNU întru-un "pachet" numit distribuție. O serie de distribuții precum Red Hat Enterprise Linux, Fedora, SUSE Linux Enterprise, openSUSE, Debian, Ubuntu, Mandrake, Slackware și Gentoo au devenit foarte populare atât în rândul utilizatorilor profesioniști cât și în rândul utilizatorilor neprofesioniști.

O derivată gratuită a sistemului BSD UNIX a fost lansată în anul 1992 sub numele de 386BSD, și a dus mai târziu la apariția unui număr de alte variante gratuite precum NetBSD, FreeBSD, OpenBSD, DragonFly BSD etc.

GNU și BSD ocupă în momentul de față o bună parte din piața ocupată în mod tradițional de sistemele UNIX proprietare, și se extind pe piețe noi precum piața de calculatoare personale, dispozitive mobile, dispozitive embedded. Datorită designului, multe bucăți de software sunt comune tuturor acestor sisteme. O bună parte din codul sistemelor Linux provine din BSD, în timp ce distribuțiile gratuite BSD folosesc pe larg software GNU.

OpenSolaris este o adiție relativ recentă pe lista variantelor open-source de sisteme UNIX. Include o serie largă de utilitare de sistem GNU, și este în mod curent singura derivativă open-source de UNIX System V.

Note

Lectură suplimentară
Dodescu Gh., Vasilescu, A.: Sisteme de operare MS-DOS și UNIX, București, Editura Viața Românească, 1994
Zota, R. D.: Sistemul de operare UNIX - Utilizare și programare shell, București, Editura ASE, 2003
Răzvan Daniel Zota, Adrian Vasilescu: Sisteme de operare – Unix și Windows, Editura ASE,  2015, ISBN: 978-606-505-875-0
Ignat Iosif, Adrain Kacso: UNIX Gestionarea Proceselor, Editura Albastra, 2006, ISBN: 973-650-133-7 
Baranga Andrei: Introducere in sistemul de operare UNIX, Editura Albastra, 2007, ISBN: 978-973-650-206-4

Vezi și
 Unix-like

Legături externe 

  Unix.org
  The Evolution of the Unix Time-sharing System 
  The Open Group UNIX System Homepage 
  The Unix and Linux Forums
  UNIXhelp for users 
  The Creation of the UNIX Operating System 
  The Unix Tree: files from historic releases
  Open Directory Project 

Familii de sisteme de operare
UNIX