SISTEMUL DE FISIERE UNIX
In acceptia UNIX-ului, un fisier reprezinta o succesiune de octeti. Fisirele sunt organizate intr-o structura de arbore formata din directoare. Acestea sunt si ele fisiere care contin infomatii de regasire a altor fisiere.
Ele permit o grupare din punct de vedere logic in direcoare. Sistemul permite crearea atator directoare, cate sunt necesare. A da posibilitatea sa se creeze directoare este un aspect pozitiv, dar care nu rezolva integral problema. Ideea care sta la baza sistemului de fisiere la UNIX este ierarhia.
Fiecare director poate contine alte directoare, care la randul lor contin alte directoare, pe un numar de niveluri nelimitat. Acest lucru permite o grupare optima a fisierelor in directoare.
Un alt aspect rezolvat in conditii foarte bune la UNIX, il constituie sistemul de proiectie al fisierelor.
Exista un control riguros al accesului la fisiere (periferice) absolut necesar in sistemele multiutilizator. Una din noile facilitati ale UNIX este asocierea unor fisiere speciale ficarui dispozitiv de I/E.
In UNIX se deosebesc trei tipuri de fisiere:
-fisiere ordinare;
-fisiere director;
-fisiere speciale.
Fisiere ordinare
Un fisier ordinar este folosit pentru memorare de informatii pe suport magnetic; el poate contine un program sursa (text) sau unul sub forma de cod executabil(binar), precum si date necesare executiei programelor.
Fisierele ordinare reprezinta singurul tip de fisiere folosit pentru memorarea pe termen lung a informatiilor.
Numele fisierelor poate fi de maxim 14 caractere (tiparibile) si nu pot exista in acelasi director mai multe fisiere cu acelasi nume. Este posibil ca acelasi fisier sa poarte diferite nume. Deoarece in orice director sistemul foloseste cu destinatie speciala numele si acestea nu pot fi folosite de utilizatori.
Sistemul UNIX nu impune anumite conventii cu privire la numele fisierelor. Cu toate acestea, anumite programe sistem cer ca fisierele pe care le prelucreza sa poarte anumite sufixe: .sh, pentru programele Shell, .bas, pentru programele BASIC, .c, pentru programele C. Fisierele care contin cod executabil nu au de obicei sufix.
Exista doua tipuri de fisiere ordinare: text si binare. Fisierele text contin numai caractere ASCII, pe cand cele binare contin toate cele 256 de valori posibile pentru fiecare octet.
Din punctul de vedere al sistemului de operare, in fisier exista un sir de octeti de lungime nedefinita, terminat cu un caracter special, EOF. Din punct de vedere utilizator, fisierele text se subdivid in linii terminale cu NL.
In general, sistemul nu recunoaste nici o structura logica a informatiei din fisier, acest lucru revenind in exclusivitate programului utilizator.
Fisiere director
Directoarele sunt fisiere care contin liste (cataloage) de fisiere. Sistemul de directoare este intretinut de sistemul de operare. Programele pot citi directoarele, dar sistemulare grija ca acesta sa nu modifice directoarele, pentru a se putea garanta integritatea sistemului de directoare. Toate operatiile de adaugare a unui fisier nou in director sau de stergere se fac de programe prin apelul unor functii sistem.
Un director este organizat ca o tabela de traducere nume-identificator intern (i-nod). Fiecare utilizator are un director propriu, in care isi depune propriile fisiere. Intr-un director se ataseaza fisiere ordinare sau alte directoare care grupeaza colectii de fisiere cu aceeasi destinatie.
Sistemul de operare nu lucreaza in interior cu numele fisierului, ci cu un numar numit i-nod. In orice fisier director exista si fisierele cu numele care identifica i-nodul directorului tata in care acesta apare ca subdirector.
In timpul unei sesiuni de lucru utilizatorul se poate muta dintr-un director in altul, care devine astfel director curent, cu ajutorul comenzii cd. Se observa ca fisierele sunt grupate in directoare, iar directoarele sunt organizate intr-o ierarhie.
Se creaza astfel o imagine a unui sistem de fisiere ierarhizat sub forma unui arbore, in varful caruia se afla directorul radacina-root (notat cu /).
In UNIX, principalele directoare folosite de sistem sunt urmatoarele:
/bin- care contine repertoarul utilizatorelor uzuale (format executabil);
/dev- contine repertoarul fisierelor speciale;
/etc- contine repertoarul unor utilitare spciale de intretinere, folosite doar de administrator, fisierul de parole, de grupuri etc;
/tmp- contine fisiere temporale folosite de editor, compilatoare;
/lib- contine biblioteca de limbaje (C,FORTRAN etc);
/usr-este cel mai mare director din sistem. In el se gasesc mai multe subdirectoare;
bin : cu utilitare mai rar folosite;
man $ doc: cu manuale si documentatie;
spool: cu fisiere pentru imprimanta si posta electronica;
users: la care se conecteaza utilizatorii.
Disciplina parcurgerii arborelui implica restrictia ca un director sa nu fie legat in sus decat intr-un singur loc (directorul tata ), legatura cu acesta fiind facuta prin intrarea din director.
Pot exista mai multe fisiere cu acelasi nume, dar plasate in directoare diferite; ca urmare sistemul nu identifica fisierul dupa numele sau, ci print-o cale de acces,care reprezinta pozitia acestuia in arbore.
Fisierele din directorul curent sunt direct accesibile; ele pot fi referite simplu prin numele lor. Fisierele care nu sunt in directorul curent se refera utilizand o cale de acces. Se poate folosi o specificare absoluta, cand calea pleaca din root (/), indicandu-se apoi nivelurile arborelui pana la fisierul desemnat, sau o specificare relativa, cand calea pleaca din directorul curent. Sintaxa generala a unei cai absolute este:
/dir1/dir2. . ./dirn/fisier
iar a unei cai relative:
diri/diri+1/. . ./diri+m/fisier.
Cateva reguli simple se aplica la toate caile de acces:
(1)Cand calea incepe cu , specificarea porneste din directorul radacina (root), iar celelalte cai pornesc din directorul curent;
(2)O cale este o lista de nume, separate prin , sau un singur nume. Numele initiale in liste sunt directoare, iar ultimul nume este fisierul desemnat;
(3)Se poate urca in arborele sistemului de fisiere prin specificarea numelui in cale. Toate celelalte nume din cale coboara in arbore. Fisierul date din directorul bin se poate specifica astfel:
/bin/date -specificare printr-o cale absoluta sau
../../../bin/date -specificare printr-o cale relativa, care pleaca, de exemplu, din directorul users.
Specificarea corecta a cailor de acces reprezinta unul din aspectele esentiale in utilizarea sistemului de operare UNIX. Insa pentru a accesa un fisier este de cele mai multe ori preferabil sa se schimbe directorul curent (cu comanda cd) decat sa se indice repetat caile lungi.
Fisiere speciale
In sistemul UNIX toate perifericele sunt tratate ca fisiere, fiind denumite fisiere speciale. In acest mod fiecare dipozitiv fizic de I/E este identificat cu un fisier special.
Din punct de vedere al utilizatorului nu exista nici o diferenta intre lucrul cu un fisier ordinar si un fisier special. Numele fisierelor speciale este indicat in directorul /dev; se va gasi de exemplu:
/dev/1p (fisierul special asociat imprimantei);
/dev/tty2 (fisierul special asociat discurilor de masa) etc.
Tratarea perifericelor ca fisiere speciale prezinta o serie de avantaje, cum ar fi:
-fisierele speciale sunt supuse unui mecanism de protectie similar cu cel al celorlalte fisiere;
-in vederea schimbului de date cu perifericele se pot folosi aceleasi comenzi (utilitare) ca si in cazul fisierelor obisnuite, ceea ce confera eleganta si simplitate in utilizare;
-utilizatorii pot efectua schimburi de date la sau de la periferice fara sa fie nevoiti sa stie detalii din mecanismul lor de functionare. O serie de periferice, ca de exemplu terminalele, schimba cu calculatorul cate un caracter la un moment dat.
Fisierele speciale care furnizeaza legaturi cu asfel de periferice se numesc fisiere speciele de tip caracter.
Aceste dispozitive, precum si discurile sau benzile magnetice, transfera la sau de la calculator grupe (blocuri) de mai multe caractere; fisierele speciale asociate lor se numesc fisiere speciale de tip bloc.
Deoarece nu exista caractere memorate intr-un fisier special, campul lungime de fisier dintr-o listare a caracteristicilor fisierului (cu comanda ls) va contine in loc de lungimea fisierului, doua numere:
-numarul major al perifericului, care indica tipul dispozitivului;
-numarul minor al perifericului, care specifica care din dispozitivele de acelasi tip (daca exista mai multe in cofiguratie) este asociat cu acest fisier special.
Mecanismul de protectie a fisierelor
Mecanismul de protectie este destinat controlului accesului la fisiere. Schema implementata de UNIX este simpla realizand in acelasi timp o foarte buna separare a contextelor de executie.
Exita trei tipuri de acces la un fisier : read (r), write (w), si execute (x). Dreptul de citire (r) permite vizualizarea continutului unui fisier; dreptul de scriere (w) permite modificarea fisierului, dreptul de executie (x) permite incarcarea fisierului in memorie si lansarea programului cod obiect, reprezentat de continutul fisierului sau citirea si executia unui fisier de comenzi Shell. In cazul directoarelor drepturile r,w,x sunt interpretate altfel.
Dreptul de citire (r) pentru un director permite utilizatorului sa deschida si sa inchida fisierul director cu comanda (ls).
Dreptul de sciere (w) implica posibilitatea crearii sau stergerii de fisiere intr-un director. In fine, de executie(x), semnifica faptul ca este permis ca sistemul sa caute in director in cursul prelucrarii unei cai de acces.
Daca un fisier este specificat printr-o cale, se cauta in fiecare director al caii pentru determinarea urmatorului nume de secventa indicata. Interzicerea dreptului de x pentru un director reprezinta o protectie importanta importiva utilizatorilor care vor sa foloseasca fisierul din acest catalog.
Exita trei categorii de utilizatori: proprietar (u), grup (g), si ceilalti utilizatori (o). Fiecare fisier are un proprietar de obicei in persoana celui care le-a creat. Mai multi utilizatori, care fac de obicei parte din acelasi compartiment de lucru, formeaza un grup. Sistemul de protectie a accesului la fisier se bazeaza pe confruntarea cererilor utilizatorului (r,w,x) cu drepturile afectate categoriei din care face parte acesta (u,g,o). Pentru precizarea completa a drepturilor de acces la un fisier sunt necesari 9 biti: 3 biti indica drepturile proprietarului, 3 biti indica drepturile grupului, 3 biti indica drepturile celorlalti utilizatori. Cu comanda ls se pot vizualiza acesti biti de protectie pentru fiecare fisier.
De exemplu, un fisier cu configuratia rwxrw-r-- poate fi citit de toata lumea, scris doar de proprietar si grup si executat doar de proprietar. Grupul de biti de protectie asociati unui fisier este completat cu inca doi:
-bitul 10 (set user ID, stabilire utilizator la executie) cu semnificatia : atunci cand programul este executat de un utilizator oarecare, sistemul transfera identitatea prorietarului fisierului (programatorului) asupra acelui utilizator pe durata executiei. Aceasta modificare temporara este destinata sa asigure, in mod controlat, accesul la fisierele protejate. Mecanismul este utilizat de sistemul de operare insusi pentru utilitare, detinute de superuser, care, avand setat acest drept, pot accesa in timpul executiei fisierele protejate inaccesibile in mod direct utilizatorilor neprivilegiati.
-bitul 11 (set group ID, stabilirea grupului la executie) cu o semnificatie similara, transferul de drepturi facandu-se acum la nivel de grup.
Pozitionarea drepturilor de acces ale unui fisier se face implicit la crearea acestuia si poate fi modificata cu comanda chmod.
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |