CATEGORII DOCUMENTE |
I. Notiuni generale despre UNIX
2. 1. Caracteristicile sistemelor UNIX
Unix este, din mai multe puncte de vedere, un caz special in lumea sistemelor de operare. Mai intai, locul sau de origine nu este o firma producatoare de calculatoare si nu a fost gandit a fi vandut impreuna cu un anumit calculator. O versiune timpurie a sistemului UNIX, scrisa in limbaj de asamblare pentru calculatorul PDP-11/20 si aparuta la Bell Laboratories in anul 1971( autor Ken Thompson), a fost urmata rapid ( in anul 1973) de o alta scrisa de Dennis Ritchie in C. Aceasta a facut posibila transportarea usoara a sistemului UNIX pe un calculator Interdata 8/32 ( autori Dennis Ritchie si Stephen Johnson) in anul 1976. De atunci, sistemul UNIX a fost implementat pe cele mai diverse arhitecturi de calcul, incepand cu cele pe un singur cip si terminand cu sistemele mai mari precum IBM370 si Craz II. UNIX a pasit in lumea produselor comerciale abia la inceputul anilor '80, cand AT&T a lansat UNIX System V, devenita versiunea de referinta ( un standard de facto ) in lumea UNIX.
Spre deosebire de alte sisteme de operare, UNIX se bucura de o acceptare unanima in lumea universitara, fiind folosit frecvent pentru a ilustra aspecte fundamentale ale teoriei sistemelor de operare.
In afara portabilitatii, sistemul UNIX a promovat mai multe inovatii importante. Una dintre ele este conceptul de conducta (pipe) care permite transmiterea directa a unor date intre doua procese, eliminand astfel fisiere-disc intermediare, pentru a face comunicarea. Consecintele acestui mecanism sunt deosebit de importante. Pe de o parte, servicii relativ complexe pot fi realizate prin compunerea unor functii simple, implementate ca programe de mici dimensiuni. Astfel, daca ls listeaza fisierele unui catalog, iar wc (word count) numara cuvinte, combinatia lor numara fisierele dint-un catalog. Pe de alta parte, se elimina sectiunile duplicate, care ar apare inerent in aceste programe.
La o analiza mai atenta se poate vedea ca faptul mentionat a contribuit din plin la conturarea caracteristicilor sistemului UNIX ca ale unui sistem de operare universal. Instrumentele puse in slujba utilizarii si programarii sistemului sunt remarcabile.
UNIX suporta conectarea in retele de calculatoare si aplicatii de posta electronica, transfer de fisiere la distanta, conectarea la noduri indepartate, etc. de la prima aplicatie de retea (un program de copiere de la UNIX la UNIX, UUPC) inclusa in AT&T Version 7 in 1978 si pana la prima implementare a celebrelor protocoale TCP/IP (utilizate de cea mai intinsa retea de calculatoare, Internet) In plus, se poate afirma, fara teama de a gresi, ca TCP/IP isi datoreaza notorietatea in lumea sistemelor deschise eforturilor facute de Berkeley si raspandirii fantastice a UNIX- ului.(Microsoft l-a adaptat dupa aceea)
2.2. Versiuni de UNIX
In 1974 apare revista Communications of the ACM articolul "The UNIX Time-Sharing System", in care autorii, Ken Thomson si Dennis Ritchie, descriu UNIX Version 5. faptul ar fi ramas probabil fara consecinte prea mari, daca cei interesati nu ar fi aflat ca o copie in format sursa a sistemului poate fi achizitionata pentru numai $150. Acest lucru, asociat cu acela al portabilitatii, a influentat diversificarea sistemului intr-o masura neatinsa de nici un alt sistem de operare.
Lucrurile incep insa sa se aseze de la sine, doar cateva versiuni majore impunandu-se in ultimul timp atentiei utilizatorilor. Ele sunt derivate din AT&T UNIX System V (promovat de Unix System Laboratories -USL, care provine din AT&T ) si 4.3BSD (o mare parte din facilitatile introduse de aceasta dovedindu-se deosebit de populare).
2.3. UNIX in Romania, variante comerciale
Aceasta sectiune contine cateva
cuvinte despre unele dintre sistemele de operare comerciale din familia
UNIX disponibile la noi in
In Romania sunt disponibile doua tipuri de sisteme UNIX: unele fac parte din domeniul public(si sunt destinate amatorilor pasionati de informatica), altele sunt oferite de o serie de firme comerciale. Printre primele merita citate 4.3BSD (Berkeley System Distribution), pentru PC -uri, minicalculatoarele VAX si statii de lucru DEC, si LINUX (un 4.3BSD cu un nucleu modificat). Aplicatiile UNIX pot la randul lor sa provina din domeniul public (eforturile principale apartinand grupurilor GNU-GNU's Not Unix, si OSF - Open Software Foundation), sau sa fie oferite de firmele comerciale.
In prezent oferta comerciala de sisteme de operare din familia UNIX in Romania cuprinde in principal urmatoarele produse ( care de fapt sunt principalele versiuni de Unix din lume):
SCO UNIX System V/386 (The
UNIX System V/386 (UNIX System Laboratories)
HP-UX (Hewlett-Packard)
ULTRIX si OSF.1 (Digital Equipment Corporation)
SOLARIS (Sun Microsystems).
Red Hat Linux
Alte titluri (cum ar fi A/UX al firmei Apple, A/IX al "marelui albastru" IBM, UnixWare al companiei Novell) sunt intr-adevar disponibile, dar prezenta lor este mai degraba simbolica.
In cele ce urmeaza sunt prezentate cele mai importante trasaturi ale fiecaruia dintre sistemele sus-pomenite .
2.3.1. SCO UNIX System V/386
SCO UNIX face parte din ramura AT&T a familiei UNIX, fiind o varianta System V.3. Compatibilitatea cu sistemele din ramura BSD este foarte redusa. Compatibilitatea cu System VR4 este onorabila. Este foarte compatibil cu SCO XENIX. Compatibilitatea cu unele dintre principalele standarde acceptate la ora actuala (POSIX, SVID) este buna; alte standarde importante sunt insa practic ignorate ( de exemplu XPG). Pare ca SCO UNIX se afla la inceputul unui proces de adaptare progresiva la caracteristicile de microcosmos autosuficient ale lumii DOS, tinzand sa devina un standard in sine, pierzand treptat contactul cu triunghiul principal UNIX.
La capitolul lucruri bune, SCO UNIX este unul dintre putinele exemple de sisteme de operare pentru PC-uri care permite lucrul in mod multiprocesor (cu optiunea suplimentara SCO MPX). Existenta emulatorului DOS integrat (produs optional) VP/ix este foarte utila. Capacitatea de a monta sistemele de fisiere DOS este un atu important pentru un sistem de operare destinat PCurilor.
2.3.2. UNIX System V/386 (UNIX System Laboratories)
Este un System VR4 "cinstit" (doar e realizat de USL, stapanii numelui UNIX) destinat microcalculatoarelor bazate pe procesoarele Intel 80386 (486,586). La prima vedere pare solutia ideala: System V Release 4.X Window System Version 11 Release 4.Dar exista si cateva scaderi.
Mai intai, impresia de "repetitie generala". Si SCO UNIX manifesta tendinta de a considera ca unui PC i se poate acorda un inginer de sistem dedicat, la fel ca unui calculator mai scump; dar USL UNIX face aproape strict necesara prezenta unui expert inzestrat cu timp si rabdare.
In concluzie, este vorba de un UNIX pentru cei care iubesc standardele Laboratoarelor UNIX Pentru cei care au nevoie de un UNIX pentru a rula o aplicatie existenta, si vor neaparat sa utilizeze un PC, SCO UNIX este probabil de preferat. Pentru dezvoltarea de programe sub UNIX oricum un PC nu este solutia optima; daca totusi trebuie, atunci USL UNIX System V/386 devine o alternativa serioasa.
2.3.3.HP-UX (Hewlett Packard)
HP UX este sistemul de operare al statiilor HP, Apoll din familia 9000 (seriile 300/400/700) si al minicalculatoarele Hewlett Packard 9000 din seria 800. Istoriceste derivat din 4.3 BSD, incepand cu versiunea 8.0 HP-UX a luat o optiune hotarata spre System V.Versiunea curenta, 9.01, este compatibila System V Release 3, pastrand multe dintre caracteristicile pozitive ale ramurii BSD a familiei UNIX.HP-UX este un sistem foarte echilibrat, respectand toate standardele uzuale (SVID -System V Interface Definition, POSIX, ANSI, XPG- X/Open Portability Guide ) acolo unde este cazul si inovand cu curaj acolo unde problema portabilitatii este neimportanta. Incepand de la versiunea 8.0, HP-UX contine functii de timp real si suporta arhitecturile multiprocesor din seria 9000 oferind capacitati de multiprocesare simetrica (numai procese adevarate, nu si procese "usoare").
Sistemul include automat X Window System version 11 Release 5 (unul dintre putinele X11R5 de pe piata romaneasca), cu interfata Motif si un front-end specific (VUE,Visual User Environment) foarte ergonomic (se poate lucra ore intregi fara a deschide o fereastra de terminal si deci fara a introduce o linie de comanda). Sunt de asemenea automat incluse: NFS ( si PC NFS-ul), TCP-IP (si serviciile uzuale), RPC interfata audio. Conectivitatea este excelenta. Se pot utiliza discuri flexibile DOS. Componenta Soft PC (produs separat) permite executarea de aplicatii DOS pe o statie de lucru din seria 700. Interoperabilitatea cu retele de PC-uri este usor de realizat. Exista un numar foarte mare de aplicatii puternice (ingineresti, stiintifice si economice) care ruleaza sub HP-UX.
Exista numeroase aplicatii
utilizabile sub HP-UX, de la produse de confort din domeniul public (foi de
calcul, jocuri,
2.3.4. ULTRIX (Digital Equipment Corporation)
ULTRIX este un sistem de operare din familia BSD ( este o versiune 4.3BSD), cu cateva modificari de compatibilitate cu System V( un System V "generic", nu SVR 4), in general compatibilitatea cu System V la nivelul interfetei programate este buna( cu BSD este desigur excelenta). La nivelul liniei de comanda compatibilitatea cu System V este numai aproximativa, multe comenzi comportandu-se foarte BSD.
Sistemul contine automat X Window System Version 11 Release 4, TCP/IP, uneltele de dezvoltare. Optiunile implicite la instalare sunt onorabile, dar totusi utilizatorul trebuie sa faca o serie de adaptari. ULTRIX este un sistem performant, cu o documentatie buna si cu un inalt grad de coordonare intre parti. Optional utilizatorul poate alege un grad sporit de securitate( obtinut prin nucleu de servicii de securitate Kerbedos dezvoltat la MIT ). Exista un numar destul de mare de aplicatii care ruleaza sub ULTRIX. Conectivitatea DECNet poate fi asigurata. Conectivitatea cu alte sisteme UNIX este excelenta.ULTRIX ruleaza pe masinile firmei DEC: VAX si DECStation cu procesorul MIPS (pe masinile cu procesorul Alpha DEC ofera OSF.1).Sistemul este destinat mai degraba aplicatiilor ingineresti decat celor economice.
2.3.5. SOLARIS (Sun Microsystems)
SOLARIS (fost SUNOS) este "a treia cale" in dezvoltarea sistemelor UNIX; unicul succesor al 4.3BSD, SOLARIS incearca imposibilul: un UNIX universal compatibil BSD si System V, disponibil pe orice arhitectura. In acest moment SOLARIS exista pe masini SPARC (ale firmei SUN si ale multilor imitatori) cat si pe PC. Abandonand interfata Open Look (si aliniindu-se la standardul de facto Motif), cu facilitati de lucru multiprocesor, cu posibilitatea de a scrie programe compuse din multiple procese "usoare" (multi-threading), cu o interconectivitate demna de invidiat, SOLARIS este un sistem foarte atragator. Pe masinile SPARC este desigur unica optiune posibila. In lume PC-urilor, situatia este mult mai incurcata: sigur ca in perspectiva SOLARIS sau un System VR4/386 oarecare se vor impune. Momentan SCO UNIX cu stabilitatea si autoritatea sutelor de aplicatii importante existente si testate domina cu autoritate. Totusi, daca dezvoltarea de programe este o activitate importanta si trebuie efectuata pe un PC sub UNIX, SOLARIS este o alternativa demna de a fii luata in seama (iar daca dezvoltarea unor programe este activitatea dominanta atunci SCO ar trebui scos din discutie -un singur calculator cu SCO, destinat exclusiv testelor, este suficient).
LINUX
In final, o ultima versiune de UNIX foarte cunoscuta astazi, este Linux. El il are ca principal autor pe Linux Torvald, dar este rezultatul unei colaborari de-a lungul a mai mult de 10 ani cu tineri cercetatori. Acesti tinerii cercetatori pasionati din intreaga lume, in frunte cu Linus Torvald, au proiectat, dezvoltat si pus la punct sistemul de operare LINUX. Acesta reprezinta chintesenta Unix:este fidel tuturor conceptelor Unix, este software liber, are cele mai putine buguri (oare ?), este cel mai stabil, este operational pe orice masina de la 80386 in sus ! Practic, comunitatea Internet l-a imbratisat ca si standard, majoritatea serverelor Internet, mai ales in tarile mai sarace, il folosesc pentru serverele lor. Exista astazi mai multe implementari de Linux, aminitim doar cateva:
Red Hat Linux
Slackware Linux
Debian Linux
Corel Linux
In concluzie singura platforma pe care utilizatorul potential are de ales intre mai multe versiuni UNIX este Intel x86. Pe celelalte calculatoare de echipamente este si singura care ofera un UNIX comercial.
2.4 .Structura sistemului de operare Unix
UNIX este un sistem interactiv, multiutilizator, de uz general. Proiectat initial pentru minicalculatoarele din familia PDP, el este astazi disponibil pe o mare gama de calculatoare, incepand cu microcalculatoarele si terminand cu cele medii-mari. UNIX este un SO relativ mic, insa primitivele lui au fost astfel alese incat sa-i confere o mare putere de exprimare, combinata cu o mare simplitate in utilizare. Structura lui este data in figura urmatoare.
Structura sistemului de orerare Unix
Cdevsw si Bdevsw sunt doua componente de legatura indirecta intre echipamentul hard si nucleul sistemului. Primul, Cdevsw edte un ansamblu de rutine, dependente de masina, prin care se realizeaza legatura dintre perifericele de tip caracter si sistem. Bdevsw este, de asemenea, un ansamblu de rutine dependente de masina, destinat legaturii cu perifericele de tip bloc. Acestea sunt singurele componente care trebuie scrise in limbaj de asamblare al masinii concrete pe care se lucreaza. Practica a demonstrat ca pentru aceste doua pachete de rutine sunt necesare aproximativ 1000 (una mie) linii, sursa in limbaj de asamblare.
Kernel este nucleul SO. El este scris in limbaj "C" si necesita 10.000 - 12.000 linii sursa. Nucleul propriu-zis este practic independent de masina pe care se opereaza. Este partea din sistem relativ ascunsa utilizatorului obisnuit, dar asupra ei lucreaza de regula administratorul sistemului. Prin el se realizeaza legatura cu toate resursele sistemului: periferice, liniii de comunicatie, memorie, timp etc. Are in principal doua sarcini:
- gestiunea proceselor;
- gestiunea perifericelor, inclusiv a nivelului inferior pentru fisiere.
In nucleu se afla inclusiv componenta de planificare, care in UNIX are o importanta deosebita. O caracteristica importanta la UNIX este faptul ca utilizeaza conceptul de proces inclusiv la nivel de utilizator obisnuit.
File System este componenta care organizeaza si gestioneaza toate datele care se vehiculeaza in sistem. Aceasta componenta este cea mai importanta parte a SO UNIX, deoarece el priveste conceptul de fisier intr-un sens mai larg decat la alte SO. Mecanismele lui permit organizari incepand cu cele mai simple si ajungand la cele mai complexe. Vom dedica o sectine speciala acestor componente UNIX. Pentru moment este suficient sa retinem faptul ca UNIX este primul SO care utilizeaza o structura arborescenta a directorilor de fisiere.
Shell este interpretatorul de comenzi UNIX. El nu face parte in mod expres din sistem, ci este mai degraba o parte din ceea ce i se ofera in mod direct utilizatorului. Dupa cum reiese din figura, shell apare atat ca si interfata intre utilizator si nucleu, cat si ca parte integranta a componentei de dezvoltare de programe. Shell are in principal doua sarcini:
- supravegheaza fiecare terminal in parte, si este gata in orice moment sa preia, sa decodifice si sa transmita nucleului comenzile date de utilizatorii de la terminale;
ofera utilizatorului posibilitatea sa controleze succesiuni de comenzi adresate nucleului. Aceste posibilitati de control sunt comparabile cu posibilitatile de control a succesiunii instructiuniilor din limbajele de programare ADA si Pascal. De fapt shell este realmente un limbaj de programare, instructiuniile lui de baza fiind comenzile UNIX.
UNIX din punct de vedere a utilizatorilor, are trei calitati:
- este un sistem interactiv, deoarece toate comenzile le primeste de la terminale, in regim conversational;
- este un sistem multiuser, deoarece lucreaza in acelasi timp cu mai multi utilizatori simultan. Disciplina de servire a lor este time-sharing;
- este un sistem multitasking, datorita faptului ca fiecare utilizator poate, in mod constient, sa-si lanseze simultan mai multe programe in executie. Daca un utilizator doreste acest lucru, atunci el va proceda, folosind shell, dupa cum urmeaza. Atunci cand da o comanda si stie ca dupa ea va da o alta inainte ca prima sa se termine de executat, linia de pe terminal cu care lanseaza prima comanda trebuie sa se incheie cu caracterul "&". Prin acest caracter shell este anuntat ca comanda respectiva va fi executata in regim background (ascuns). Dupa lansare, shell tipareste pe terminal un numar care este numarul procesului respectiv. Dupa aceasta, utilizatorul poate da urmatoarea comanda. Evident, cele doua comenzi nu pot fi lansate daca folosesc resurse in comun. Spre exemplu, nu pot fi lansate in acelati timp doua programe daca ambele afiseaza cate un fisier text pe terminal. Daca totusi are loc o astfel de lansare, sistemul are grija sa execute secvential, in ordinea in care au fost lansate (deci nu se obtine nici un castig de timp).
Asa cum este si firesc, numarul de programe lansate in acelasi timp de la un terminal nu este limitat. Iata spre exemplu cum pot fi lansate trei programe: primul copiaza fisierul A intr-un fisier B, al doilea tipareste fisierul C la imprimanta si al treilea face compilarea Pascal a unui program D.
$ cp A B &
$ lp C &
$ pascal D
In legatura cu ceea ce ofera UNIX in partea lui de servicii, am ilustrat in figura doar pe cele mai importante. In continuare, doar citeva cuvinte despre fiecare.
Manipularea fisierelor text. Permite rezumatele unor directori, copierea si concatenarea unor fisiere, stergerea sau schimbarea potitiei unui fisier in structura arborescenta.
Manipularea fisierelor text. Acestor fisiere li se acorda o importanta aparte. Astfel, exista care cauta intr-un fisier linii cu un anumit continut, detecteaza fisiere care inglobeaza in ele un anumit continut ordoneaza alfabetic liniile unui fisier text, determina intr-un fisier numarul de linii, cuvinte etc.
Editoarele de texte au functii cunoscute. Sa remarcam faptul ca UNIX a fost printre primele SO dotate cu un editor de texte video (vi).
Preparatoare de documente au fost, credem noi, utilitarele cu care UNIX si-a castigat mare popularitate in primii ani. Aceste utilitare permit punerea in pagina a manualelor si cartilor din toate domeniile. Se permite scrierea comoda a tabelelor, a expresiilor matematice, fizice si chimice, desenele si graficele (cele rezonabile) pot fi descrise pentru a fi elaborate automat etc. desigur maniera de lucru. De exemplu, LATEX un editor performant folosit pentru scrierea articolelor.
Comunicatii intre utilizatori. UNIX este la ora actuala cel mai raspandit SO care practica posta electronica. Conceptul fundamental cu care opereaza este acela de casuta postala. Aceasta este o zona in memoria interna sau (mai degraba) pe disc, proprie fiecarui utilizator, unde acesta depune mesajele lui pentru diversi destinatari si unde le primeste pe cele ce-I sunt adresate. Periodic sistemul expediaza mesajele spre destinatari. Tot periodic, sau la cerere, utilizatorul este informat asupra "corespondentei" lui.
Administratorul sistemului are ca sarcina intretinerea fisierelor de parole, de evidenta a utilizatorilor sistemului etc. de asemenea, el intretine sistemele de fisiere existente pe discurile si benzile sistemului, face periodic salvari si restaurari etc.
Sub UNIX exista trei tipuri de fisiere: obisnuite, speciale si directori.
Fisierele obisnuite sunt privite ca siruri de octeti, accesul la un octet putandu-se face fie secvential, fie direct prin numarul de ordine al octetului.
Fisierele speciale. UNIX priveste fiecare dispozitiv de I/O ca si un fisier de tip special. Din punct de vedere al utilizatorului, nu exista nici o deosebire intre lucrul cu un fisier disc normal si lucrul cu un fisier special.
Fisierele directori. Un fisier director se deosebeste de un fisier obisnuit numai prin informatia continuta in el. Un director contine lista de nume si adese pentru fisierele subordonate lui. Uzual, fiecare utilizator are un director propriu care puncteaza la fisierele lui obisnuite, sau la alti subdirectori definiti de el. O intrare intr-un director are forma:
Numele fisierului |
Inumar |
Specificarea numelor de fisiere Unix o vom descrie in cele ce urmeaza: Inumar este un numar de ordine catre o structura de date care descrie reprezentarea fisierului pe suportul disc. Fiecare director doua intrari cu nume speciale si anume:
"." (punct) care puncteaza spre insusi directorul respectiv;
".." (doua puncte succesive), care puncteaza spre directorul parinte.
Specificarea fisierelor Unix
Specificarea unui fisier Unix in sistemul de directori se face astfel:
[ / ] director1/director2/. /directorn/nume
Daca primul "/" este prezent, atunci specificarea incepe de la directorul radacina, iar daca lipseste, ea incepe cu directorul curent. Este credem momentul sa mai insistam odata asupra similitudinilor si diferentelor DOS-Windows pe de o parte si Unix pe de alta parte. Reprezentarile sunt aproape identice, deosebirea esentiala constand in caracterul de separare intre numele de directori, care este, la DOS-Windows in loc de
Specificarea unui nume de fisier-director. Un nume fisier UNIX este specificat printr-un sir de 14 caractere ASCII. Teoretic, pot fi foloste pentru specificare orice caractere, dar practic exista anumite restrictii. Restrictiile sunt impuse de componenta shell, care foloseste anumite caractere pentru specificari speciale. Din acest motiv recomandam evitarea lor cand se specifica un anumit fisier. Printre aceste caractere amitim urmatoarele:
> < | [ ] * ? - ! /
pentru siguranta, este bine sa se foloseasca pentru nume litere mari, litere mici, cifrele zecimale, caracterul si caracterul (liniuta de subliniere underscore). Spre deosebire de celelalte SO, UNIX face distinctie intre literele mari si cele mici. De asemanea caracterul '.' (punct) poate sa apara oriunde in numele unui fisier.
Specificarea genetica a unei familii de fisiere, se face folosind cateva constructii, dintre care unele le-am intalnit deja. Astfel caracterul inlocuieste orice sir de caractere, iar caracterul inlocuieste orice caracter (unul singur).
Este posibila specificarea unui grup de caractere, prin constructii de forma:
[sir] [!sir]
Constructia sir este un sir de caractere, in care poate sa apara o constructie de forma s-d. Constructia s-d indica toate caracterele (in ordine ASCII) dintre s si d. De exemplu constructia [A - F] indica primele sase litere mari ale alfabetului.
Prima forma specifica oricare caracter din sirul specificat. De exemplu, o constructie de forma A[aeiou]B indica un nume de trei litere, prima litera fiind "A", ultima fiind "B", iar cea din mijloc oricare dintre cele cinci litere specificate.
Forma a doua indica ce caractere nu pot sa apara in pozitia respectiva. Deci prin A[!aeiou]B se cere ca litera din mijloc sa nu fie una dintre cele cinci litere specificate.
Principalele directoare din structura standard de fisiere Unix.
Structura de fisiere UNIX are inceputul intr-o forma standard. In figura urmatoare prezentam partea de inceput a unui director arborescent pentru un disc UNIX.
root spool saf uucp news mail cron opt preserve adm tmp ccs src ucb share include lib sbin bin tmp
Structura de directori Unix
In cele ce urmeaza vom descrie, pe scurt, continutul fiecaruia dintre directorii din figura.
Directorul /etc contine informatii specifice masinii necesare intretinerii sistemului, informatii de configurarea sistemului. Acestea sunt de fapt datele restrictive si periculoase din sistem. Un exemplu de fisier ce contine informatii specifice masinii este, spre exemplu, /etc/rc2.d care este un director ce contine programe shell executate de procesul init la schimbarea starii. Tot aici sunt plasate fisierele /etc/passwd, /etc/group, /etc/shadow care sunt folosite pentru administrarea utilizatorilor.
Directorul /home este folosit pentru directorii gazda ai utilizatorului. In momentul intrarii in sistem, fiecare utilizator indica directorul lui, care este fixat ca director curent (home directory). Desi se poate trece usor de la un director la altul, in mod normal fiecare utilizator ramane in propriul lui director, unde isi rezolva propria lui structura arborescenta de directori. Exista insa cel putin trei exceptii, asupra carora vom revenii in sectiunole urmatoare:
- se doreste utilizarea unei structuri arborescente de catre mai multi utilizatori;
- se doreste utilizarea in comun a unui fisier obisnuit care are ca structura mai multi directori parinte;
- se doreste legarea la un anumit subdirector al unui sistem de directori, aflat pe un alt periferic.
Directorul /usr este folosit in mod traditional pentru a stoca fisierele ce pot fi modificate. La primele versiuni de Unix continea si fisierele utilizatorilor. In prezent este punctul de montare pentru partitia ce contine usr. In prezent, el contine programe executabile dependente si independente de sistemul de fisiere, precum si fisiere necesare acestora, dar care nu cresc dinamic. Asupra continutului de subdirectoare ale lui /usr vom reveni putin mai tarziu
Directorul /bin contine programele principalelor comenzi standard Unix; compilatoare, sabloane, asambloare, editoare de texte, utilitare etc. Versiunile mai noi de Unix plaseaza acest director in /usr/bin
Directorul /sbin (super-utilizator bin) contine comenzi critice pentru procedura de incarcare a sistemului. Orice comenzi administrative care necesita lucrul monoutilizator sunt in acest director. Copii ale acestor comenzi se afla in directoarele /usr/bin si /usr/sbin astfel incat el (/sbin) poate fi refacut daca este necesar.
Directorul /lib contine diverse biblioteci si baze de date necesare apelurilor sistem. Doar versiunile mai vechi de Unix plaseaza acest director in , cele actuale il plaseaza in /usr/lib
Directorul /dev este folosit pentru memorarea fisierelor speciale (fisierele devices). Practic, fiecare tip de terminal si fiecare tip de unitate de disc trebuie sa contina un altfel de driver.
Directorul /stand contine informatiile necesare incarcarii sistemului. Contine fisiere de tip bfs (bootable file system).
Directorul /mnt este folosit pentru a monta un sistem de fisiere temporar. De exemplu, un sistem de fisiere de pe un disc flexibil poate fi montat in /mnt pentru a verifica fisierele de pe aceasta discheta.
Directorul /spool este plasat in doar in versiunile mai vechi de Unix. In el sunt memorate fisierele tampon temporare destinate prelucrarilor asincrone: listari asincrone de fisiere (/spool/lpd) si executia unor comenzi (/spool/at
Directorul /export este folosit ca punct implicit de montare pentru un arbore de sistem de fisiere exportat pentru fisierele in retea gestionate prin pachetul NFS (network file system).
Directorul /var este folosit pentru memorarea fisierelor care cresc dinamic. In particular multe dintre versiunile de Unix tin in acest director fisierele INBOX cu casutele postale ale utilizatorilor. Structura de subdirectoare a lui /var le vom descrie ceva mai incolo.
Directorul /tmp este folosit pentru a memora fisiere temporare pentru aplicatii. In mod normal aceste fisiere nu sunt salvate si sunt sterse dupa o anumita perioada de timp.
In continuare vom descrie pe scurt directorul /usr. Dupa cum se poate vedea, unele dintre subdirectoare sunt plasate (si au fost descrise) la nivel de radacina . Versiunile mai noi de Unix, incepand cu SVR4, le-au coborat din radacina ca subdirectoare ale lui /usr. Este cazul directoarelor bin, sbin, lib. Este si cazul Linux.
Directorul /usr/include contine fisiere header (*.h) standard ale limbajului C de sub Unix.
Directorul /usr/share contine o serie de directoare protejabile in retea. In multe dintre sistemele noi, in el se afla directoarele : man cu manuale Unix, src cu sursele C ale nucleului Unix si lib mai sus prezentat.
Directorul /usr/ucb contine programe executabile compatibile Unix BSD.
Directorul /usr/src contine textele sursa C ale nucleului Unix de pe masina respectiva.
Directorul /usr/ccs contine instrumentele de dezvoltare a programelor C oferite de Unix: cc, gcc, dbx, cb, indent etc.
In continuare vom descrie continutul directorului /var. Ca si mai sus, unele subdirectoare de la nivelele superioare au fost mutate aici de catre versiunile mai noi de Unix. Este vorba de directoarele spool si tmp
Directorul /var/saf contine o serie de fisiere jurnal si de contabilizare a facilitatilor de servicii oferite.
Directorul /var/mail contine casutele postale implicite ale utilizatorilor (INBOX). Pentru unele sisteme, ca de exemplu LINUX, acestea se afla in /var/spool/mail
Directorul /var/cron contine fisierele jurnal necesare serviciilor executate la termen cron.
Directorul /var/opt constituie un punct de montare pentru diferite pachete de aplicatii.
Directorul /var/preserve contine, la unele implementari Unix (SVR4) fisiere jurnal necesare refacerii starii editoarelor de texte "picate" ca urmare a unor incidente.
Directorul var/adm contine fisiere jurnal (log-uri) de contabilizare si administrare a sistemului.
Dupa cum se poate vedea usor, structura de directori Unix incepand de la radacina este relativ dependenta de tipul si versiunea de Unix. De fapt, este vorba de "Unix vechi" si "Unix noi". Tabelul de mai jos prezinta cateva corespondente intre vechile si noile plasari de fisiere.
Nume vechi |
Nume nou |
/bin |
/usr/bin |
/lib |
/usr/lib |
/usr/adm |
/var/adm |
/usr/spool |
/vsr/spool |
/usr/tmp |
/var/tmp |
/etc/termcap |
/usr/share/lib/termcap |
/usr/lib/terminfo |
/usr/share/lib/terminfo |
/usr/lib/cron |
/etc/cron.d |
/usr/man |
/usr/share/man |
/etc/<programe> |
/usr/bin/<programe> |
/etc/<programe> |
/sbin/<programe> |
Dupa cum se observa, in specificarea fisierelor UNIX nu apare zona de periferic. Acest fapt nu ete intamplator, ci este cauzat de filozofia generala de acces la fisierele UNIX. Conceptul esential prin care se rezolva aceasta problema este cunoscut in UNIX prin termenii de montare si demontare a unui sistem de fisiere.
Operatia de montare consta in conectarea unui sistem de fisiere, de pe un anumit disc la un director vid existent pe sistemul de fisiere de pe discul implicit.
Sa urmarim cele ilustrate in figura de mai jos. In figura este data structura sistemului de fisiere activ. Directorul b este vid (nu are descendenti). In figura este data structura de fisiere de pe un disc aflat (sa zicem) pe unitatea de disc nr. 3, cu care intetionam sa lucram. Pentru aceasta, se va da comanda privilegiata UNIX:
#/etc/mount /dev/fd3 /b
prin ea se indica legarea discului al carui fisier special (driver) poarta numele fd3 (si care se refera la discul nr.3), la directorul vid /b. Urmare a legarii, se obsine structura de fisiere activa din figura.
Root Disc 3 Root
X y
a b a b
c d c d x y
Operatia de montare
Operatia de demontare are efectul invers.
In practica implementariilor UNIX, la incarcarea SO se face automat o operatie de montare. Astfel, pe discul sistem directorul root are subdirectorul usr vid. Continutul complet al directorului usr se racordeaza la root printr-o operatie de montare.
De asemenea, operatia de montare este folosita si la utilizarea SO UNIX intr-o retea de calculatoare. Sistemul aflat pe post de server efectueaza operatii de montare cu toate directoarele root aflate pe SO legate la reteaua respectiva.
II. Sistemul de operare Red Hat LINUX.
1. Administrarea sistemelor de fisiere.
1.1. Structura sistemului de fisiere Linux
Fisierele sunt grupate in sistemele de fisiere, partajand spatiul de stocare existent (hard-disk-uri etc.) . In UNIX, sistemele de fisiere au urmatoarele caracteristi principale :
Sistemele de fisiere nu sunt neaparat localizate pe discurile locale din sistem , ci pot fi :
Partitii de pe discurile instalate in sistem ;
Directoare exportate de alte masini (prin NTFS ,Samba ,NCP,etc. ) ;
Imagini ISO (imagini de discuri CD , aflate in fisierele obisnuite) ;
Sisteme virtuale (care nu exista fizic ,cum ar fi /dev sau /proc ).
Fisierele pot fi de mai multe tipuri:
Obisnuite ,continand date ,programme ,etc. ;
Directoare ;
Speciale :
Dispozitive ;
Pipe-uri (utilizate inre comunicatia dintre proces ) ;
Socket-uri (folosite pentru comunicatia in retea ) ;
Legaturi simbolice (socket-uri catre fisiere sau directoare ,pentru o mai usoara gasire sau accesare ).
Sistemul de fisiere UNIX este organizat intr-o ierarhie unica, avand in varf direcatorul radacina (parinte ) sau root , / .
Structura sistemului de fisiere Linux este standardizata in documentul numit Filesystem Hierarchy Standard (FHS). Standardul este disponibil la adresa https://www.phatname.com /fhs
Contine intrari care reprezinta dispozitivele din sistem .Aceste fisiere sunt vitale pentru functionarea sistemului .
Este rezervat sistemelor de configurare .Trebuie sa contina directoarele X11 ,care contine fisierele de configurare ala sistemului X Windows (cum ar fi XF86Config),si skel,care contine fisierele implicite ale utilizatoatorilor copiate la crearea acestuia.
Contine fisierele utilizatorului .Contine cate un subdirector pentru fiecare utilizator in parte , purtand numale acesteia Directoarele utilizatoarilor se numesc directoare home
Contine bibliotecile necesarre pentru executia executabilelor din /bin si /sbin (importante, de exemplu ,pentru pornirea sistemului ).
Contine sisteme de fisiere montate temporar, cum ar fi Cd-uri sau diskete
Ofera spatiu pentru aplicati softwarre mari ,cu o structura complexa de directoare sau care contin subpachete
Contine fisiere virtuale speciale care fie extrag imformati din nucleu ,fie trimit imformati catre nucleu
Contine ecutabile utilizate dor de catre root .Executabilele sunt utilizate doar pentru pornire , oprire si repararea sistemelor de fisiere .
Contine fisiere folosite de toti utilizatori ;in mod normal este montat intr-o partitie separata , doar cu posibilitatea de citire .Tebuie sa contina urmatoarele directore bin (contine executabile ),doc (contine documentati) ,etc (contine fisiere de configurare generala), games (contine jocuri ) , include (contine fisiere header C) , kerberos (contine sistemul Kerberos ) , lib (contine fisiere obiect si biblioteci utilizate de catre programe ), libexec (contine mici programe apelate de aplicatii ), sbin (contine executabile pentru administrarea sistemului ,altele decat cele din /sbin ) share (contine fisiere independenete de platafoarma ) , src (continde codul sursa ) , iar X11R6 contine sistemul X Windows .
Acest director este rezervat pentru uzul administratorului de sistem pentru a instala programme local ( /usr poate fi exportat si catre alte masini pentru a economisi spatiu pe respectivele masini ). Structura acestui director este similara directoarului /usr .
Contine fisiere variabile utilizate de aplicati . include cozi de asteptare , informati administarative si jurnale , baze de date precum si fisiere temporare . Trebuie sa contina urmatoarele subdirectoare : arpwatch , cache ,db ,gdm, kerberos ,lib ,local , lock , log , named , nis , opt , preserve , run , spool , (cu urmatoarele subdirectoare : anacron , at , cron , fax , lpd , mail , mqueue , news , rwho , samba , slrnpull , squid , upadate , uucp , uucpublic ,vbox ,voice ) , tmp , www,yp.Jurnalele sistemului se gasesc in /var /log .
1.2. Gestiunea atributelor fisierelor
In UNIX fiecare fisier sau director are un proprietar ( owner ) si un grup (group) pentru care se pot specifica drepturi de acces.De asemenea , se pot stabili drepturi si pentru ceilalti utilizatori (others ) ctre nu detin fisierul in cauza si nici nu fac parte din grupul respectiv drepturile asociate unui fisier sunt :
Pentru directoare drepturile de acces au semnificatie diferita in sensul ca r reprezinta dreptul de inspectare a continutului directorului ( ls ) , w permite adugarea sau stergerea de fisiere iar x este dreptul de intrare in director ( comanda cd ).
De asemenea pentru fisiere mai exista trei atribute speciale ( biti ) :
#ls -la /etc/ppp
total 19
drwxr-xr-x 4 root root 4096 dec 21 18:27 .
drwxr-xr-x 44 root root 4096 ian 12 20:38 ..
-rw------- 1 root root 78 aug 10 2001 chap-secrets
-rw-r--r-- 1 root root 927 aug 8 2001 firewall-masq
-rw-r--r-- 1 root root 825 aug 8 2001 firewall-standalone
-rw-r--r-- 1 root root 0 aug 28 2001 ioptions
-rwxr-xr-x 1 root root 310 dec 26 2000 ip-down
-rwxr-xr-x 1 root root 2839 iul 24 2001 ip-down.ipv6to4
-rwxr-xr-x 1 root root 362 dec 26 2000 ip-up
-rwxr-xr-x 1 root root 4845 iul 24 2001 ip-up.ipv6to4
-rw-r--r-- 1 root root 5 aug 10 2001 options
-rw------- 1 root root 77 aug 10 2001 pap-secrets
drwxr-xr-x 3 root root 4096 dec 21 18:27 peers
drwxr-xr-x 2 root root 4096 dec 21 18:27 plugins
-rw-r--r-- 1 root root 93 aug 8 2001 pppoe-server-options
Drepturile de acces sunt afisate de comanda ls -l printr-o secventa de zece caractere . Primul caracter se refera la tipul fiserului dupa cum urmeaza :
- Fisier obisnuit
b Fisier special de tip bloc
c Fisier special de tip caracter
d Director
l Legatura simbolica
p Pipe
s Socket
Urmatoarele sunt trei grupuri a cate trei caractere , primul grup facand referire la drepturile proprietarului , al doilea la cele ale grupaului si al treilea la drepturile celorlalti utilizatori . In mod analog primul caracter din gru semnifica dreptul r al doilea w si al treilea x .Daca un anumit drept nu este setat apare caracterul - .
Se realizeaza cu ajutorul comenzi chmod . Pentru proprietari se utilizeaza litera "u" , pentru grup "g" iar pentru ceilalti utilizatori "o" . Penru acordarea si revocarea de drepturi se foloseste caractaerul + respctiv - .De exemplu daca se doreste acordarea drepturilor de citire si scriere altor utilizatori pentru fisierul test.cc se foloseste comanda :
#chmod o +rw test.cc
Mai exista o modalitate de modificare a drepturilor de acces. Fiecarui grup de drepuri i se asociaza o valore numerica : Fiecarui drept acordat ii corespunde valoarea 1 , fiecarui drept revocat ii corespunde valoarea 0 .Rezulta astfel un numar binar format din trei cifre care trebuie transformat apoi in zecimal . De exemplu , pentru rw- corespunde valoarea 110 adica 6 in zecimal . Deci pentru a seta drepturile rw- rw- r- pentru fisierul text .cc va fi utilizata comanda :
#chmod 664 test.cc
Pentru modificarea proprietarului se foloseste comanda chown. Comanda
#chown dragos.autori test.cc
va stabili proprietarul dragos si grupul autori pentru fisierul test.cc specificarea grupului nu este obligatorie. De asemenea, schimbarea doar a grupului se poate face cu comanda chgrp.
1.3. Montarea si demontarea sistemelor de fisiere
Montarea reprezinta procesul de a face disponibil continutul unui sistem de fisiere (de exemplu, continutul unui disc CD-ROM), asimilandu-l in cadrul structurii de directoare a sistemului. Cu alte cuvinte, un sistem de fisiere poate fi montat/demontat la, respectiv de la ierarhia sistemului. Singura exceptie o face ierarhia radacina, care este intotdeauna montata incepand cu momentul pornirii sistemului. Toata ierarhia de fisiere si directoare ale unei partiti sau ale unui disc poate fi montata in orice director al sistemului-radacina. Dupa montare, directorul-radacina al sistemului de fisiere montat inlocuieste continutul directorului unde a fost montat.
Montarea se face utilizand comanda mount, avand urmatoarea sintaxa:
#mount [optiuni] nume_dispozitiv punct_de_montare
unde optiuni pot fi:
-r monteaza sistemul de fisiere in mod read-only (numai citire)
-t specifica tipul sistemului de fisiere (vezi tabelul 1.3)
-o specifica diferite optiuni de montare (vezi tabelul 1.4)
-w monteaza sistemul de fisiere in mod scriere
Directorul punct_de_montare trebuie sa existe, altfel va fi semnalata eroare.
De exemplu, pentru a monta discul CD-ROM in /mnt/cdrom:
#mount /dev/cdrom /mnt/cdrom
#mount /dev/fd0 /mnt/floppy
Demontarea se face utilizand comanda unmount, avand urmatoarea sintaxa:
#unmount nume_dispozitiv (sau punct_de_montare)
Ex. Demontarea CD-ROM-ului deja montat:
#unmount /dev/cdrom
in loc de /dev/cdrom se poate introduce /mnt/cdrom
Procesul de montare automata este controlat de fisierul de configurare /etc/fstab. Acesta este structurat pe linii, continand sase campuri:
Tabelul 1.1. Structura fisierului /etc/fstab
Camp |
Descriere |
Nume dispozitiv |
Numele de dispozitiv a partitiei |
Punctul de montare |
Directorul in care va fi montat dispozitivul |
Tipul sistemului de fisiere |
Tipul sistemului de fisiere: ext2, swap, vfat, iso9660 etc. |
Optiuni |
Optiuni asupra operatiunii de montare, separate prin virgula. In general, se utilizeaza defaults. Daca este specificata optiunea noauto, sistemul de fisiere nu va fi montat automat la pornire. |
Frecventa salvarii |
Frecventa cu care sistemul de fisiere va fi salvat |
Ordinea verificarii |
Un numarcare indica ordinea in care vor fi verificate sistemele de fisiere. Pentru sistemul -radacina trebuie sa aiba valoarea 1, iar pentru swap valoarea 0. sistemele pentru care valoarea acestui camp este egala vor fi verificate in paralel (recomandat doar daca se afla pe discuri diferite). |
Furnizam in continuare un fisier /etc/fstab, de exemplu:
# device mount type options dump fsck
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/hda3 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
Sistemele de fisiere specificate in
/etc/fstab sunt montate automat la pornirea sistemului (exceptand cele avand
optiunea noauto) si demontate automat la oprirea sistemului. De asemenea, pentru sistemele
specificate in acest fisier de configurare, la apelul comenzii
Numele dispozitivului |
Tipul dispozitivului |
/dev/hda |
Primul controler IDE, unitatea conectata ca master |
/dev/hdb |
Primul controler IDE, unitatea conectata ca slave |
/dev/hdc |
Al doilea controler IDE, unitatea conectata ca master |
/dev/hdd |
Al doilea controler IDE, unitatea conectata ca slave |
/dev/sda |
Primul disc SCSI |
/dev/sdb |
Al doilea disc SCSI |
/dev/scd0 |
Prima unitatea CD-ROM SCSI |
/dev/scd1 |
A doua unitate CD-ROM SCSI |
/dev/fd0 |
Prima unitae floppy |
/dev/fd1 |
A doua unitate floppy |
Pentru discuri fixe, numele dispozitivului trebuie urmat de numarul partitiei, de exemplu /dev/hda1 pentru prima partitie de pe discul /dev/hda. Linux permite, de asemenea, montarea doar a unei sesiuni a unui disc CD-ROM, adaugand numarul sesiunii la numele dispozitivului (e.g. /dev/hdc2), cu mentiunea ca numerotarea incepe de la zero.
Tipul sistemului |
Descriere |
Ext2 |
Sistemul clasic de fisiere Linux |
Ext3 |
Noul sistem de fisiere linux, bazat pe ext2, cu suport pentru jurnalizare |
Reiserfs |
Noul sistem de fisiere reiserfs, cu suport pentru jurnalizare, cu performante mai bune decat ext2 in anumite situatii |
Swap |
Partitia pentru memorie virtuala |
Vfat |
Sistemul de fisiere windows, cu suport pentru nume lungi de fisiere |
Msdos |
Sistemul clasic MS-DOS |
Iso9660 |
Sistemul de fisiere pentru discuri CD-ROM |
Nfs |
Sistemul de fisiere NFS, aflat la distanta |
Optiuni de montare
Tabelul 1.4. Optiuni de montare a sistemelor de fisiere
Numele optiunii |
Descriere |
Defaults |
Optiunea uzuala de montare |
Ro |
Nu este permisa scrierea (read-only) |
Rw |
Este permisa scrierea |
Nosuid |
Nu este permis modul SUID |
Remount |
Remonteaza sistemul de fisiere (utilizat in general pentru modificarea optiunilor de montare) |
User |
Permite utilizatorilor obisnuiti sa monteze sistemul de fisiere |
Noauto |
Sistemul de fisiere nu va fi montat automat la pornire |
1.4. Verificarea si repararea sistemelor de fisiere
Oprirea fortata a sistemului sau caderile de tensiune pot fi cauza defectarii sistemelor de fisiere montate (aceste evenimente nedorite pot fi preintampinate prin utilizarea unui sistem de fisiere jurnalizat, cum ar fi ext3 sau reiserfs). Verificarea si repararea sistemelor de fisiere se realizeaza cu ajutorul utilitarului fsck. Acest utilitar este apelat automat la pornirea sistemului pentru fiecare sistem de fisiere specificat in /etc/fstab (evident, fara optiunea noauto) si care nu a fost demontat corect. Exceptand sistemul-radacina, fsck poate rula doar pentru siseme de fisiere nemontate. Pentru a rula fsck pe sistemul-radacina, sistemul trebuie adus in mod single-user (prin pornirea nucleului cu optiunea single).
Programul fsk are urmatoarea sintaxa:
#fsck [optiuni] nume_dispozitiv
optiunile uzuale sunt:
-p repara automat toate erorile aparute, daca aceasta nu modifica continutul nici unui fisier;
-n raspunde "nu" la toate intrebarile; afiseaza dar nu repara nici o eroare aparuta;
-y raspunde "da" la toate intrebarile; repara orice eroare aparuta, indiferent de urmari;
-f verifica sistemul chiar daca nu prezinta probleme
de exemplu, verificarea partitiei /dev/hda2 care nu a fost demontata corect la oprirea sistemului se va face prin comanda:
fsck -y /dev/hda2
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 4085
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved