Lucrul cu fișiere și directoare

Conceptul de fișiere și sistemul de fișiere

Un sistem de fișiere face parte din sistemul de operare, al cărui scop este de a organiza o muncă eficientă cu datele stocate în memoria externă și de a oferi utilizatorului o interfață convenabilă atunci când lucrează cu astfel de date.







Un fișier este un set logic de date asociat cu un suport de informații și un dispozitiv extern. Fișierul este un concept abstract, iar proprietățile sale nu depind de suportul de informații.

Informațiile despre mass-media pot fi stocate doar ca fișiere. Odată creat, fișierul devine independent de proces, de utilizator și de sistemul care la creat.

Fiecare fișier este caracterizat de un anumit număr de atribute, care variază în funcție de sistemul de operare. Un set tipic de atribute include următoarele:

Prenume. Numele fișierului simbolic este singurul atribut stocat sub forma unui om care poate fi citit.

Tip. Informațiile necesare pentru gestionarea fișierelor.

Locație. Un pointer la un dispozitiv extern și la locația fișierului de pe acest dispozitiv extern.

Dimensiunea. Dimensiunea curentă (în octeți, cuvinte sau blocuri) și, eventual, dimensiunea maximă permisă.

Protecție. Informațiile de control al accesului care controlează nivelul de acces (citire, scriere, executare etc.)

Ora, data și ID-ul utilizatorului. Aceste informații pot caracteriza: crearea, ultima modificare, ultimul recurs.

Sistemul de fișiere stochează informații despre fiecare fișier într-o structură numită inode. Fiecare inode conține 40 câmpuri, inclusiv numele fișierului, tipul, mărimea, numărul de link-uri hard, informații despre proprietarul fișierului și drepturile de acces, data / ora ultimei modificări, și data / ora ultimului acces. Este cu inode că sistemul de operare funcționează la accesarea fișierului.

În sistemul de operare Unix (OS), sunt acceptate mai multe tipuri de fișiere:

Fișiere ordinare. Aceasta este doar o secvență de octeți; structura unor astfel de fișiere nu este impusă nici o restricție - aceasta poate fi documente text, programe executabile, date multimedia.

Referințe. Sunt împărțite în două tipuri:

Fișiere speciale de dispozitive. Fișierele de fișiere permit programelor Unix să interacționeze cu hardware-ul și perifericele sistemului. Pentru toate lucrările legate de gestionarea unui anumit dispozitiv, există un program special numit driver de dispozitiv. Driverele de dispozitive formează o interfață standard de comunicații care pare a fi un fișier normal pentru utilizator. Când kernelul OS primește o cerere în fișierul dispozitivului, acesta transmite pur și simplu cererea către driverul corespunzător, adică fișierele dispozitivului pot fi reprezentate ca gateway-uri prin care cererile sunt trimise driver-elor. UNIX face distincția între fișierele de caractere și blocarea dispozitivelor. Fișierele dispozitivului simbolic sunt utilizate pentru schimbul de date fără buffer cu dispozitivul, în schimb, fișierele bloc permit schimbul de date sub formă de pachete de blocuri fixe de lungime. Accesul la anumite dispozitive poate fi efectuat fie prin intermediul fișierelor speciale, fie prin caracterul bloc.







Sockets. Prizele încapsulează conexiunile dintre procese, permițându-le să interacționeze fără a fi influențate de alte procese. Acestea sunt accesate prin intermediul obiectelor de sistem de fișiere corespunzătoare. În ciuda faptului că aceste obiecte sunt recunoscute ca fișiere, procesele care nu participă la conexiune nu pot efectua operații de citire și scriere în fișierele socket. Cu toate acestea, spre deosebire de fișierele obișnuite, soclurile sunt un obiect virtual care există în timp ce este menționat de cel puțin unul dintre procese.

Conducte denumite. Ca și prize, țevi numite permit interacțiunea a două procese care rulează pe același computer.

Structura sistemului de fișiere Unix

Sistemul de fișiere Unix OS are o structură ierarhică (arbore), bazată pe directorul rădăcină, care are numele /. Directorul rădăcină al sistemului de fișiere este întotdeauna unul. Locația fișierelor din arborele de fișiere nu este determinată de locația lor pe un anumit disc fizic sau logic. Structurile de fișiere aflate pe discuri diferite, inclusiv pe discurile altor computere, folosind o comandă specială (mount), sunt montate pe arborele de fișiere Unix, devenind parte a unui singur arbore de fișiere. Toate operațiile asupra fișierelor din punctul de vedere al utilizatorului sunt efectuate în același mod, indiferent de locația lor fizică.

Folosit pentru a grupa caracterele în seturi. Seturile pot fi specificate:

Simboluri de enumerare explicite fără distanțiere între ele, de exemplu [atz56, =] - simbolul corespunde fie unul dintre cele trei litere cod, tiz, fie una dintre figurile 5 și 6, sau unul dintre caractere speciale și virgulă echivala

prin specificarea unui interval, de exemplu [a-z] - caracterul corespunde unei litere mici, de la a la z

o combinație a acestor metode, de exemplu [0-9ij] - simbolul corespunde fie unei cifre, fie uneia dintre litere sau

Este folosit pentru a nega un set de caractere, adică numele de fișier nu trebuie să conțină caracterele specificate

se potrivește fișierelor cu nume care încep cu f

corespunde fișierelor cu nume care conțin litera f

corespunde fișierelor cu nume de programe care au extensii cu o singură literă

corespunde fișierelor cu nume în care a treia literă este a, b, c sau d

se potrivește cu fișierele cu nume care nu încep cu o literă mare și se termină cu o cifră 2, 4, 6 sau 8

Dacă un nume special trebuie să fie inclus în numele fișierului, atunci când specificați un model, acest caracter special trebuie să fie precedat de un backslash ("\") sau să scape, de exemplu:

se potrivește fișierelor cu nume începând cu o vocală urmată de un *, urmat de trei caractere arbitrare

Litere latine litere mari







Articole similare

Trimiteți-le prietenilor: