Capitolul+8 Sisteme de Operare

S-ar putea să vă placă și

Descărcați ca pdf sau txt
Descărcați ca pdf sau txt
Sunteți pe pagina 1din 20

CAPITOLUL 8 Sistemul de operare UNIX

8.1. Prezentare general


Unix este un sistem de operare iniiat de un grup de programatori de la AT&T Bell Labs n anul 1975. Exist mai multe variante ale sistemului dezvoltate att de firme mari n scopuri comerciale, ct i de persoane i organizaii non-profit, de exemplu Free Software Foundation. Unix este marc nregistrat i aparine organizaiei The Open Group care ndeplinete 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 organizaii. Productori non-profit au ales, att din cauza preului ct i din cauza dezvoltrii foarte rapide a distribuiei lor, s nu-i certifice sistemele, astfel c aceste sisteme dei sunt compatibile cu standardul, nu sunt certificate i sunt numite n mod comun compatibile Unix, U*ix sau *nix. Termenul Unix este folosit pentru a descrie un sistem certificat cu caracteristici similare cu Version 7 Unix sau Unix System V [41]. Spre sfritul anilor 1970 i nceputul anilor 1980 sistemul a fost preluat i dezvoltat, au aprut pe lng sistemele certificate, o serie de sisteme open source, free (FreeBSD, NetBSD i OpenBSD i mult folositul Linux, prezentat n capitolul anterior). Dei cronologic Unix a aprut naintea Linux, am preferat s prezint nainte capitolul despre Linux. Aceasta pentru c Linux este mult mai folosit i permite modificri n structura sa, permite inteligenei utilizatorilor s se manifeste. Unix nu permite modificri, este un SO standardizat i certificat, utilizatorii l pltesc i folosesc aa cum este, intervenii n structur nu pot face. Att Unix-ul ct i limbajul de programare C n care a fost scris au fost dezvoltate de AT&T i distribuite guvernului i instituiilor academice, ceea ce a dus la portarea lor pe un numr foarte mare de calculatoare din aceste medii.

162

Sisteme de operare UNIX

Cei interesai de evoluia n timp a Unix-ului pot vizualiza figura 7.1. din capitolul anterior referitor la Linux. Unix-ul este un sistem deschis (open sistem) i este folosit pe scar larg att pentru servere ct i pentru computere personale. Mediul de dezvoltare Unix i modelul de programare client-server au fost eseniale n dezvoltarea Internetului i trecerea de la sistemele de calculatoare individuale la sistemele de calculatoare n reea. Sistemul de operare Unix a fost conceput de la bun nceput ca portabil, multiuser, multitasking i time-sharing. Este caracterizat de urmtoarele concepte informatice de baz: - datele sunt stocate n format text simplu ntr-un sistem de fiiere organizate ierarhic; - dispozitivele i toate elementele IPC (Inter-Process Communication) sunt vzute ca fiiere; - se folosete pe larg linia de comand; - n loc de programe monolitice masive conine programe simple care au o singur funcie, aceste programe fiind nlnuite folosind facilitatea pipe pentru a obine funcionalitatea dorit. Sistemul Unix const din totalitatea acestor programe i a unui program master care controleaz sistemul, nucleul (kernel-ul). n UNIX mai muli utilizatori pot folosi calculatorul n acelai timp i executa independent diferite aplicaii. 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 administrrii sistemului, un cont nseamn evidena utilizrii resurselor la care utilizatorul are drept de acces. Utilizatorii unui sistem de operare UNIX sunt administratorul de sistem, un superutilizator (superuser) i utilizatorii obinuii (users). Superutilizatorul are drepturi de acces nelimitate n sistem, sarcina principal fiind administrarea i ntreinerea sistemului de operare. Numele superutilizatorului va fi ntotdeauna root. Utilizatorii obinuii au drepturi de acces limitate n sistem, care fi extinse sau anulate de ctre administratorul de sistem. Utilizatorii obinuii pot forma grupuri de utilizatori (grup) crora administratorul de sistem le poate acorda drepturi comune sau individuale.

Sistemul de operare

163

8.2. 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 cerinele sistemului Unix pentru a fi folosit ca un ARPANET minihost. ARPANET avea s devin mai trziu Internetul din ziua de astzi. Procesul de evaluare a fost de asemenea bine documentat [44]. ncepnd cu sfritul 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 ntlnite 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 nceput n 1998 de ctre Austin Group cu scopul de a uni cele dou specificaii anterioare (POSIX i COSE) sub numele de Single Unix Specification. n anul 1999, un numr de furnizori de sisteme Unix au convenit asupra unui nou standard care vizeaz de data aceasta formatul binar folosit de programele din sistemele Unix. Specificaia se numete SVR4's Executable and Linkable Format (ELF) i ofer o compatibiltate binar substanial ntre diversele versiuni de Unix care rulez pe acelai tip de procesor. Alt standard folosit n Unix este The File System Hierarchy Standard. A fost creat ca un layout de referin pentru sistemul de fiiere. Este folosit pe larg n special n Linux.

8.3. Distribuii UNIX


Sistemele Unix actuale se bazeaz pe trei ramuri originale [4, 43]: BSD (ramur desprins din proiectul AT&T la sfritul anilor 1970); Unix System V (produs de cei de la AT&T la mijlocul anilor 1980) i GNU/Linux, replic gratuit i open-source la celelalte dou ramuri, prezentat n capitolul anterior.

164

Sisteme de operare UNIX

Fiecare distribuie dezvoltat ulterior se bazeaz pe una din aceste ramuri, dar cu caracteristici preluate i de la celelalte. Principalele tipuri de distribuii Unix aflate n exploatare sunt: - Solaris produs de firma Sun Microsystems. Este distribuit att n versiune closed-source ct i n versiune open source numit Open Solaris. Ruleaz pe arhitectura SPARC, x86 i x86-64; - HP-UX produs de firma HP. Ruleaz pe arhitectura PARISC i IA-6; - AIX produs de firma IBM. Ruleaz pe arhitectura PowerPC i POWE; - IRIX produs de firma SGI. Ruleaz pe arhitectura MIP; - MacOS X produs de compania Apple pentru calculatoarele Macintosh. Este software comercial, bazat pe o combinaie de FreeBSD, nucleul Mach i tehnologii specifice Apple. Ruleaz pe arhitectura PowerPC i x86; - Linux (sau GNU/Linux) produs de multiple organizaii ntr-o gama larg de distribuii, open-source n baza licenei GPL (licena) i disponibil gratuit. Ruleaz pe diverse arhitecturi, incluznd x86, x86-64, IA64, PowerPC, MIPS, PlayStation 2; BSD open-source i disponibil n trei distribuii principale: FreeBSD, NetBSD i OpenBSD. n figura 8.1 sunt prezentate aceste distribuii Unix, modul de evoluie i interdependen [43].

Figura 8.1. Principalele distribuii Unix i interdependena lor.

Sistemul de operare

165

8.4. Componentele sistemului de operare UNIX


Sistemele Unix sunt construite pe mai multe niveluri concentrice, fiecare nivel interacioneaz cu celelalte i este constituit dintr-o serie de componente. Aceste niveluri sunt prezentate schematic n figura 8.2 [4].

Figura 8.2. Structura Unix pe niveluri.

Ele sunt: - nucleu (kernel); - shell un interpretor de comenzi care servete i drept limbaj de scripting; - un set de biblioteci tipice; - o serie de aplicaii (inclusiv codul surs pentru portabilitate). Toate distribuiile au un comportament similar, fr s conin aceleai programe sau comenzi. De exemplu kernel-ul Solaris nu este acelai cu kernel-ul HP-UX, iar shell-ul 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-Turbo C Shell). Relaiile ntre nivelurile sistemului se realizeaz prin apeluri sistem, utilitare, proceduri standard folosite de limbajul C i programe de gestiune a intrrilor/ieirilor, furnizate odat cu sistemul i diferite pentru fiecare sistem de calcul.

8.5. Kernel UNIX


Nucleul (kernelul) Unix este monolitic i are posibilitatea de a ncrca module suplimentare. Aceasta este o trstur comun a nucleelor Unix ncepnd cu System V.

166

Sisteme de operare UNIX

8.5.1. Structura kernelului


n figura 8.3 este reprezentat structura kernelului cu diferitele module componente i modul n care acestea interacioneaz unele cu altele [43]. Fiierele i procesele sunt cele dou concepte principale n sistemul UNIX. n figur este reprezentat subsistemul de fiiere (n partea stng a figurii), i subsistemul de control al proceselor (n dreapta). Din figur se poate urmri modul n care nucleul interacioneaz cu celelalte dou nivele ale sistemului: user i hardware.

Figura 8.3. Structura kernelului i interaciunile sale cu nivelul user i hardware.

Apelurile sistem i interfaa de biblioteci reprezint delimitarea ntre programele utilizator i kernel. Apelurile sistem arat ca apeluri de funcii obinuite din programele scrise n C, iar bibliotecile mapeaz aceste apeluri de funcii ctre primitive necesare sistemului de operare. Totui, programele

Sistemul de operare

167

n limbaj de asamblare pot invoca apeluri sistem direct fr a apela o bibliotec de funcii sistem. Programele folosesc i alte biblioteci cum ar fi bibliotecile standard I/O pentru a beneficia de o utilizare mai sofisticat a apelurilor sistem. Bibliotecile sunt linkedidate cu programele n momentul compilrii i sunt astfel parte a programelor utilizator pentru scopurile menionate mai sus. n figur setul de apeluri sistem (sistem call) este mprit n dou categorii: cele care interacioneaz cu subsistemul de fiiere i cele care interacioneaz cu subsistemul de control al proceselor. Subsistemul de fiiere gestioneaz: - fiierele; - spaiului alocat fiierelor; - spaiului liber; - accesul controlat la fiiere; - returnarea datelor pentru utilizatori. Procesele interacioneaz cu subsistemul de fiiere printr-un set specific de apeluri sistem, cum ar fi open (pentru a deschide un fiier n modul citire sau scriere), close, read, write, stat (pentru interogarea atributelor unui fiier), chown (schimb proprietarul fiierului) i chmod (schimb permisiunile de acces ale fiierului). Subsistemul de fiiere acceseaz datele dintr-un fiier utiliznd un mecanism de buffering care controleaz fluxul de date dintre kernel i dispozitivele de stocare secundare. Mecanismul de buffering interacioneaz cu driverele dispozitivului bloc de I/O pentru a iniia transferul de date ctre i dinspre kernel. Driverele de dispozitiv (device drivers) sunt module de fiiere kernel care controleaz operaiile dispozitivelor periferice. Dispozitivele bloc I/O sunt dispozitive de stocare cu acces aleator. Alternativ, driverele lor de dispozitiv le fac s apar ca fiind dispozitive de stocare cu acces aleator pentru restul sistemului. De exemplu, un driver de unitate de benzi (tape), poate permite kernelului s trateze o unitate de benzi ca un dispozitiv de stocare cu acces aleator. De asemenea, subsistemul de fiiere interacioneaz direct cu driverele de dispozitive raw I/O fr intervenia mecanismului de buffering. Dispozitivele raw, cteodat numite i dispozitive caracter, includ toate dispozitivele care nu sunt dispozitive bloc.

168

Sisteme de operare UNIX

Subsistemul de control al proceselor este responsabil de: - sincronizarea proceselor; - gestiunea memoriei pentru comunicaia ntre procese; - planificarea execuiei proceselor. Subsistemul de fiiere i subsistemul de control al proceselor interacioneaz atunci cnd se ncarc un fiier n memorie pentru execuie, subsistemul de gestiune a proceselor citete fiierele executabile n memorie nainte s le execute. Unele din apelurile sistem pentru controlul proceselor sunt: - ork (creaz un nou proces copil i se apeleaz din interiorul unui proces printe); - exec (creaz un nou proces prin copierea imaginii procesului din care este apelat funcia i apoi rularea unui program binar din noul proces creat); - exit (termin execuia unui proces); - wait (sunt situaii n care procesul copil se termin sau i schimb starea i astfel procesul printe apeleaz aceast funcie pentru a afla de aceast schimbare a procesului copil); - signal (controleaz rspunsul procesului la evenimente neobinuite). Modulul de gestionare a memoriei controleaz alocarea memoriei. Dac la un moment dat sistemul nu are suficient memorie fizic pentru toate procesele, kernelul le mut din memoria principal n memoria secundar n aa fel nct tuturor proceselor li se d o nou ans s fie executate. Modulul de planificare a execuiei proceselor aloc CPU proceselor. El le planific s fie executate pe rnd sau pe baza listei de prioriti, alege procesul cu cea mai mare prioritate care s fie rulat naintea altora. Comunicare ntre procese se poate face prin semnale asincrone de evenimente sau prin semnale sincrone de mesaje ntre procese. Controlul hardware este responsabil cu tratarea ntreruperilor hardware i comunicarea cu maina de calcul. Dispozitive precum discuri sau terminale pot ntrerupe CPU n timp ce execut un proces. n acest caz, kernelul poate relua execuia procesului ntrerupt dup ce trateaz ntreruperea de dispozitiv (disc, terminal). ntreruperile nu sunt tratate de procese

Sistemul de operare

169

speciale ci de funcii speciale n kernel, apelate n contextul procesului curent care ruleaz, conform celor prezentate n & 2.4.

8.5.2. Funciile Kernel-ului


Principala funcie a kernel-ului este de gestiune a tuturor resurselor, respectiv de [4, 10, 20]: - alocare/dealocare de resurse; - controlul strii resurselor; - implementarea unei politici de control a tuturor operaiilor. Aceasta nseamn n principal gestiunea proceselor, a memoriei, a perifericelor, a timpului i nu n ultimul rnd, gestiunea fiierelor. Nucleul gestioneaz memoria real, aloc procesorul n mod automat i furnizeaz rspunsul pentru funciile sistem apelate de procesele de aplicaie. Gestiunea proceselor presupune: - controlul execuiei lor prin implementarea unor primitive de creare, terminare, suspendare, comunicare ntre procese; - planificarea pentru execuie conform politicii time-sharing. Gestiunea memoriei presupune alocarea/eliberarea memoriei principale pentru procesele aflate n execuie, permind accesul n zone de memorie comun (spaiul de memorie al nucleului este protejat i nu poate fi accesat dect de el). Gestiunea dispozitivelor periferice permite unitii centrale de procesare (CPU) un acces controlat la dispozitivele periferice: band, disc, interfee de reea. Gestiunea fiierelor presupune alocarea/dealocarea memoriei secundare (externe) pentru stocarea i regsirea eficient a informaiilor i protejarea fiierelor mpotriva acceselor ilegale, ru voitoare

8.6. Procese n UNIX


8.6.1. Execuia proceselor
Un program n execuie este privit ca un proces. 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

170

Sisteme de operare UNIX

include coninutul registrelor, prioritatea procesului i o list a fiierelor deschise. Procesele nu pot s-i modifice direct mediul asociat, ci doar s solicite modificri prin intermediul funciilor sistem. Procesele pot fi terminate voluntar (prin apelul funciei sistem exit) sau involuntar ca rezultat al aciunilor ilegale, al semnalelor sau al ntreruperilor generate de utilizator. Pentru un program activ, pot exista mai multe procese active numite instane. Firele de execuie multiple pot exista printr-un proces (sau task). Execuia proceselor se realizeaz pe 2 niveluri: utilizator (user) procesele i pot accesa doar propriile zone de cod i date; nucleu (kernel) procesele pot accesa i spaiul de adres al nucleului. Anumite instruciuni main sunt privilegiate i nu pot fi executate dect n mod nucleu. Trecerea de la user la nucleu se face prin apeluri sistem iar de la nucleu la user se face prin ntoarcerea din apelul sistem, aa cum se poate urmri n figura 8.4 [43].

Figura 8.4. Mecanisme de trecere ntre nucleu i user.

n orice moment exist un singur proces executat de CPU. Comutarea dintre modul de operare utilizator i modul de operare kernel se poate face atunci cnd este planificat prin planificator (scheduler), atunci cnd anumite servicii necesit comutare i cnd este solicitat prin apeluri n system, n mod asemntor cu ce am prezentat la paragraful 2.4. Comutarea de ctre scheduler aloc unui proces utilizator o cuant de timp (aproximativ 0,1 secunde) i apoi apeleaz ntreruperile de ceas ale sistemului. Aceasta presupune salvarea strii procesului curent care se

Sistemul de operare

171

execut i selectarea unui alt proces rulabil pentru execuie. Aceast trecere se face n modul kernel. n momentul trecerii de la un proces la altul prioritatea procesului curent este reevaluat (de obicei mai mic). Prioritile proceselor Unix sunt urmtoarele, n ordine descresctoare: 5 erori hardware; 4 ntreruperi de ceas; 3 disc I/O; 2 tastatur; 1 nreruperi software. Apelurile n sistemul Unix sunt prezentate n tabelul 8.1 [41].
Tabelul 8.1. Apeluri

Operaia Deschiderea unui fiier nchiderea unui fiier Efectuarea de I/O Trimiterea unui semnal Crearea unui pipe Crearea unui socket Duplicarea unui proces Copierea imaginii unui proces Terminarea unui proces

Funcia de apel din limbajul C Open Close read/write Kill Pipe Socket Fork Exec Exit

Strile de baz ale unui proces sunt: 1. nou procesul a fost creat; 2. n ateptare ateapt apariia unui eveniment (ntrerupere hardware, intervenia utilizatorului sau a altui proces. Un proces intr n aceast stare singur, de exemplu cnd ateapt terminarea unei operaii de I/O. Un proces se poate afla n ateptare pe hard disc sau n memorie; 3. gata de execuie procesul are toate resursele, asteptnd s intre n execuie; n acest stare se pot gsi mai multe procese simultan, plasate de nucleu n coada de ateptare, n funcie de prioriti; 4. n execuie n mod kernel sau user;

172

Sisteme de operare UNIX

5. suspendat un alt proces a ordonat ca acest proces s intre n starea suspendat (go to sleep). Procesul aflat n starea suspendat va fi trezit de ctre alt proces; 6. Zombie sunt trecute toate procesele n momentul terminrii lor; Nu se elibereaz intrarea n tabela de procese, acest lucru se realizeaz numai de ctre printele procesului, n urma primirii de la nucleu a unui semnal de terminare a operaiei; 7. terminat procesul i-a ncheiat execuia.

8.6.2. Comunicarea ntre procese


Comunicarea ntre procese se poate realiza prin: a) fiiere obinuite (sinc_bloc_fis.c) b) fiiere tip conduct (pipe.c) c) zone de memorie comun (semafor.c) d) cozi de mesaje (cozim_transm.c, cozim_recep.c) a) Comunicarea prin intermediul fiierelor - este cea mai simpl i mai direct metod; - este cea mai ineficient, pentru c nu ofer un mecanism de control automat al accesului concurent, acesta cznd n sarcina utilizatorului; - se poate implementa n 2 moduri: i) prin simularea unei regiuni critice cu funcia creat, fr drepturi de scriere: while((f=creat("fis",0111))<0)sleep(2); [regiune critic] unlink("fis"); ii) prin directiva lockf sau funcia fcntl pentru accesul controlat la fiiere (exp.: sinc bloc fis.c) Accesul este controlat de SO i permite blocarea accesului la o zon de fiier pn la apelarea funciei cu un parametru care specific deblocarea. b) Comunicarea prin fiiere tip conduct (pipe.c) Este implementat printr-un mecanism de acces la fiiere controlat de sisteme de operare. Conductele sunt fiiere obinuite la care operaiile de scriere/citire se realizeaz n ordinea FIFO. Exist 2 tipuri de pipe-uri: anonime i cu nume (FIFO). Pentru comunicare cu pipe-uri anonime SO folosete pentru fiierul pipe primele 10 blocuri de pe disc (au dimensiune limitat) iar blocurile

Sistemul de operare

173

reprezint o coad circular, cu pointeri de Read/Write diferii (pentru a respecta politica FIFO). Nu permit acces direct. Operaiile de Read/Write se fac sincronizat. Comunicarea prin pipe-uri anonime se face doar ntre procesul tat i fiii si, inod-ul pentru pipe-ul anonim este ters automat de SO atunci cnd dispar procesele care-l refereau. c) Comunicarea prin zone de memorie comun (semafor.c) Reprezint cea mai rapid form de comunicare ntre procese. Este o zon de memorie n care este mapat o poriune din spaiul virtual al proceselor care comunic (un bloc comun de memorie virtual partajat de mai multe procese). Procesele citesc sau scriu n spaiul comun de memorie folosind aceleai instruciuni cu care citesc/scriu alte poriuni de memorie virtual. Permisiunile sunt read-only sau read-write pentru fiecare proces n parte. Excluderea mutual este asigurat de procesele care folosesc memoria partajat. Implementarea se realizeaz cu ajutorul primitivelor de comunicare specifice pentru zone de memorie comune, care fac parte din pachetul IPC, cum ar fi shmget sgmat shmdt shmdl (unde sh = shared, m = memory). d) Comunicarea prin mesaje Este mecanismul cel mai eficient implementat n pachetul IPC. Se comunic printr-o coad de mesaje circular, gestionat de SO. Fiecare proces are o coad de mesaje care funcioneaz ca o cutie potal. Transmisia se face cu sincronizare (blocare-deblocare), mesajele avnd asociat un tip (valoare numeric) iar recepia se face n funcie de tipul ales. Primitivele de lucru sunt: msgget msgctl msgsnd msgrcv.

8.7. Mediu de dezvoltare


UNIX are un mediu suficient pentru a reconstrui tot sistemul direct din codul surs. Aplicaiile canonice sunt un compilator de C (cc), unassembler (as), un linker pentru combinarea fiierelor obiect (ld), un set tipic de biblioteci pentru limbaj (lib), un sistem de automatizare a

174

Sisteme de operare UNIX

compilrii (make), i eventual alte limbaje de programare i scripting (C, C++, Java, Perl, Python, Fortran, COBOL, Pascal), programe de arhivare (ar, tar, bz2, gzip, zip, rar), unelte pentru dezvoltarea de compilatoare etc. O sintez referitoare la mediul de dezvoltare Unix este fcut n tabelul 8.2 [42].
Tabelul 8.2. Mediul de dezvoltare Unix

Limbaje de programare Limbaje de scripting Unelte Arhivare Controlul versiunilor IDE

C|C++|Java|Fortran|COBOL|Pascal shell|AWK|Perl|Python gcc|GNU Assembler|GDB|make ar, tar, bz2, gzip, zip, rar Subversion|Git|Mercurial|RCS|CVS Eclipse

8.8. Comenzi UNIX


8.8.1. Formatul comenzii
n Unix comenzile se introduc ntr-un anumit program coninut n shell. Acesta este pornit automat de sistem n momentul n care utilizatorul este autentificat. n general, nu se face o distincie ntre aplicaiile de sistem i aplicaiile de uz general. Exist ns un set de comenzi generale care pot fi ntlnite pe orice sistem Unix, comenzi standardizate de organizaia The Open Group. Formatul standard al comenzii este identic cu cel pentru Linux i cuprinde: - prompter; - comanda program executabil; - optiuni fiiere, director, cale i - argumente. O comand are forma: comanda[optiune(optiuni)] [argument(e)] O comand are maxim 256 caractere, obligatoriu cu litere mici.

Sistemul de operare

175

8.8.2. Comenzi pentru interacionarea cu sistemul i lucrul cu fiierele


Comenzi ce sunt necesare pentru interacionarea cu sistemul i lucrul cu fiierele sunt prezentate n tabelele 8.3 i 8.4 [42, 43].
Tabelul 8.3. Programe n linia de comand pentru Unix

Management de fiiere Management de procese Management utilizator/mediu Procesare text

cat|cd|chmod|chown|chgrp|cksum|cmp|cp|du| df|file|fsck|ln|ls|lsof|mkdir|mount|mv|pw d|rm|rmdir|split|touch at|chroot|cron|exit|kill|killall|nice|pgr ep|pidof|pkill|ps|pstree|sleep|time|top|w ait env|finger|id|mesg|passwd|su|sudo|uname|u ptime|w|wall|who|whoami|write awk|comm|cut|ed|ex|fmt|head|iconv|join|le ss|more|paste|sed|sort|tac|tail|tr|uniq|w c|xargs basename|echo|expr|false|printf|test|true inetd|netstat|ping|rlogin|traceroute find|grep|strings

Programare Shell Communicaii Cutare

Tabelul 8.4. Comenzi Unix, utilitare (de utilizator, de reea i dat)

login exit passwd lock hostname Who W finger f f@venus.ase.ro write[user]

Autentificare n sistem (deschiderea sesiunii de lucru) Ieire din sesiune de Unix Schimbare parol Blocare sesiune Numele server-ului gazd Vizualizare utilizatori din sistem + ce ruleaz Vizualizare utilizatori din sistem + conectare Vizualizare utilizatori din sistem + nume Trimite un mesaj unui utilizator (ctrl d)

176
wall

Sisteme de operare UNIX

Trimite un mesaj tuturor utilizatorilor

