Sistem de fișiere Unix - stadopedia

Sistemul de fișiere UNIX este caracterizat prin:

· Prelucrarea consecventă a seturilor de date,

· Abilitatea de a crea și șterge fișiere,

· Extensie dinamică a fișierului,







· Protecția informațiilor în fișiere,

· Interpretarea dispozitivelor periferice (cum ar fi terminalele și dispozitivele cu bandă) ca fișiere.

Sistemul de fișiere este organizat ca un copac cu un vertex original, numit rădăcină (scris: "/"); fiecare nod din structura arborescentă a sistemului de fișiere, cu excepția frunzelor, este un director de fișiere, iar fișierele corespunzătoare nodurilor copil sunt fie directoare, fie fișiere obișnuite sau fișiere de dispozitiv. Numele fișierului este precedat de o cale de căutare care descrie locația fișierului în structura ierarhică a sistemului de fișiere cu o slash (/).

Nume cale de căutare nu trebuie să înceapă de la rădăcină, precum și pe sistemele Windows, puteți specifica calea relativă la directorul curent pentru un proces care rulează, cu simboluri anterioare „slash“ în numele căii sunt omise. De exemplu, dacă suntem în directorul „/ dev“, calea „tty01“ specifică fișierul, numele complet de căi de căutare pentru care „/ dev / tty01“. La fel ca în Windows, aveți posibilitatea să utilizați simboluri. (punct) pentru directorul curent și .. (două puncte) pentru directorul părinte. După cum veți vedea mai târziu în descrierea directoarelor, intrările pentru aceste caractere sunt incluse în fiecare director.

Programele care rulează în sistemul UNIX nu conțin informații despre formatul intern în care nucleul stochează fișierele de date, datele din programe fiind reprezentate ca un flux octet neformatat. Programele pot interpreta fluxul de octeți la discreție, fără ca interpretarea să fie legată de modul real de stocare a datelor în sistemul de operare. Astfel, regulile de sintaxă care definesc metoda de accesare a datelor într-un fișier sunt setate de sistem și sunt aceleași pentru toate programele, totuși semantica datelor este determinată de programul specific. De exemplu, programul de formatare a textului troff caută o linie nouă la sfârșitul fiecărui rând de text, iar programul de contabilitate a resurselor sistemului acctcom funcționează cu înregistrări cu lungime fixă.

Ambele programe utilizează aceleași instrumente de sistem pentru a accesa datele din fișier ca un flux de octeți și pentru a converti intern acest flux în formatul corespunzător. Dacă un program constată că formatul de date este incorect, este necesară o acțiune adecvată.

Pentru un utilizator, sistemul UNIX tratează dispozitivele ca și cum ar fi fișiere. Dispozitivele pentru care sunt alocate fișierele de dispozitiv special devin noduri în structura sistemului de fișiere. Apelul la programe la dispozitive are aceeași sintaxă ca accesarea fișierelor obișnuite; semantica operațiilor de citire și scriere cu privire la dispozitive coincide în mare măsură cu semantica operațiilor de citire și scriere a fișierelor obișnuite. Modul de protejare a dispozitivelor coincide cu modul în care sunt protejate fișierele obișnuite: prin setarea în consecință a biților de acces la acestea (fișiere). Deoarece nume de dispozitiv arata la fel ca și numele fișierelor obișnuite, precum și din cauza dispozitivelor și fișierele convenționale sunt executate aceeași operațiune, majoritatea programelor, nu este necesar să se facă distincția între tipurile de prelucrate în interiorul fișierelor.







De exemplu, dacă procesul accesează sistemul:

kernel-ul sistemului returnează un index pentru fișierul "/ fs2 / mjb / rje / sourcefile". Dacă procesul creează un fișier nou, kernelul atribuie indexul neutilizat acestui fișier. Indicii sunt stocați în sistemul de fișiere (și vom vedea), cu toate acestea, atunci când procesarea fișierelor, kernel-ul le scrie în tabela de index în RAM.


Kernel-ul suportă încă două structuri de informații, un tabel de fișiere și un tabel de fișiere descriptor de utilizator. Tabela de fișiere acționează ca structură globală a kernel-ului, iar tabelul descriptor definit de utilizator este alocat procesului. Dacă procesul deschide sau creează un fișier, kernelul selectează un element din fiecare tabel care corespunde indexului fișierului. Elementele din aceste trei structuri - în tabelul descriptor de fișier utilizator, tabelul de fișiere și tabela de index - stocate informațiile despre starea de fișier și de acces ale utilizatorilor la acesta. În magazinele de masă fișier offset în octeți de la începutul fișierului în locația în care va fi executat membru următoarea echipă citi sau scrie, precum și informații cu privire la drepturile de acces pentru a vizualiza fluxul de lucru. Tabelul descriptorilor de fișiere identifică toate fișierele deschise procesului. În figura 15. 1 prezintă tabelele și relațiile dintre ele.


Sistemul de fișiere constă dintr-o secvență de blocuri logice de lungime 512, 1024, 2048 sau un alt număr de octeți, multiple de 512, în funcție de implementarea sistemului. Dimensiunea unui bloc logic dintr-un singur sistem de fișiere este constantă, dar poate varia în diferite sisteme de fișiere în această configurație. Utilizarea blocurilor logice mari mărește rata de transfer a datelor între disc și memorie, deoarece nucleul poate transmite mai multe informații pe o operație pe disc și reduce numărul de operațiuni lungi. De exemplu, citirea 1 KB de pe un disc într-o singură operație este mai rapidă decât citirea a 512 octeți în două. Cu toate acestea, dacă dimensiunea blocului logic este prea mare, capacitatea de memorie utilizabilă poate scădea, aceasta va fi afișată în continuare. Pentru simplitate, termenul "bloc" va fi folosit pentru a desemna un bloc logic, cu un bloc logic de dimensiune de 1 kb, cu excepția cazurilor specificate.

În general, sistemul de fișiere are structura prezentată în Figura 15.2

blocul de încărcare este situat la începutul spațiului alocat pentru sistemul de fișiere, de obicei, primul sector, și conține programul de boot, care este citit în portbagaj auto sau inițializarea sistemului de operare. Deși este necesar un singur bloc de încărcare pentru a rula sistemul, fiecare sistem de fișiere are propriul bloc de încărcare (chiar gol).

Superblock-ul descrie starea sistemului de fișiere - ce mărime este, cât de multe fișiere poate fi stocat, unde există spațiul liber disponibil pentru sistemul de fișiere și alte informații.

Lista indexurilor din sistemul de fișiere este localizată după superblock. Administratorii specifică dimensiunea listei de indexuri atunci când generează sistemul de fișiere. Kernelul sistemului de operare accesează indexurile utilizând indicii din lista index. Unul dintre indexuri este indicele rădăcină al sistemului de fișiere: este indexul care accesează structura directorului de sistem de fișiere după operația de montare.

Blocurile de informații sunt localizate imediat după lista de indexuri și conțin date despre fișiere și date de control. Un singur bloc de informații poate aparține unui singur fișier din sistemul de fișiere.







Articole similare

Trimiteți-le prietenilor: