Simpatie.ro - matrimoniale
HackThePlanet
Bine ati venit pe HackThePlanet forum
Nou pe simpatie:
mariana_n23 la Simpatie.ro
Femeie
24 ani
Brasov
cauta Barbat
29 - 52 ani
HackThePlanetInregistrareLoginPozeNu sunteti logat. Lista Forumurilor Pe Tematici
HackThePlanet / Linux / Unix / Evolutie Pagini: 1  
#1
reykon
Administrator
Postari: 16
Sistemul de operare Unix

Generalităţi

Sistemul de operare UNIX este un sistem de operare cu multiprogramare cu sisteme sofisticate de alocare a resurselor şi gestiune automată a memoriei. ~n acest sens se poate spune că UNIX este un sistem de operare de tip time-sharing, multitasking şi multiutilizator.
Sistemele de operare cu divizare `n timp (time-sharing) alocă proceselor gata de execuţie, prin strategia de alocare a resurselor de calcul, succesiv, câte o cuantă de timp, până la execuţia completă.
Sistemele multitasking sunt sistemele care pot executa mai multe programe simultan, având implementată o anumită strategie de alocare a resurselor.
Sistemele multiutilizator sunt sistemele ce permit lucrul mai multor operatori simultan având implementate mecanisme de protecţie şi de partajare a accesului la resursele sistemului.
O altă caracteristică a sistemului de operare UNIX este faptul că promovează modularitate permiţând extinderea simplă a funcţiilor sistemului de operare ceea ce duce la creşterea continuă a performanţelor acestuia. De asemenea, pentru operaţiile de intrare/ieşire sunt utilizate aşa-numitele intrări/ieşiri generalizate prin asocierea a câte unui fişier de tip special fiecărei intrări/ieşiri. ~n scopul realizării mediului multitasking există un sistem de gestiune a proceselor reentrante şi asincrone multiple, care se pot sincroniza prin intermediul unui sistem de `ntreruperi logice. Gestiunea memoriei se face printr-un mecanism ce permite schimbul de pagini `ntre memoria RAM şi cea extinsă, gestionându-se spaţiul afectat execuţiei proceselor şi controlându-se timpul de acces la procesele `n aşteptare.
Pentru interacţiunea cu utilizatorul, sistemul de operare UNIX dispune de o interfaţă simplă şi interactivă prin intermediul componentei SHELL, care nu este integrată `n nucleul sistemului de operare (KERNEL).
Componenta SHELL reprezintă mecanismul prin care sistemul de operare realizează interfaţa `ntre utilizator şi sistemul de calcul. Această componentă reprezintă un interpretor de comenzi care citeşte liniile introduse de către utilizator şi determină execuţie comenzilor solicitate. Printre cele mai populare componente SHELL, se poate menţiona Bourne SHELL (sh), Berkeley C SHELL (csh) şi Korn SHELL (ksh). Aceste SHELL-uri sunt orientate pe text. Pentru facilităţi grafice printre cele mai cunoscute programe SHELL sunt: Graphic Interface a firmei Macintosh sau Presentation Manager al lui IBM. Există `nsă şi un număr de interfeţe grafice pentru UNIX: sistemul X/Window de la MIT folosit şi de firma SCO `n produsul ei OPEN DESKTOP. OpenLook al firmelor AT&T şi SUN şi, `n sfârşit, produsul DECwindows al firmei DEC.
Prin scrierea sistemului de operare `n limbajul C, s-a obţinut o portabilitate atât a sistemului UNIX propriu-zis, cât şi a programelor de aplicaţie dezvoltate sub acest sistem, realizându-se astfel şi dezideratele de sistem deschis. Prin portabilitate se `nţelege proprietatea unui program de a putea fi executat pe sisteme de calcul cu structuri fizice (`n special unităţi centrale) diferite.
Multe sisteme de calcul cu sisteme de operare UNIX crează posibilitatea ca utilizatorii săi să poată rula şi aplicaţii MS-DOS, `n paralel cu aplicaţiile de bază rulate sub UNIX.
Spre deosebire de sistemul de operare DOS care este utilizat exclusiv pe calculatoarele de tip PC, sistemul de operare UNIX este utilizat pe toate tipurile de calculatoare, `ncepând de la calculatoare de tip PC până la supercalculatoare.
~n esenţă, orice sistem de operare UNIX conţine un nucleu, una sau mai multe componente SHELL şi un sistem bogat de fişiere.

Structura generală a sistemului de operare UNIX

Ca orice sistem de operare, UNIX asigură mecanisme pentru gestionarea resurselor sistemului de calcul şi o interfaţă pentru utilizatori şi programele de aplicaţii. O primă caracteristică a acestui sistem de operare este reprezentată de faptul că interfaţa cu structura fizică a sistemului de calcul nu se face prin intermediul programului BIOS. UNIX are propriile rutine pentru interacţiunea cu sistemul fizic al calculatorului. Din acest motiv, după ce a fost `ncărcat `n memorie interacţiunea cu componenta hardware este făcută direct (ignorându-se programul BIOS) de către nucleul sistemului de operare.


Structura de programe a sistemului de operare UNIX este alcătuită din trei componente majore :

nucleu (Kernel);
sistemul de fişiere (SF) ce cuprinde programe utilitare, aplicative şi programe de gestiune I/E;
SHELL.

Relaţiile `ntre cele trei module principale ale sistemului se realizează prin:

apeluri sistem;
utilitare;
proceduri standard folosite de limbajul C;
programe de gestiune a intrărilor/ieşirilor, furnizate odată cu sistemul şi diferite de la un sistem de calcul la altul.

Interfeţele oferite utilizatorului de către sistem sunt organizate pe trei niveluri:

nivel exterior nucleului (prin utilitare);
nivel intermediar oferit de funcţiile din biblioteca standard C;
nivel scăzut oferit de funcţiile sistem.

Nucleul sistemului de operare UNIX este partea centrală a sistemului asigurând servicii sistem către programele de aplicaţie pentru realizarea gestiunii proceselor, a memoriei, a intrărilor/ieşirilor şi a timpului. Nucleul gestionează memoria reală, alocă procesorul `n mod automat şi furnizează răspunsul pentru funcţiile sistem (system calls) apelate de procesele de aplicaţie. Sistemul UNIX creează şi distruge frecvent procese. De exemplu, ori de câte ori un utilizator introduce o comandă, SHELL-ul crează un proces separat pentru a rula fişierul executabil asociat comenzii. Fiecare proces posedă o regiune de text (cod), o regiune de date, o stivă şi structuri de date nucleu asociate, care constituie mediul procesului. ~n mod normal mediul procesului include conţinutul registrelor, prioritatea procesului şi o listă a fişierelor sale deschise. Procesele nu pot să-şi modifice direct mediul asociat, ci doar să solicite modificări prin intermediul funcţiilor sistem. Procesele pot fi terminate voluntar (prin apelul funcţiei sistem exit) sau involuntar ca rezultat al acţiunilor ilegale, al semnalelor sau al `ntreruperilor generate de utilizator.

Accesul `n sistem

Spre deosebire de sistemele de operare DOS şi Windows, sub sistemul de operare UNIX, mai mulţi utilizatori pot folosi calculatorul `n acelaşi timp, executând independent diferite aplicaţii. ~n primul rând pentru a avea acces la un sistem UNIX, utilizatorul trebuie să primească un cont. Din punct de vedere al utilizatorului contul este reprezentat de un nume şi o parolă. Din punct de vedere al administraţiei, un cont `nseamnă evidenţa utilizării resurselor la care utilizatorul are drept de acces.
Utilizatorii unui sistem de operare UNIX se `mpart `n două mari categorii: superutilizatorul - administratorul de sistem (superuser) şi utilizatorii obişnuiţi (users).
Superutilizatorul sau administratorul de sistem (superuser) are drepturi de acces nelimitate `n sistem şi are ca sarcină principală administrarea şi `ntreţinerea sistemului de operare. Numele superutilizatorului va fi `ntotdeauna root.
Utilizatorii obişnuiţi (user) au drepturi de acces limitate `n sistem, drepturile de acces putând fi extinse sau ridicate de către administratorul de sistem. Utilizatorii obişnuiţi pot forma grupuri de utilizatori cărora administratorul de sistem (superutilizatorul) le poate acorda drepturi comune sau individuale.

Structura fişierelor sub sistemul de operare UNIX

Una din cele mai importante funcţii ale unui sistem de operare este gestionarea fişierelor proprii şi ale utilizatorilor. Pentru a putea fi folosite, fişierele trebuie, pe de o parte, să fie uşor de memorat şi uşor de gestionat, iar, pe de altă parte, trebuie să fie de dimensiuni adecvate mediului fizic accesibil. Aceste cerinţe impun ca sistemul de fişiere să aibă o structură logică eficientă şi o structură fizică potrivită pentru dispozitivele utilizate `n memorarea fişierelor.

Tipuri de fişiere

~n concepţia UNIX, un fişier este un şir de caractere terminat printr-o marcă de sfârşit de fişier, considerându-se uneori că un fişier este constituit dintr-un set de linii, fiecare linie terminându-se cu un caracter de linie nouă, care este generat de la tastatură atunci când se tastează ENTER.
Fiecărui utilizator i se atribuie un director care conţine fişierele acestuia, numele de fişiere având până la 14 caractere, cu excepţia blancului. Sistemul UNIX face deosebirea `ntre caractere mari şi mici. Este permisă utilizarea punctului (.) `n cadrul numelui fişierelor, apărând astfel posibilitatea diferenţierii `ntre mai multe fişiere `nrudite.
Sistemul de operare UNIX System V recunoaşte patru tipuri de fişiere: fişiere obişnuite, speciale, director (catalog) şi FIFO.

Fişiere obişnuite

    Un fişier obişnuit este privit de către sistemul de operare ca un şir de octeţi, fără o organizare logică specială. Un astfel de fişier poate conţine informaţii precum:

informaţie binară (pentru un fişier `n format executabil);
linii de text, separate de caracterul NewLine (cod ASCII 10H).

Structura logică a informaţiei din fişier cade exclusiv `n sarcina programului.

Fişiere speciale

O particularitate care diferenţieză sistemul UNIX de alte sisteme de operare este asocierea dispozitivelor periferice cu fişiere speciale. Fişierele speciale sunt citite/scrise, din punct de vedere al utilizatorului, exact ca şi cele obişnuite, rezultatul unei astfel de operaţii fiind activarea driver-ului dispozitivului asociat. Un program de aplicaţie poate, deci, utiliza aceeaşi sintaxă pentru a accesa un fişier obişnuit sau unul special.
Unui dispozitiv periferic `i este asociat cel puţin un fişier special, care va conţine `ntotdeauna informaţii despre programul de comandă al acestui periferic (driver-ul său). posibilitatea de a trata perifericele ca fişiere speciale asigură următoarele avantaje:

simplitate şi eleganţă prin utilizarea unor comenzi similare pentru fişiere şi dispozitive periferice;
fişierele speciale beneficiază de mecanismul de protecţie al fişierelor.

Fişiere director

Fişierele director reprezintă o modalitate de a structura logic sistemul de fişiere. Informaţia din directori este organizată ca o tabelă care conţine câte o intrare pentru fiecare fişier din acel director. O astfel de intrare memorează identificatorul intern (i-number) şi numele fişierului. Fiecare utilizator dispune de un director propriu `n care `şi poate crea propriile fişiere şi care se numeşte home directory.
Fişierul director poate conţine orice tip de fişiere. El nu poate fi citit sau scris `n mod direc, ci doar prin intermediul anumitor programe (ls, mv, rm, ln etc).

Fişiere de tip FIFO

Fişierele de tip FIFO sunt fişiere speciale utilizate pentru realizarea comunicaţiei `ntre procese prin mecanismul de conductă (pipe).

Structura arborescentă a sistemului de fişiere

~n sistemul de operare UNIX fişierele sunt organizate `ntr-un sistem de fişiere cu structură arborescentă. O astfel de structură reprezintă un mod de organizare eficient, deoarece permite utilizatorilor să-şi creeze medii proprii de lucru şi săşi grupeze logic fişierele. Toate fişierele sunt structurate `n directori, organizate ierarhic, `n vârful ierarhiei (la rădăcina arborelui) aflându-se un director particular numit rădăcină (root), notat cu simbolul linie de `mpărţire - slash (/).

Protecţia fişierelor. Drepturi de acces.

Toate sistemele UNIX includ o schemă formală a drepturilor de acces la fişiere, care prevede `n general că utilizatorii obişnuiţi au deplin acces la propriile lor fişiere şi acces restrâns la fişierele de sistem. Schema de acces la fişiere prevede trei drepturi de acces: read (r) – citire, write (w) – scriere şi execute (x) – execuţie şi trei categorii de utilizatori: user (u) - proprietar, group (g) - grup şi others (o) - ceilalţi utilizatori. Rezultă că vor trebui să existe 9 (3 drepturi de acces * 3 categorii de utilizatori) poziţii pentru precizarea completă a acestor drepturi. Pentru fişiere, semnificaţia drepturilor de acces reiese din numele acestor drepturi, write incluzând şi posibilitatea de ştergere. Pentru fişierele director, drepturile de acces au alte semnificaţii:

read – există posibilitatea de listare a directorului cu comanda ls;
write – se pot crea/şterge fişiere director;
execute – se poate parcurge directorul pentru accesul la fişierele conţinute.

Drepturile de acces pot fi vizualizate cu comanda ls, cu opţiunile:

l (forma lungă;
a (toate intrările);
t (sortează după tipul ultimei modificări);
r (ordine inversă.

~n urma comenzii pe ecran este afişat un text de forma:
drwxrwxr-x  6  John   staff       678    Feb  20  12:23  ·
drwxrwxr-x  9  Mary  staff       512    Ian   15  10:04  ··
drwxrwxr-x  1  Nick   staff       139    Mar 11  15:20   carte
-rwxr-x---     2  Ioan    system   3445  Feb  13  11:10   program
drw----------  1  Fred   staff        567    Feb  19  17:30   program1

Primul caracter dintr-o linie indică tipul fişierului: director (d), fişier special (b sau c) sau fişier ordinar (-). Următoarele nouă caractere descriu drepturile de acces ale proprietarului fişierului (primele trei caractere), membrilor grupului (următoarele trei) şi celorlalţi utilizatori (ultimile trei caractere). Literele r, w, x sunt `ntotdeauna listate `n această ordine; prezenţa unei litere indică acordarea dreptului respectiv, iar semnul minus – indică absenţa dreptului respectiv. Următoarele coloane indică, `n ordine, numărul de legături, numele proprietarului, numele grupului, numărul de caractere din fişier şi data la care fişierul a fost modificat ultima oară.
Schimbarea drepturilor de acces se face cu comanda chmod. ~n această comandă este necesar să fie specificate următoarele informaţii:

pentru ce persoane se stabilesc drepturile de acces;
care sunt drepturile care se modifică;
care este fişierul ale cărui drepturi de acces se modofică.

Pentru persoanele ale căror drepturi de acces se stabilesc pot fi folosite caracterele u (utilizator), g (grup), o (alţii) sau a (toţi). Pentru drepturile care se modifică elementele se dau sub forma unui grup de două caractere. Primul caracter este + (pentru acordarea dreptului) sau – (pentru retragerea dreptului) urmat de unul din caracterele r, w sau x (al doilea caracter) care se referă la dreptul de acces `n discuţie.

Montarea volumelor `n arborele sistemului de fişiere

Orice disc UNIX pe care se pot crea mai multe partiţii poate să conţină mai multe sisteme de fişiere (`n general un disc flexibil conţine doar un singur sistem de fişiere). Nucleul UNIX are un sistem de fişiere propriu care conţine comenzile necesare gestionării sistemului (root file system).
Toate sistemele de fişiere, cu excepţia lui root file system care este mereu activ, pot fi sau nu `ncorporate `n structura accesibilă la un moment dat. Dacă un sistem de fişiere este accesibil, se spune despre el că este montat. Fiecare volum UNIX conţine un sistem propriu de fişiere, cu o rădăcină ce poate fi ataşată la root file system prin operaţia de montare, care `l extinde pe acesta din urmă cu subarborele corespunzător volumului care s-a montat. Este posibilă şi operaţia inversă când un volum UNIX este făcut inaccesibil prin demontare. Comenzile de montare şi demontare a volumelor sunt accesibile numai superutilizatorului (administratorului sistemului).

Operarea sub sistemul de operare UNIX

Aşa cum s-a arătat, sistemul de operare UNIX admite două categorii de utilizatori: superutilizatorul (sau administratorul de sistem) şi utilizatorii obişnuiţi. Pentru distingerea acestor două categorii de utilizatori prompterul afişat de sistemul de operare este diferit, `n mod implicit fiind afişat caracterul “#” pentru superutilizator şi caracterul “$” pentru utilizatorul obişnuit.
Directorul utilizatorului se numeşte “home directory” şi el devine automat directorul curent la `nceperea sesiunii de lucru.
Pentru operare, o parte din parametrii mediului de lucru sunt definiţi prin variabilele interpretorului de comenzi (variabile shell).
Definirea unei variabile shell se face `n felul următor:

variabilă=valoare

Referirea la o variabilă shell se face cu ajutorul numelui acesteia prefixat de semnul “$”.
De exemplu,
- atribuirea valorii:
pozit=/usr/dan
- utilizarea variabilei:
cd $pozit
ceea ce va avea ca efect schimbarea directorului curent `n /usr/dan.
Variabilele shell sunt de două tipuri:
variabile modificate dinamic de către interpretor:

$# = numărul de parametrii ai unei proceduri shell;
$? = codul de revenire al ultimei comenzi executate;
$$ = identificatorul de proces asociat SHELL-ului;
$! = identificatorul ultimului proces lansat `n background;
$- = Opţiunile cu care a fost lansat SHELL-ul;
$n = parametrii trimişi procedurilor SHELL pe linia de comandă (n=1 ...9)


variabile atribuite la intrarea `n sesiune:

$HOME        = home directory;
$PATH        = lista căilor de căutare;
$PS1        = promterul asociat interpretorului (implicit $);
$PS2    = prompterul asociat continuării liniei de comandă (implicit >;
$LOGNAME    = numele de conectare al utilizatorului;
$MAIL    = numele directorului unde este plasată poşta electronică;
$SHELL    = numele programului shell folosit de editorul de texte vi şi alte comenzi;
$TERM    = informaţii despre tipul terminalului ecran.

Pentru afisarea tuturor variabilelor shell se foloseste comanda set. De asemenea această comandă poate fi folosită pentru vizualizarea şi modificarea fiecărei variabile shell `n parte.
Pentru operare UNIX prezintă manualul complet al tuturor comenzilor.
Pentru a obţine explicaţii despre utilizarea unei anumite comenzi se scrie:

man nume_comandă

obţinându-se pe ecran explicaţii complete despre această comandă.
De asemenea UNIX pune la dispoziţie instrumente puternice pentru dezvoltarea de programe: editoare de text, interpretoare, compilatoare, asambloare, editoare de legături pentru majoritatea limbajelor de programare.

Instalarea sistemului de operare UNIX

Instalarea sistemului de operare UNIX se realizează printr-un program special afectat acestui scop, specific fiecărei versiuni UNIX. Indiferent `nsă de versiune, acest program efectuează:

partiţionarea şi formatarea hard discurilor;
crearea structurii arborescente standard;
copierea fişierelor sistem şi ale utilizatorilor;
`nchiderea sesiunii de instalare şi informarea utilizatorului despre posibilitatea iniţializării sistemului.

După instalarea sistemului, administratorul de sistem va crea câte o intrare `n sistem pentru fiecare utilizator care va presupune:

crearea de directoare proprii – home directories;
crearea parolelor şi a drepturilor de acces;
asocierea unor identificatori pentru grup şi pentru utilizatori.

Iniţializarea sistemului de operare UNIX

Procesul de iniţializare a sistemului comportă următoarele etape:

execuţia procedurilor de testare şi iniţializare hardware: memorie, tastatură, unităţi de disc etc., proceduri ce se găsesc `n memoria ROM;
`ncărcarea `n memoria RAM a `ncărcătorului aflat `n blocul de boot al sistemului de fişiere;
`ncărcătorul va transfera `n memoria RAM nucleul sistemului de operare UNIX aflat `n fişierul UNIX din root.

Nucleul o dată `ncărcat, va declanşa execuţia următoarelor activităţi:

iniţializarea structurilor de date proprii:
imaginea superblocului şi a listei de inod-uri `n memorie;
lista bufferelor de disc libere;
bufferele pentru cozile de caractere;
altele.
montarea sistemului de fişiere root `n /;
construirea procesului 0 ca imagine a unui proces incomplet, datorită zonei de date incomplete (numai zona utilizată de nucleu);
construirea procesului 1 – init – prin execuţia unui fork intern (`n mod Kernel), care:
iniţializează structurile de date;
măreşte zona de memorie alocată pentru text;
transferă codul apelului directivei exec  din spaţiul de adresă al nucleului `n memoria RAM, devenind astfel primul proces complet din sistem;
trecerea procesului 1 `n mod utilizator şi `ncărcarea sa pentru execuţie, ceea ce va implica:
citirea fişierului /etc/inittab pentru stabilirea proceselor ce se vor crea;
lansarea unui proces /etc/gtty pentru fiecare linie de comunicaţie activă;
scanarea fişierului /etc/rc;
lansarea `n execuţie a proceselor ce se execută `n background pe `ntreaga durată de funcţionare a sistemului.

Sesiunea de lucru

Fiecare proces /etc/getty aşteaptă ca un utilizator să se conecteze la sistem, setând parametrii de comunicaţie pentru terminal cu informaţiile furnizate de fişierul /etc/getty defs şi lansând `n execuţie (directive exec) programul login. Acesta va solicita datele de identificare a utilizatorului (nume, parolă şi, `n caz de concordanţă, va lansa `n execuţie (prin exec) procesul Shell specificat `n fişierul /etc/passwd.
Ieşirea din sesiunea de lucru se face prin comanda CTRL/D sesizată de init, care va lansa un nou proces getty pe linia respectivă.
~ncheierea completă a sesiunii de lucru a `ntregului sistem se face cu comanda shutdown care `ncheie toate procesele din sistem, salvând pe disc toate informaţiile din memorie.
6.9. Administrarea şi `ntreţinerea sistemului de operare UNIX

Administrarea sistemului

Funcţie de diversele versiuni ale sistemului de operare UNIX, pentru administrarea acestuia este pusă la dispoziţie o interfaţă sub formă de menu orientată pe task-uri, ale cărei principale funcţii constau `n:

opţiuni pentru toate operaţiile posibile;
verificarea erorilor pe parcurs;
informarea utilizatorului cu privire la modul de terminare a fiecărui task lansat `n execuţie.

Administrarea sistemului poate fi realizată şi prin intermediul unor comenzi ce se află `n căile: /bin, /usr/bin şi /etc setate `ntr-o variabilă PATH pentru a fi disponibile; exemplu: comanda cron ce permite executarea unor lucrări ca:

stabilirea unor proceduri de backup la anumite momente de timp;
evidenţierea activităţii sistemului la anumite ore, zile săptămâni sau luni.

Există o serie de activităţi administrative ce trebuie avute `n vedere odată cu instalarea sistemului (proceduri de setup – iniţializare):

stabilirea consolei;
instalarea sistemului de operare;
instalarea pachetelor de aplicaţii;
definirea şi identificarea utilizatorilor ce se pot conecta la sistem;
configurarea terminalelor, imprimantelor.

~ntreţinerea şi securitatea sistemului

~ntreţinerea sistemului după instalare şi iniţializarea acestuia vizează următoarele activităţi:

comunicarea cu utilizatorii;
verificarea periodică a sistemului care necesită verificarea:
numelui sistemului;
stării curente;
utilizatorii;
plăcile hardware;
montarea sistemului de fişiere;
gradul de ocupare a discurilor.

Asigurarea securităţii se realizează prin:

schimbarea periodică a parolelor;
verificarea şi limitarea fişierelor ce dau unui utilizator drepturi de acces la fişierele altui utilizator sau grup;
detectarea eventualelor `ncercări ilegale de conectare la sistem.

Alternative Unix

    Berkeley UNIX (BSD)
    Un nucleu de dezvoltare foarte important al sistemului UNIX a fost grupul de la Computer Systems Research, al Universitatii California din Berkeley. Aici au venit sa lucreze si un numar de cercetatori de la Bell Labs. Grupul de experti UNIX sintetizat aici a promovat noi directii de dezvoltare pentru UNIX, concretizate in versiunea Berkeley Software Distribution,cunoscuta mult sub acronimul BSD. Grupul Berkeley a avut acces la un numar de calculatoare DEC VAX, care rulau Versiunea 7 a sistemului DEC VAX, care rulau Versiunea 7 a sistemului de operare UNIX. Aceasta versiune era numita 32lV deoarece calcul era numita 32/V deoarece calculatoarele VAX utilizau un procesor pe 32 de biti.Grupul UNIX de la UC Berkeley a realizat modificari importante la versiunea 32/V. O modificare importanta se refera la procedura de gestiune a memoriei.    Kernel-ul a fost modificat pentru a utiliza gestiunea memoriei virtuale, cu paginare (pana in acel moment UNIX folosea mecanismul de swapping al memoriei pentru a asigura facilitatile de multiprogramare). Prin swapping, unui program i se va permite rularea numai o cuanta de timp, la sfarsitul careia, daca alt program a solicitat accesul la resursele sistemului, atunci programului planificator va transfera informatia curenta din memorie pe disc. Evident, numarul programelor rulate simultan, fara a bloca sistemul, este relativ redus.
    Mecanismul de paginare a memoriei utilizeaza resursele hardware ale calculatorului pentru a tine evidenta spatiului de memorie utilizat, altfel spus numarul de pagini utilizate.
    Alta contributie majora a fost adusa de grupul Berkeley la indemnul Departamentului Apararii al SUA. In 1979 DARPA, Agentia pentru cercetare in domeniul apararii a Statelor Unite, a evaluat procesoarele VAX utilizate in doua dintre proiectele sale majore. Ca parte a acestei evaluari s-a inscris si examinarea sistemelor de operare VAX, si UNIX. In primul rand comunicatiile UNIX trebuiau sa fie mai eficiente. DARPA a sprijinit financiar cercetarile in urma carora au rezultat specificatiile protocolului  TCP/IP pentru UNIX.
       Acest protocol asigura interconectarea dintre retele diferite de calculatoare, conectabile prin linii telefonice sau prin alte tipuri de sisteme (ARPANET, Internet si alte retele de comunicatie s-au dezvoltat pe intreg teritoriul SUA, permitand cercetatorilor sa comunice usor unii cu ceilalti).
    La Berkeley s-a dezvoltat, de asemenea, un mecanism general de asigurare a comunicatiior, numit mecanism de comunicatie interprocese; in acest mod se puteau stabili modalitati de comunicare intre orice tipuri de procese, nu numai intre procesele conectate prin mecanismul de pipe, asa cum se asigura in versiunile de UNIX System 7. Grupul Berkeley a decis sa implementeze un nou mecanism de comunicatie intre procese, numit socket; se permite astfel comunicatia bidirectionala intre procese. Aceasta facilitate a deschis noi posibilitati pentru realizarea de programe sofisticate. Mecanismul socket este deosebit de util in mediile de retea. De exemplu, o baza de date multiutilizator presupune ca pot exista mai multe cereri de accesare a bazei, la un moment dat. Daca doi utilizatori vor sa modifice o inregistrare, programul de gestiune a accesului in retea va trebui sa tina evidenta si sa controleze cererile multiple de accesare a inregistrarilor. Mecanismul socket aduce informatii in plus referitoare la rezolvarea acestui gen de problema si faciliteaza scrierea de programe sigure. Vom trata in capitolele urmatoare mai pe larg acest concept.
    Doua alte extinderi pe care le aduce versiunea Berkeley sunt: vi si csh. vi este un editor de text conceput si implementat de Bill Joy impreuna cu alti cercetatori de la Berkeley. El este un editor in mod ecran, foarte utilizat de atunci in mediile UNIX. csh (C-shell) a fost realizat tot de Bill Joy. Shell-ul standard AT&T (/bin/sh) a fost proiectat de Stephen Bourne de la Bell Shell, bazate pe limbajul Algol. C-shell, realizat de Joy, aduce un numar de extensii la shell-ul standard. Multe dintre aceste extinderi au fost realizabile numai datorita modificarilor facute de grupul Berkeley asupra kernel-ului. Pentru a determina cate programe ruleaza simultan la un moment dat, in prim plan sau in fundal, utilizatorul shell-ului Bourne va tasta comanda ps. Shell-ul C aduce comanda jobs pentru a realiza acest lucru; sub C-shell utilizatorul poate suspenda sau relua procesele care sunt rulate in fundal. De asemenea, C-Shell poseda un limbaj de programare inspirat din limbajul C (dupa cum ii spune si numele).
    Sistemul de fisiere, care permite accesul mai rapid, si facilitatile de  lucru in retea aduse sistemului UNIX de grupul Berkeley, au permis salturi semnificative ale performantei. Ulterior, toate extinderile Berkeley au fost incluse si de AT&T in implementarile sale de UNIX, System V.

    UNIX System V
    AT&T a realizat transformari majore, si a definitivat versiunea UNIX System V, numele sub care aceasta platforma UNIX este cunoscuta in mod curent.
      O modificare fundamentala a constituit-o introducerea conceptului de stream, care  aduce  procedeele  de  comunicatie  interprocese la un nivel comparativ cu mecanismul socket BSD. Prin stream se asigura o tratare modularizata, performanta, a comunicatiilor interprocese. Acest mecanism implementeaza un protocol de comunicatie in retea numit RFS. Acest protocol asigura utilizatorilor posibilitati de interconectare si partajare a resurselor.
    Pentru a-si asigura un succes pe piata sistemelor de operare si a se impune ca proprietar de drept al UNIX System V, AT&T a initiat o alianta cu compania Sun Microsystems. Astfel, in 1989, s-a sintetizat versiunea System V 4.0, din analiza versiunilor System V, Berkeley 4.x BSD, si Xenix. Simultan, dorind sa se mentina in competitia sistemelor UNIX, un grup de companii printre care Digital Equipment, Hewlett-Packard, IBM si Apollo, impreuna cu concernurile europene Bull, Siemens si Nixdorf au format OSF-Open Software Foundation. OSF a fost initial un sistem de operare bazat pe AIX, versiunea de UNIX dezvoltata de IBM pe masinile sale.
    In ciuda concurentei OSF, UNIX System V s-a impus ca singura implementare importanta de UNIX. Ea a castigat si mai multi adepti in momentul in care Departamentul apararii al SUA l-a specificat ca referinta intr-unul dintre contractele sale, prin impunerea SVID (System V Interface Definition), un set de norme dezvoltate de AT&T, care respectate, asigura portabilitatea aplicatiilor in cadrul platformei System V.

    UTS-UNIX timesharing
    In 1980,  compania  Amdahl,  un  producator  de  calculatoare de tip mainframe compatibile IBM, a decis sa dezvolte o versiune de UNIX pentru piata de mainframe. Grupul Amdahl a realizat o versiune UNIX pentru calculatoarele din clasa 370. Rularea UNIX-UTS pe calculatoarele Amdahl suporta sute de sesiuni utilizator cu timp de raspuns rezonabil.Performantele sunt semnificative in raport cu sistemele minicalculator,care erau “sufocate” la accesul a mai mult de 50 de utilizatori. Este, de asemenea mai economic sa se achizitioneze un singur mainframe, sa se utilizeze o singura echipa de gestiune si intretinere decat sa se cumpere patru sau cinci minicalculatoare care sa faca aceleasi functii. Sistemele Amdahl au fost utilizate si de AT&T pentru continuarea cercetarilor asupra sistemului UNIX la laboratoarele Bell.
    Au fost realizate zeci de versiuni de UNIX pentru calculatoarele personale. Prima dintre ele a aparut in 1980 si s-a numit Onyx. Ea a fost implementata pe o masina cu procesor Zilog Z8000. Procesoarele care au urmat lui Z8000 au constituit si ele suportul pentru versiuni de sistem de operare UNIX.
    Motorola 68000 si ulterior 68030 sunt procesoare care dispun de registre pe 32 de biti si au posibilitatea de a accesa pe 32 de biti, devenind astfel microprocesoare etalon pentru proiectantii de sisteme UNIX. Un alt motiv care a determinat popularitatea componentelor Motorola, ca disponibilitate pentru UNIX, a fost existenta a numeroase case de software, care aveau pusa la punct portarea  UNIX  pe  sistemele  68000/68030  (Unisoft Human computing Resourxes - HCR, Philips).
    Cand a aparut pe piata primul IBM-PC, s-au initiat si cerecetarile pentru portarea UNIX  pe  microcalulatoarele  bazate  pe  procesoarele Intel Interactive Systems a realizat o versiune de UNIX pentru IBM-PC numita PC/ix iar  Microsoft  a  lansat  pe  piata  Xenix.  La  scurt  timp dupa introducerea sistemului Xenix, un grup de programatori  au format o companie de servicii si instalari de sisteme UNIX, numita Santa Cruz Operation(SCO).SCO a incheiat cu Microsoft un acord de distributie si actualizare pentru sistemul Xenix. Cresterea performantelor microprocesoarelor din familia Intel a determinat extinderea facilitatilor versiunilor de UNIX implementate pe PC-uri .Procesoarele Intel 386/486, dispunand de registre pe 32 de biti si de posibilitatea de a accesa date pe 32 de biti, au insemnat un pas inainte.A fost eliminat un obstacol major, acela al segmentarii memoriei, utilizata ca procedura de alocare de procesoarele anterioare. Intel 80386/80486 permite scrierea de cod eficient ,si ofera astfel posibilitatea de a rula versiuni complexe UNIX.O alta facilitate a acestor procesoare este capacitatea lor de a rula programe     MS-DOS sub UNIX, integrand astfel un numar mare de aplicatii utilizate intens pe piata. S-au dezvoltat, si s-au lansat pe piata cu succes relativ multe versiuni UNIX pe microcalculatoarele  cu procesoare Intel 80386/ 80486. Un alt competitor major in piata 80386/80486 este Interactive Systems prin versiunile sale 386/ix de UNIX. Interactive Systems a portat UNIX pe diferite masini, de-a lungul anilor; 386/ix aduce un numar de extinderi sistemului UNIX specific acestei categorii de suport hardware.
    Un program dezvoltat  initial  de  Phoenix  Technologies  si  comercializat de Interactive Systems, numit Vp/ix, permite rularea programelor DOS sub UNIX. Impreuna cu Microsoft si AT&T, Interactive Systems a determinat dezvoltarea versiunii UNIX Sistem V/386 care reprezinta o referinta dupa care alti producatori isi pot dezvolta propriile versiuni de UNIX,pentru suportul lor hardware. UNIX System V/386 permite aplicatiilor Xenix sa ruleze fara nici o modificare. 386/ix este una dintre cele mai puternice varsiuni de UNIX ce ruleaza pe PC-uri. De asemenea, Santa Cruz Operation s-a impus ca un lider in productia de sisteme de operare UNIX pentru PC-uri prin versiunile sale SCO UNIX V/386 si prin produsele dezvoltate pentru aceasta platforma.
    Un producator de luat in consideratie este si firma Apple. Apple Computer a dezvoltat pentru microcalculatoarele Macintosh, construite in jurul microprocesoarelor Motorola 68030 / 68040, o versiune proprie de UNIX numitaA/UX. Ultima versiune a acestui sistem, A/UX 3.0.1, lansata in 1993 se doreste un punct de reper pe piata UNIX. A/UX 3.0.1 admite standardele generale UNIX(SystemV si BSD 4.3). Elementul sau caracteristic este compatibilitatea cu Interfata Grafica ca Utilizator Macintosh ,si posibilitatea de a rula in mod dual sistemele de operare UNIX si Macintosh Sistem 7.Este primul sistem de operare UNIX care ofera o sansa de adaptare rapida pentru nespecialisti sau pentru cei care nu au experienta in utilizarea sistemului UNIX.Acestia pot rula comenzile prin intermediul unor ferestre speciale interactive, dispunand de mesaje informative.

    SunOS - prototipul UNIX pentru statiile de lucru
    O statie de lucru reprezinta un calculator monoutilizator care asigura facilitati grafice complexe si resurse puternice. Firma Sun Microsystems produce o intreaga gama de statii de lucru, foarte populare in universitati sau in departamentele de proiectare, mai ales pentru disponibilitatile lor grafice.
      Sun utilizeaza o varianta de UNIX numita SunOS, care include in egala masura facilitati UNIX System V si BSD. Extensiile ,si imbunatatirile aduse Kernel-ului si utilitarelor au facut din platforma SunOS o puternica baza pentru dezvoltarea de software. Una dintre extinderile remarcabileale SunOS este NFS - Network File system, un protocol de retea care  permite utilizatorilor sa partajeze datele si echipamentele periferice, in mod eficient,transparent. De exemplu, statiile Sun nu au de regula un hard-disc intern. Aceste situatii, in functie de reteaua la care se conecteaza, incarca software-ul si aplicatiile in memoria lor locala; mai multe statii de lucru partajaza acelasi hard-disk, de mare capacitate; in plus, capacitatea de prelucrare a fiecarei statii de lucru este locala, independenta. Acest mecanism asigura un mediu puternic si de cost relativ scazut.
    UNIX-like, o alta viziune asupra sistemului UNIX
    In arena UNIX a intrat in anul 1986 un sistem de operare UNIX-LIKE numit Mach. Mach a fost dezvoltat de Departamentul de Calculatoare a universitatii Carnegie-Mellon din Pittsburgh. Utilizatorii sistemului Mach nu sesizeaza diferente intre modul in care ei interactioneaza cu UNIX sau cu Mach.
    UNIX-like inseamna ca acelea, si comenzi sunt disponibile ,si pe UNIX si pe Match. Diferenta majora consta in modul in care cele doua sisteme sint implementate.
    Modularitatea este una dintre facilitatile sistemului Mach. Mach este gandit in ideea programarii orientate pe obiecte. Programarea orientata pe obiecte izoleaza programatorul de informatia interna a rutinelor individuale.De exemplu, programatorul vrea sa genereze un dreptunghi pe ecran, inainte de a procesa o intrare. In programarea orientata pe obiecte programatorul va selecta un obiect, va apela functia generatoare pentru a afisa sau primi informatii. Un alt avantaj al acestei tehnici de programare este faptul ca mecanismele interne ale obiectelor pot fi modificate fara ca programatorul sa actualizeze sau sa reproiecteze codul program. Reutilizabilitatea modulelor program este asemanatoare cu folosirea utilitarelor in UNIX  si asigura o mare productivitate.  Match mai  aduce un mecanism important, ce al mesajelor. Utilizarea mecanismului de transfer de mesaje in Match deriva din implementarea sa orientata pe obiecte. Daca un mediu orientat pe obiecte izoleaza programatorul de sectiunea interna a rutinelor, cum poate atunci programatorul sa utilizeze aceste rutine?  Mecanismul  de  transfer al mesajelor asigura aceasta posibilitate. Transmiterea unui mesaj catre un obiect este similara cu conceptul de apelare a unei proceduri, in limbajele traditionale.  Mesajele asigura un grad mare de flexibilitate. Mesajele realizeaza mai mult decat o simpla comanda; ele indica ce resurse poate utiliza comanda in timp ce se executa. Astfel, transferul mesajelor intre calculatoare  cu  procesoare  multiple  permite  acestor  calculatoa sa-si utilizeze procesoarele la capacitatea maxima.
    Implementarea unor mecanisme esentiale ale sistemului Mach este sesizata in sistemul de operare al calulatoarelor NeXT. Introduse la sfarsitul anului 1988, calculatoarele NeXT utilizeaza Match pentru a coordona capacitatile de prelucrare ale diferitelor subsisteme. Firma Sun a inclus si ea concepte Mach in versiunile recente de SunOS.
    Versiuni de sistem UNlX-alike
    Exista diverse sisteme de operare care sunt denumite generic UNIX-alike.
      Ele utilizeaza conceptul de sistem de fisiere UNIX  si/sau conceptele legate de gestiunea proceselor, care au fost dezvoltate de-a lungul anilor. Compania MicroWare produce un UNIX-alike numit OS-9. OS-9 a fost dezvoltat pe procesoarele Motorola (6809, 68000 si 68030). OS-9 are cateva atribute unice. Kernel-ul este scris pentru prelucrarile de timp real, se permit astfel anumitor sectiuni din kernel sa fie blocate in memorie si nu este necesar ca ele sa fie incarcate de pe disc. Aceasta facilitate permite sistemului OS-9 sa fie utilizat efectiv in sistemele de supraveghere si conducere a proceselor fizice; controlerele bazate pe Motorola 6808 pot utiliza o versiune OS-9 incarcata in ROM. Un alt UNIX-alike este QNX, realizat de Quantum Software. QNX este, de asemenea, o versiune destinata prelucrarilor de tip real utilizand procesoarele din familia Intel. De,si nu toate comenzile sunt similare cu cele ale UNIX, un numar considerabil al acestora asigura aproape aceleasi servicii.


 
   
Pagini: 1  
Mergi la