talkuser Permite convorbirea cu utilizatorul specificat (dac talkuser@hostname acesta dorete) mesg [y][n] date time clear awk[prog][param] [list_fi] bc Dc Permite sau interzice primirea mesajelor de la ali utilizatori Afiare/setare dat Afiare or tergere ecran Procesor de abloane Procesor aritmetic Calculator de birou

8.9. Interfaa grafic n UNIX


O distribuie modern Unix vine cu un server grafic (X11 sau XServer), care implementeaz sistemul de ferestre i controleaz tastatura i mouse-ul. 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 Fundaiei X.Org i este folosit att de distribuiile libere BSD i Linux, ct i de versiunile Unix proprietare de exemplu Solaris. 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. n tabelul 8.5 sunt prezentate mediile desktop i managerele de ferestre pentru X11 [40, 41].
Tabelul 8.5. Medii desktop i managere de ferestre pentru X11

Medii desktop Managere de ferestre

Sisteme de dezvoltare

GNOME|KDE|XFCE|CDE|IRIX Interactive Desktop EDE|toil|LXDE|Mezzo|ROX|UDE AfterStep|Beryl Compiz|Enlightenment|KWin| Metacity|Sawfish|Window Maker|Blackbox|Fluxbox| FVWM95|IceWM|JWM|Openbox|QVWM|twm|WindowLab| dwm|evilwm|ratpoison|UWM|wmii|xmonad GTK+|Qt|Motif|FLTK|OPEN LOOK

Sistemul de operare

177

Primul sistem de particularizare a elementelor grafice i ferestrelor a fost OPEN LOOK, pe la sfitul anilor 1980 de ctre AT&T, Sun Microsystems i XEROX. Acum se folosesc noi medii grafice precum GNOME, KDE, Fluxbox etc.

8.10. Aplicaii UNIX


Unix ofer utilizatorilor accesul la o serie extins de programe, att servere ct i aplicaii. Practic, sunt acoperite toate domeniile de activitate, de la IDE-uri pentru programare, servere web i calcul tiinific pn la browsere, procesoare de text i jocuri spre exemplu, o parte din distribuii vin cu browserul Firefox. n tabelul 8.6 sunt prezentate o serie de programe Unix [42].
Tabelul 8.6. Programe Unix

Editoare de text Suite office Tehnoredactare Editoare grafice Multimedia

vi|vim|emacs|gedit|Kate|AbiWord|NEdit|nan o|Bluefish OpenOffice.org|Gnome Office|KDE Office TeX|LaTeX|Kile|LyX|Texmaker|Scribus GIMP|Inkscape|Blender|Krita|Maya|Softimag e|K-3D|Dia MPlayer|Xine|Totem|Kaffeine|VLC|Amarok|aT unes|XMMS|BMP|Audacious|RhythmBox|Cineler ra| KDenlive|LiVES|Kino|AviDemux|Ardour|A udacity Apache|thttpd|lighttpd|vsftpd|pureftpd|OpenSSH|Samba|Squid|NTP|ISC DHCP telnet|ftp|Firefox|Galeon|Konqueror|Opera |Kontact|Evolution|Thunderbird|PidgIn|Kop ete|Gabber |TightVNC|RealVNC|aMule|Azureu s|Vuze|Qtorrent|Ktorrent|Skype|Linphone|O PenwenGo|Ekiga gufw|nmap|Wireshark|chkrootkit|rkhunter

Severe networking Clieni networking

Securitate

178

Sisteme de operare UNIX

8.11. Sistemul de fiiere n UNIX


8.11.1. Structura arborescent de organizare
i n Unix, ca i n Linux, totul este fiier. Exist astfel mai multe tipuri de fiiere: - fiiere obinuite; - fiiere speciale; - tip caracter; - tip bloc; - tip pipe; - cataloage de fiiere (directori). Structura standard n care sunt organizate fiierele este tot o structur arborescent ca i la Linux, cu rdcin i mai multe straturi, aa cum se poate urmri n figura 8.5.

Figura 8.5. Structur arborescent a fiierelor n LINUX.

Fiierele pot fi: - /bin: utilitare n form executabil: compilatoare, asambloare, instrumente pentru dezvoltarea programelor; - /dev: fiiere speciale pentru dispozitivele periferice: consola sistem, terminale, discuri, imprimant etc.; - /etc: programe pentru administrarea sistemului: fiiere cu parole, comenzi de iniializare; - /lib: biblioteci pentru limbaje de programare i utilitare; - /opt: conine software storage objects; - /tmp: spaiu temporar de manevr folosit de programele de sistem; - / : local partiia activ (de aici se face boot-area); - /: lost+found: director unde se ataeaz fiierele i directorii gsii ca nefcnd parte din nici un sistem de fiiere;

Sistemul de operare

179

- /usr: alte programe necesare utilizatorilor; - /dict: lista de cuvinte, verificarea despririi n silabe; - /man: directori de fiiere text care conin manualul complet de utilizare; - /spoola:t: timpul la care se prelucreaz; - /lpd: driver imprimant; - /var: fiiere obiect nepartajate; - /home: sau /u: director n care se creeaz Home directory pentru fiecare utilizator etc.

8.11.2. Comenzi pentru lucrul cu fiiere


Exist comenzi tipice pentru lucrul cu fiiere n Unix, la fel ca n Linx sau orice alt sistem. n tabelul 8.7 sunt prezentate comenzi pentru vizualizarea, copierea i mutarea fiierelor.
Tabelul 8.7. Comenzi pentru vizualizarea, copierea i mutarea fiierelor cat[-w,-s, -v, t,l]fl f2 catfl cat>f1 catf1f2>f3 chmod[opt] dr_accesf...FN CHMOD R A+RX * chmod700fis cpf1[f2_fn]fis dd[opt=val] mvf1[f2...fn] fis_destmv a b LN[opt] f1[f2 ...fn] fis_destln s a bb Cpio rm[-rfi]f1...fn rm[-rfi]dir1... dirn Concateneaz / afieaz coninutul fiierului. Afieaz f1 Creaz de la tastatur fiierul f1 (CTRL D) Concatenez f1 i f2, rezultatul n f3 Schimb drepturile de acces la fiiere ordinare sau directoare. Adaug recursiv drepturile de citire i execuie pentru toat lumea, pentru toate fis/dir din directorul curent. Atribuie toate drepturile user-ului u (proprietarului) pentru fis, iar g (grup) i o (alii) nici un drept Copiaz fiierele n destinaie, care poate fi fis sau dir Copiaz un fiier n altul efectund eventuale corecturi Mut un fiier/director sau mai multe n destinaie. Schimb numele lui a n b Creaz o legtur la un fiier Creaza o legtur simbolic de la a la bb Fiierul a va putea fi accesat cu numele b, fr a fi copiat de 2 ori pe disc Copiaz fiiere pstrnd structura arborelui de directori terge fiierul sau directorul (-r = recursiv, f = forare, -i = confirmare)

180

Sisteme de operare UNIX

8.11.3. Redirectarea fiierelor


Fiiere standard sunt deschise implicit de shell la deschiderea sesiunii de lucru i atribuite terminalului; acestea sunt: - de intrare (0); - de ieire (1); - de afiarea erorilor (2). Operatorul >" redirecteaz fiierul standard de ieire (ex.: ls -l >fis creaz fis) Operatorul >>"" redirecteaz fiierul standard de ieire (ex.: ls -l >>fis - adaug la fiierul existent fis) Operatorul <" redirecteaz fiierul standard de intrare (ex.: mail < fis -trimite e-mail lui user fiierul fis) Operatorul |" conecteaz ieirea unei comenzi la intrarea alteia, fr a crea fiiere intermediare; se numete mecanismul de pipe; kernel-ul starteaz ambele procese n background, executndu-le sincronizat, ateptnd ieirile din procesul anterior pentru intrri n procesul n derulare. Exist nemumrate sisteme de operare unele nrudite cu cele prezentate, altele cu destinaie special de exemplu sisteme se operare pentru servere, navigare pe internet, pentru tablete, e-book reader, smartphone sau pentru un alt sistem dotat cu inteligen proprie. Studiul se face n funcie de necesitile fiecrui utilizator, nimeni nu poate folosi toate sistemele de operare existente la un moment dat pe pia. Numai lista lor se ntinde pe mai multe pagini i poate fi gsit de exemplu la adresa http://ro.wikipedia.org/wiki/List%C4%83_de_sisteme_de_operare. Nu vor fi tratate n acest carte, poate n alta, viitoare.

S-ar putea să vă placă și