OvaS
Administrator

Data inscrierii: 29/Aug/2007 Mesaje: 68 Localitate: Calarasi |
|
Evolutie !!! |
|
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 aparte 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 îngăduie 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 faimoase 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 întrebuințat ºi de firma SCO `n materialul finit 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 rarisim unitãþi centrale) diferite.
Multe sisteme de calcul cu sisteme de operare UNIX creazã probabilitatea 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 exploatat 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 ingrediente SHELL ºi un sistem bogat de fiºiere.
Structura generalã a sistemului de operare UNIX
Ca absolut 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 distincte 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 componentă centralã a sistemului asigurând servicii sistem cãtre programele de aplicaþie pentru câștigarea 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 deosebite 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 excepționale sunt citite/scrise, din punct de vedere al utilizatorului, întocmai 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 aparat 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 întrebuințarea 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, fiindcă 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 necesită 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 singular (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 fără – 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 ființele 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 concluzie 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 perfect 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 dominante pentru progresul 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 creștere cumplit de 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 pentru că calculatoarele VAX utilizau un procesor pe 32 de biti.Grupul UNIX de la UC Berkeley a creat 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 debutantul 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 modele 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 indiferent ce 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 dobândirea de programe sofisticate. Mecanismul socket este extrem 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 asigură versiunea Berkeley sunt: vi si csh. vi este un editor de text zămislit si implementat de Bill Joy impreuna cu alti cercetatori de la Berkeley. El este un editor in mod ecran, teribil de 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 ocazie 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 compus 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 solitar 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 confecționate zeci de versiuni de UNIX pentru calculatoarele personale. întâia 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 pretext 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 inițialul 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 valoarea 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 variate 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 intense 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 articolele 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 întâiul 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 particulare 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 conține 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 calitatea 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 adăugat 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 realizează 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 încuviințează 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.
|
|