Subiectul lecției: „Fișiere și structuri de fișiere”. Ce este o structură de fișiere

Un fișier este informații care sunt stocate pe un mediu de stocare al computerului sub un anumit nume.

Fișierele pot stoca programe, texte și date.

Fișierele sunt identificate (identificate unic) prin nume. Utilizatorii dau fișierelor nume simbolice. În unele sisteme de operare, cum ar fi sistemul de operare Microsoft, fiecare nume de fișier constă direct din nume de fișier dat de utilizator și extensii. Acest lucru ia în considerare restricțiile sistemului de operare atât pentru caracterele utilizate în nume, cât și pentru lungimea numelui. Până de curând, aceste granițe erau foarte înguste. De exemplu, sistemul de fișiere al sistemului de operare MS-DOS a limitat lungimea numelui la schema 8.3 (au fost alocate 8 caractere pentru nume, 3 pentru extensie). Sistemele de fișiere moderne acceptă de obicei nume de fișiere simbolice lungi. Sistemele de operare Windows permit nume de până la 255 de caractere. Extensia este separată de numele fișierului prin simbolul „.” (punct).

Extensia indică tipul fișierului:

exe, com fișiere executabile, de ex. programe scrise într-unul dintre limbajele de programare;

doc - fișiere create în editorul de text Word;

xls - fișiere create în foaia de calcul Excel;

mdb – Accesați fișierele sistemului de management al bazelor de date (DBMS).

De obicei, pentru ușurință în utilizare, fișierele sunt combinate în directoare (foldere).

Pentru ca sistemul de operare să acceseze fișierele, trebuie să specificați numele complet al fișierului, constând din numele dispozitivului extern (de obicei un disc), o secvență de subfoldere și un nume de fișier. De exemplu,

C:\Utilizator\Scrisoare.doc numele complet al fișierului Scrisoarea.doc situat pe unitatea C: în folder Utilizator. este numită secvența numelui dispozitivului extern și a tuturor subdosarelor calea completă către fișier.

Uneori, atunci când efectuați anumite operațiuni (căutare, copiere, ștergere fișiere) puteți utiliza modele de nume de fișiere.

Un șablon este un nume generic pentru un grup de fișiere care conține caracterele: * sau?.

Simbol * înseamnă că în locul acestuia pot fi folosite orice caractere valide, începând de la poziția în care apare și până la sfârșitul numelui.

Simbol ? indică faptul că această poziție poate conține oricare, dar un singur caracter valid.

De exemplu,

probă *.doc reprezintă toate fișierele cu extensia .doc,

șablonul Letter?.doc denotă toate fișierele denumite Letter1.doc, Letter3.doc, LetterZ.doc, LetterA.doc etc.

Pentru a stoca fișiere pe discuri și pentru a oferi acces la acestea, sistemele de operare moderne de disc creează sisteme de fișiere. Principiul organizării multor sisteme de fișiere este tabelar.

Concept Sistemul de fișiere are două sensuri. Acesta este numele, în primul rând, pentru un mod specific de organizare a fișierelor, directoarelor etc., și în al doilea rând, pentru un anumit set de fișiere, directoare etc., organizate conform acestei metode.

Datele despre locul unde pe disc este înregistrat un anumit fișier sunt stocate în zona de sistem a discului în mod special tabele de alocare a fișierelor.

Sisteme de fișiere Microsoft.

Versiunile timpurii ale sistemului de operare Windows de la Microsoft au folosit tabele de alocare a fișierelor GRAS (FAT – FișierAlocațiionMasa).

Ca urmare a formatării, pe disc se formează piste (cercuri concentrice), fiecare dintre ele conţinând un anumit număr de sectoare. Un sector este o secțiune a unei piste care stochează informația minimă care poate fi citită sau scrisă pe un disc.

Pentru a organiza accesul la fișierele înregistrate pe discuri magnetice, sistemul de operare creează o listă de sectoare alocate fiecărui fișier. De obicei, spațiul pe disc este alocat fișierelor în blocuri din mai multe sectoare, numite clustere 5 . Clusterul este cea mai mică unitate adresarea date (determinarea locației lor) pe disc.

FAT constă din celule care stochează numere de cluster, iar principala diferență între diferitele FAT este dimensiunea acestor celule, determinată de numărul de cifre binare (biți). Sistemul de operare Windows 95 folosește FAT16, în care sunt alocați 16 biți pentru adresa clusterului și, prin urmare, numărul de clustere este de 65.536 (2 16). În cazul în care un cluster este egal cu un sector (512 octeți), capacitatea maximă a discului va fi de 32 MB. Odată cu apariția discurilor de mare capacitate, clusterul a început să fie format din mai multe sectoare - 2, 4, 8 etc.

Aici apare problema utilizării iraționale a spațiului pe disc. Faptul este că un cluster nu poate conține mai mult de un fișier. Apoi, un fișier de 1 KB va folosi un cluster de 8 KB și 16 KB, în funcție de dimensiunea discului. Windows 95 OSR2 a introdus formatul de tabelă de alocare a fișierelor FAT32 (32 de biți) și a crescut numărul de clustere la 232 = 4.294.967.296, permițând clustere de 4 KB.

Fiecare fișier este asociat cu numele complet al fișierului, data creării fișierului, atributele fișierului și lungimea fișierului.

Elementul FAT pentru descrierea fișierului include:

    octet de atribut;

    timpul de modificare;

    data modificarii;

    Nr. al primului cluster de la care începe înregistrarea fișierului;

    mărime fișier.

Când un fișier este scris pe disc, sistemul de operare scrie numărul primului cluster alocat fișierului în directorul în care este creat fișierul. Apoi, în elementul care reprezintă acest cluster în FAT, OS scrie numărul următorului cluster, fișierul selectat etc. Astfel, pornind căutarea unui fișier în director și urmărind pointerii din FAT, OS poate selecta clustere legate de fișier în ordinea corespunzătoare, cluster cu cluster . Acesta este motivul pentru care dacă tabelul FAT este distrus, fișierul nu poate fi restaurat. Tabelul FAT este stocat pe disc în două copii.

Sistemul de fișiere FAT16 este acceptat de toate sistemele de operare Microsoft, unele sisteme de operare Unix și sistemele de operare OS/2.

Windows NT Workstation, Windows 2000 Professional și Windows XP acceptă sistemul de fișiere NTFS.

Sistemul de fișiere NTFS este reprezentat ca un tabel MFT (Maestru Fişier Masa), având următoarea formă:

Lungimea maximă a tabelului este de 1500 de octeți.

Primele 16 înregistrări sunt înregistrări de service; ele stochează informații care descriu tabelul MFT în sine (analog cu zona sistemului FAT).

Începând cu a 17-a intrare, există descrieri ale fișierelor și folderelor:

    informații standard – data și ora creării fișierului, dimensiunea acestuia;

    nume de fișier – stocat în 2 versiuni: lung (până la 255 de caractere) și scurt (8 + 3), utilizat la utilizarea fișierului în MS DOS;

    descriptorul de securitate indică cine are ce drepturi asupra unui anumit fișier sau folder;

    date – datele fișierelor în sine sunt stocate. Dacă fișierul este scurt, atunci toate datele sunt în acest loc. Dacă fișierul este mare, atunci o parte din el este stocată într-un câmp al acestui tabel MFT, iar partea rămasă este stocată în orice altă zonă, iar această zonă este referită în MFT.

Sistemul de fișiere NTFS acceptă un nivel ridicat de securitate (fiecare fișier poate avea un descriptor de protecție pentru copiere, citire, scriere, modificare etc.) și pot fi setate drepturi diferite pentru diferite grupuri de utilizatori.

Sistem de operare

Sistemul de fișiere

Microsoft MS-DOS

Microsoft Windows 95

Microsoft Windows 95 OSR2

Microsoft Windows 98

Microsoft Windows NT

Microsoft Windows 2000

NTFS, FAT16, FAT32

Microsoft Windows XP

NTFS, FAT16, FAT32

Windows NT, Windows 2000 Professional și Windows XP acceptă sistemul de fișiere FAT atunci când rulează pe dischete. Hard disk-ul acceptă două sisteme de fișiere - FAT și NTFS.

Fișiere și structuri de fișiere

Timpul logic al dispozitivelor de memorie externă
Fiecare computer poate avea mai multe dispozitive de memorie externe conectate. Dispozitivul de memorie extern principal al unui computer este hard disk-ul. De obicei este împărțit în mai multe partiții logice.

Având mai multe partiții logice pe un hard disk oferă utilizatorului următoarele beneficii:


  • Puteți stoca sistemul de operare într-o partiție logică și datele în alta, permițându-vă să reinstalați sistemul de operare fără a afecta datele;

  • Puteți instala diferite sisteme de operare pe un hard disk în diferite partiții logice;

  • Întreținerea unei partiții logice nu afectează celelalte partiții.

Dispozitivele de memorie externă și partițiile discului logic au nume logic.

Pe sistemul de operare Windows Sunt acceptate nume logice formate dintr-o literă latină și două puncte:


  • pentru unități de dischete (dischete) – A: și B:

  • pentru hard disk-uri și partiții logice –C:, D:, E: etc.

  • pentru unitățile optice, numele după hard disk (de exemplu, F:)

  • Pentru memoria flash conectată la un computer, utilizați următorul nume (de exemplu, G:)
Pe sistemul de operare Linux Au fost adoptate alte reguli pentru denumirea discurilor:

  • Partiții logice aparținând primului hard disk - denumiri hda1, hda2 etc.;

  • Partițiile logice aparținând celui de-al doilea hard disk se numesc hdb1, hdb2 etc.
Toate programele și datele sunt stocate în memoria externă a computerului sub formă de fișiere.
^ Fișier este o zonă numită a memoriei externe.
Sistemul de fișiere este o parte a sistemului de operare care determină modul în care fișierele sunt organizate, stocate și denumite pe mediile de stocare.
Un fișier este caracterizat printr-un set de parametri (nume, dimensiune, data creării, data ultimei modificări) și atribute folosite de sistemul de operare pentru a-l procesa (arhivă, sistem, ascuns, numai citire). Mărimea fișierului este exprimată în octeți.

Nume de fișier , de regulă, este format din două părți separate printr-un punct: numele în sine dosar și extensii .

Numele fișierului este dat de utilizator. Extensia de nume este de obicei setată automat de program la salvarea fișierului. Extensia permite utilizatorului să o tasteze, iar sistemului de operare să deschidă fișierul folosind aplicația dorită.
În sistemul de operare Windows, următoarele caractere sunt interzise în numele fișierului: \, /, :, *, ?, ”, |. Pe Linux, aceste caractere, cu excepția /, sunt valide.

Sistemul de operare Linux, spre deosebire de Windows, face distincție între literele mici și mari în numele fișierului: de exemplu, FILE.txt, file.txt și FiLe.txt sunt trei fișiere diferite în Linux.

Cele mai comune tipuri de fișiere și extensii:


Tip fișier

Exemple de extensii

Fișier de sistem

drv, sys

Fisier text

txt, rtf, doc, docx, odt

Fișier grafic

bmp, gif, jpg, tif, png, psd

Pagină web

htm, html

Fișier de sunet

wav, mp3, midi, kar, ogg

Fișier video

avi, mpeg

Arhiva

zip, rar

Foaie de calcul

xls, ods

Cod de program (text) în limbaje de programare

bas, pas

În sistemul de operare Linux se disting următoarele tipuri de fișiere:


  • fișiere obișnuite – fișiere cu programe și date

  • directoare – fișiere care conțin informații despre directoare

  • link-uri – fișiere care conțin link-uri către alte fișiere

  • fișiere de dispozitive speciale – fișiere utilizate pentru a reprezenta dispozitivele fizice ale unui computer (unități hard și optice, imprimantă, difuzoare de sunet etc.)

Cataloagele
Fiecare computer sau mediu de stocare poate conține un număr mare de fișiere. Pentru a facilita găsirea informațiilor, fișierele bazate pe anumite caracteristici sunt combinate în grupuri numite cataloage sau foldere .
Directoarele primesc, de asemenea, propriul nume. Directorul în sine poate face parte dintr-un alt director extern acestuia. Fiecare director poate conține multe fișiere și subdirectoare.

Catalog este o colecție numită de fișiere și subdirectoare (subdirectoare).
Directorul de nivel superior este numit directorul rădăcină .

În sistemul de operare Windows, orice purtător de informații are un director rădăcină, care este creat de sistemul de operare fără intervenția utilizatorului. Directoarele rădăcină sunt desemnate prin adăugarea semnului „\” (backslash) la numele logic al dispozitivului de memorie extern corespunzător: A:\, C:\, B:\ etc.

În Linux, directoarele de pe hard disk sau partițiile lor logice nu aparțin nivelului superior al sistemului de fișiere (nu sunt directoare rădăcină). Sunt „montate” în directorul mnl. Alte dispozitive de stocare externe (dischete, optice și unități flash) sunt „montate” în directorul media. Directoarele mnt și media, la rândul lor, sunt „montate” într-un singur director rădăcină, care este notat prin semnul „/” (slash înainte).

Structura fișierului disc este o colecție de fișiere de pe disc și relațiile dintre ele.

Structurile fișierelor sunt simpluȘi pe mai multe niveluri(ierarhic).

Structuri simple de fișiere poate fi folosit pentru discuri cu un număr mic (până la câteva zeci) de fișiere. În acest caz, cuprinsul discului este o secvență liniară de nume de fișiere.
Structuri de fișiere ierarhice folosit pentru a stoca fișiere mari (sute și mii). Ierarhia este aranjarea părților (elementelor) unui întreg în ordine de la cel mai înalt la cel mai mic.

Se numește o reprezentare grafică a unei structuri de fișiere ierarhice copac .

Pentru a accesa fișierul dorit stocat pe un anumit disc, puteți specifica calea către fișier – numele tuturor directoarelor de la rădăcină la cel în care se află fișierul.

Calea scrisă secvențial către fișier și numele fișierului formează numele complet al fișierului .
Exemplu de nume complet de fișier în sistemul de operare Windows:

E:\images\photos\Trip.jpeg

Una dintre componentele sistemului de operare este sistemul de fișiere - principala stocare a informațiilor despre sistem și utilizator. Toate sistemele de operare moderne funcționează cu unul sau mai multe sisteme de fișiere, de exemplu, FAT (File Allocation Table), NTFS (NT File System), HPFS (High Performance File System), NFS (Network File System), AFS (Andrew File System) , Sistem de fișiere Internet.

Un sistem de fișiere este o parte a sistemului de operare, al cărui scop este de a oferi utilizatorului o interfață convenabilă atunci când lucrează cu date stocate în memoria externă și de a permite partajarea fișierelor între mai mulți utilizatori și procese.

Într-un sens larg, conceptul de „sistem de fișiere” include:

Colectarea tuturor fișierelor de pe disc;

Seturi de structuri de date utilizate pentru gestionarea fișierelor, cum ar fi directoare de fișiere, descriptori de fișiere, tabele de alocare a spațiului pe disc liber și folosit;

Un set de instrumente software de sistem care implementează gestionarea fișierelor, în special: crearea, distrugerea, citirea, scrierea, denumirea, căutarea și alte operațiuni asupra fișierelor.

Sistemul de fișiere este de obicei utilizat atât la încărcarea sistemului de operare după pornirea computerului, cât și în timpul funcționării. Sistemul de fișiere îndeplinește următoarele funcții principale:

Stabilește modalități posibile de organizare a fișierelor și a structurii fișierelor pe suport;

Implementează metode de accesare a conținutului fișierelor și oferă instrumente pentru lucrul cu fișierele și structura fișierelor. În acest caz, accesul la date poate fi organizat de sistemul de fișiere atât după nume, cât și după adresă (număr de sector, suprafață și traseu media);

Monitorizează spațiul liber pe mediile de stocare.

Când un program de aplicație accesează un fișier, nu are idee cum se află informațiile dintr-un anumit fișier și nici pe ce tip de suport fizic (CD, hard disk sau unitate de memorie flash) este stocată. Tot ce știe programul este numele fișierului, dimensiunea și atributele acestuia. Acesta primește aceste date de la driverul sistemului de fișiere. Este sistemul de fișiere care determină unde și cum va fi scris fișierul pe suport fizic (de exemplu, un hard disk).

Din punctul de vedere al sistemului de operare, întregul disc este un set de clustere (zone de memorie) cu dimensiunea de la 512 octeți sau mai mare. Driverele sistemului de fișiere organizează clustere în fișiere și directoare (care sunt de fapt fișiere care conțin o listă de fișiere din acel director). Acești drivere țin evidența clusterelor care sunt utilizate în prezent, care sunt gratuite și care sunt marcate ca defecte. Pentru a înțelege clar cum sunt stocate datele pe discuri și modul în care sistemul de operare oferă acces la acestea, este necesar să înțelegem, cel puțin în termeni generali, structura logică a discului.


3.1.5 Structura logică a discului

Pentru ca un computer să stocheze, să citească și să scrie informații, hard disk-ul trebuie mai întâi să fie partiționat. Partițiile sunt create pe acesta folosind programe adecvate - aceasta se numește „partiționarea hard diskului”. Fără această partiționare, nu va fi posibilă instalarea sistemului de operare pe hard disk (deși Windows XP și 2000 pot fi instalate pe un disc nepartiționat, ei fac singuri această partiționare în timpul procesului de instalare).

Hard disk-ul poate fi împărțit în mai multe partiții, fiecare dintre acestea fiind utilizată independent. Pentru ce e asta? Un disc poate conține mai multe sisteme de operare diferite situate pe partiții diferite. Structura internă a unei partiții alocate oricărui sistem de operare este complet determinată de acel sistem de operare.

În plus, există și alte motive pentru partiționarea unui disc, de exemplu:

Posibilitatea de a utiliza discuri cu o capacitate mai mare decât MS DOS
32 MB;

Dacă un disc este deteriorat, se pierde doar informațiile care se aflau pe acel disc;

Reorganizarea și descărcarea unui disc mic este mai ușoară și mai rapidă decât a unuia mare;

Fiecărui utilizator i se poate atribui propria unitate logică.

Operația de pregătire a unui disc pentru utilizare este numită formatare, sau initializare. Tot spațiul disponibil pe disc este împărțit în laturi, piste și sectoare, cu piese și laturi numerotate începând de la zero, iar sectoarele începând de la unu. Un set de piste situate la aceeași distanță de axa unui disc sau a unui pachet de discuri se numește cilindru. Astfel, adresa fizică a sectorului este determinată de următoarele coordonate: numărul pistei (cilindru - C), numărul laturii discului (capul - H), numărul sectorului - R, i.e. CHR.

Primul sector al hard disk-ului (C=0, H=0, R=1) conține înregistrarea de pornire principală Master Boot Record. Această intrare nu ocupă întregul sector, ci doar partea inițială a acestuia. Master Boot Record este un program de încărcare de încărcare non-sistem.

La sfârșitul primului sector al hard diskului se află tabelul de partiții ale discului - Tabel de partiții. Acest tabel conține patru rânduri care descriu maximum patru partiții. Fiecare rând din tabel descrie o secțiune:

1) secțiune activă sau nu;

2) numărul sectorului corespunzător începutului de secțiune;

3) numărul sectorului corespunzător capătului de secțiune;

4) dimensiunea partiției pe sectoare;

5) codul sistemului de operare, adică Cărui sistem de operare aparține această partiție?

O partiție este numită activă dacă conține programul de boot al sistemului de operare. Primul octet din elementul de secțiune este indicatorul de activitate al secțiunii (0 – inactiv, 128 (80H) – activ). Este folosit pentru a determina dacă partiția este de sistem (pornibilă) și dacă sistemul de operare trebuie să fie încărcat de pe acesta la pornirea computerului. O singură secțiune poate fi activă. Programele mici numite manageri de boot pot fi localizate în primele sectoare ale discului. Ei întreabă în mod interactiv utilizatorul de pe ce partiție să pornească și ajustează indicatoarele de activitate ale partiției în consecință. Deoarece tabelul de partiții are patru rânduri, pe disc pot exista până la patru sisteme de operare diferite, prin urmare, discul poate conține mai multe partiții primare aparținând unor sisteme de operare diferite.

Un exemplu de structură logică a unui hard disk format din trei partiții, dintre care două aparțin DOS și una aparține UNIX, este prezentat în Figura 3.2a.

Fiecare partiție activă are propria înregistrare de pornire - un program care încarcă un anumit sistem de operare.

În practică, discul este cel mai adesea împărțit în două partiții. Dimensiunile partițiilor, indiferent dacă sunt declarate active sau nu, sunt stabilite de utilizator în timpul procesului de pregătire a hard disk-ului pentru utilizare. Acest lucru se face folosind programe speciale. În DOS acest program se numește FDISK, în versiunile Windows-XX se numește Diskadministrator.

În DOS, partiția primară este Partiție primară, aceasta este secțiunea care conține încărcătorul sistemului de operare și sistemul de operare în sine. Astfel, partiția primară este partiția activă, folosită ca unitate logică numită C:.

Sistemul de operare WINDOWS (și anume WINDOWS 2000) a schimbat terminologia: partiția activă se numește partiția de sistem, iar partiția de boot este discul logic care conține fișierele de sistem WINDOWS. Unitatea logică de pornire poate fi aceeași cu partiția de sistem, dar poate fi localizată pe o partiție diferită a aceluiași hard disk sau pe un alt hard disk.

Secțiunea avansată Partiție extinsă poate fi împărțit în mai multe unități logice cu nume de la D: la Z:.

Figura 3.2b prezintă structura logică a unui hard disk, care are doar două partiții și patru unități logice.

Sisteme de fișiere. Tipuri de sisteme de fișiere. Operațiuni cu fișiere. Cataloagele. Operații cu directoare.

Fişier este o zonă numită a memoriei externe care poate fi scrisă și citită din.

Principalele scopuri ale utilizării fișierului.

    Stocarea pe termen lung și fiabilă a informațiilor . Durabilitatea se realizează prin utilizarea dispozitivelor de stocare care nu depind de putere, iar fiabilitatea ridicată este determinată prin protejarea accesului la fișiere și prin organizarea generală a codului programului OS, în care defecțiunile hardware de cele mai multe ori nu distrug informațiile stocate. în dosare.

    Partajarea informațiilor . Fișierele oferă o modalitate naturală și ușoară de a partaja informații între aplicații și utilizatori, având un nume simbolic care poate fi citit de om și consistență în informațiile stocate și locația fișierului. Utilizatorul trebuie să aibă instrumente convenabile pentru lucrul cu fișierele, inclusiv directoare care combină fișierele în grupuri, instrumente pentru căutarea fișierelor după caracteristici, un set de comenzi pentru crearea, modificarea și ștergerea fișierelor. Un fișier poate fi creat de un utilizator și apoi utilizat de un utilizator complet diferit, iar creatorul sau administratorul fișierului poate determina drepturile de acces ale altor utilizatori. Aceste obiective sunt implementate în sistemul de operare de către sistemul de fișiere.

Sistem de fișiere (FS) este o parte a sistemului de operare care include:

    colectarea tuturor fișierelor de pe disc;

    seturi de structuri de date utilizate pentru gestionarea fișierelor, cum ar fi directoare de fișiere, descriptori de fișiere, tabele de alocare a spațiului pe disc liber și folosit;

    un set de instrumente software de sistem care implementează diverse operațiuni asupra fișierelor, cum ar fi crearea, distrugerea, citirea, scrierea, denumirea și căutarea fișierelor.

Astfel, sistemul de fișiere joacă rolul unui strat intermediar care evaluează toate complexitățile organizării fizice a stocării de date pe termen lung și creează un model logic mai simplu pentru această stocare pentru programe, precum și le oferă un set de comenzi ușor de utilizat pentru manipularea fișierelor.

Următoarele sisteme de fișiere sunt cunoscute pe scară largă:

    Sistemul de fișiere sistem de operare DOMNIȘOARĂ - DOS , care se bazează pe tabelul de alocare a fișierelor - GRAS ( Fişier Alocare Masa ).

Tabelul conține informații despre locația tuturor fișierelor (fiecare fișier este împărțit în clustere Clusterele aceluiași fișier nu sunt neapărat situate unul lângă celălalt, în funcție de disponibilitatea spațiului pe disc). Sistemul de fișiere MS-DOS are limitări și dezavantaje semnificative, de exemplu, sub Nume Fișierul are 12 octeți alocați; lucrul cu un hard disk mare duce la o fragmentare semnificativă a fișierului;

Principalele funcții dintr-un astfel de FS au ca scop rezolvarea următoarelor sarcini:

    denumirea fișierelor;

    interfața de programare a aplicației;

    maparea modelului logic al sistemului de fișiere pe organizarea fizică a stocării datelor;

    Rezistenta sistemului de fișiere la întreruperi de curent, erori hardware și software.

    OS /2 , numit HPFS ( Înalt - Performanţă Fişier Sistem - sistem de fișiere rapid).

Oferă posibilitatea de a avea un nume de fișier de până la 254 de caractere. Fișierele scrise pe disc au o fragmentare minimă. Poate lucra cu fișiere scrise în MS DOS;

O nouă sarcină este adăugată la sarcinile enumerate mai sus partajarea unui fișier din mai multe procese. În acest caz, fișierul este o resursă partajată, ceea ce înseamnă că sistemul de fișiere trebuie să rezolve întreaga gamă de probleme asociate cu astfel de resurse. În special, FS trebuie să ofere mijloace pentru blocarea unui fișier și a părților sale, prevenirea curselor, eliminarea blocajelor, reconcilierea copiilor etc.

În sistemele cu mai mulți utilizatori, apare o altă sarcină: protejarea fișierelor unui utilizator împotriva accesului neautorizat de către alt utilizator.

    sistem de fișiere al sistemului de operare Windows 95

Are o structură de nivel, care vă permite să susțineți mai multe sisteme de fișiere simultan. Vechiul sistem de fișiere MS-DOS este suportat direct, iar sistemele de fișiere nu sunt dezvoltate de companie Microsoft, sunt suportate folosind special module. Este posibil să utilizați nume de fișiere lungi (până la 254 de caractere).

    sistemele de fișiere ale sistemului de operare Unix

Ele oferă o modalitate unificată de a accesa sistemele de fișiere I/O.

Permisiunile fișierelor determină practic drepturile de acces la sistem (proprietarul fișierului este utilizatorul care l-a creat).

Tipuri de fisiere

Sistemele de fișiere acceptă mai multe tipuri de fișiere funcțional diferite, care includ de obicei fișiere obișnuite, fișiere directoare, fișiere speciale, conducte numite, fișiere mapate în memorie și altele.

Fișiere obișnuite , sau pur și simplu fișierele, conțin informații arbitrare care sunt introduse în ele de utilizator sau care sunt generate ca urmare a funcționării sistemului și a programelor utilizatorului. Majoritatea sistemelor de operare moderne (de exemplu, UNIX, Windows, OS/2) nu limitează sau controlează în niciun fel conținutul și structura unui fișier obișnuit. Conținutul unui fișier obișnuit este determinat de aplicația care funcționează cu acesta. De exemplu, un editor de text creează fișiere text constând din șiruri de caractere reprezentate într-un anumit cod. Acestea pot fi documente, coduri sursă de programe etc. Fișierele text pot fi citite pe ecran și tipărite pe o imprimantă. Fișierele binare nu folosesc coduri de caractere și au adesea structuri interne complexe, cum ar fi codul de program executabil sau un fișier de arhivă. Toate sistemele de operare trebuie să fie capabile să recunoască cel puțin un tip de fișier - propriile fișiere executabile.

Cataloagele - acesta este un tip special de fișiere care conțin informații de referință de sistem despre un set de fișiere grupate de utilizatori în funcție de un criteriu informal (de exemplu, fișierele care conțin documente ale aceluiași contract sau fișierele care alcătuiesc un pachet software sunt combinate într-un singur pachet software). grup). Pe multe sisteme de operare, un director poate conține orice tip de fișier, inclusiv alte directoare, creând o structură arborescentă care este ușor de căutat. Directoarele stabilesc o mapare între numele fișierelor și caracteristicile fișierelor care sunt utilizate de sistemul de fișiere pentru a gestiona fișierele. Astfel de caracteristici includ, în special, informații (sau un indicator către o altă structură care conține aceste date) despre tipul de fișier și locația acestuia pe disc, drepturile de acces la fișier și datele creării și modificării acestuia. În toate celelalte privințe, directoarele sunt tratate de sistemul de fișiere ca fișiere obișnuite.

Fișiere speciale - Acestea sunt fișiere fictive asociate cu dispozitivele I/O, care sunt folosite pentru a unifica mecanismul de accesare a fișierelor și a dispozitivelor externe. Fișierele speciale permit utilizatorului să efectueze operațiuni I/O folosind comenzi normale pentru scrierea într-un fișier sau citirea dintr-un fișier. Aceste comenzi sunt procesate mai întâi de programele sistemului de fișiere, iar apoi, la o anumită etapă a executării cererii, sunt convertite de sistemul de operare în comenzi de control pentru dispozitivul corespunzător.

Sistemele de fișiere moderne acceptă alte tipuri de fișiere, cum ar fi legăturile simbolice, conductele numite și fișierele mapate în memorie.

Structura ierarhică a sistemului de fișiere

Utilizatorii accesează fișierele prin nume simbolice. Cu toate acestea, memoria umană limitează numărul de nume de obiecte la care un utilizator se poate referi după nume. Organizarea ierarhică a spațiului de nume ne permite să extindem semnificativ aceste limite. Acesta este motivul pentru care majoritatea sistemelor de fișiere au o structură ierarhică, în care nivelurile sunt create permițând ca un director de nivel inferior să fie conținut într-un director de nivel superior (Figura 7.3).

Graficul care descrie ierarhia directoarelor poate fi un arbore sau o rețea. Directoarele formează un arbore dacă un fișier este permis să fie inclus într-un singur director (Fig. 7.3, b) și o rețea - dacă fișierul poate fi inclus în mai multe directoare simultan (Fig. 7.3, c). De exemplu, în MS-DOS și Windows, directoarele formează o structură arborescentă, în timp ce în UNIX formează o structură de rețea. Într-o structură arborescentă, fiecare fișier este o frunză. Directorul de nivel superior este numit directorul rădăcină sau rădăcină ( rădăcină ).

Cu această organizare, utilizatorul este eliberat de a-și aminti numele tuturor fișierelor; trebuie doar să aibă o idee aproximativă despre ce grup poate fi atribuit un anumit fișier pentru a-l găsi prin răsfoirea secvenţială în directoare. Structura ierarhică este convenabilă pentru lucrul cu mai mulți utilizatori: fiecare utilizator cu fișierele sale este localizat în propriul director sau subarbore de directoare și, în același timp, toate fișierele din sistem sunt conectate logic.

Un caz special al unei structuri ierarhice este o organizare cu un singur nivel, când toate fișierele sunt incluse într-un singur director (Fig. 7.3, a).

Nume de fișiere

Toate tipurile de fișiere au nume simbolice. Sistemele de fișiere organizate ierarhic folosesc de obicei trei tipuri de nume de fișiere: simple, compuse și relative.

Un nume simbolic simplu sau scurt identifică un fișier dintr-un singur director. Numele simple sunt atribuite fișierelor de către utilizatori și programatori și trebuie să țină cont de restricțiile sistemului de operare atât cu privire la intervalul de caractere, cât și la lungimea numelui. Până relativ recent, aceste granițe erau foarte înguste. Astfel, în popularul sistem de fișiere FAT, lungimea numelor a fost limitată la schema 8.3 (8 caractere - numele în sine, 3 caractere - extensia numelui), iar în sistemul de fișiere s5, susținut de multe versiuni ale sistemului de operare UNIX, un nume simbolic simplu nu poate conține mai mult de 14 caractere. Cu toate acestea, este mult mai convenabil pentru utilizator să lucreze cu nume lungi, deoarece acestea vă permit să dați fișierelor nume ușor de reținut, care indică clar ceea ce este conținut în fișier. Prin urmare, sistemele de fișiere moderne, precum și versiunile îmbunătățite ale sistemelor de fișiere preexistente, tind să accepte nume de fișiere simbolice lungi și simple. De exemplu, pe sistemele de fișiere NTFS și FAT32 incluse în sistemul de operare Windows NT, un nume de fișier poate conține până la 255 de caractere.

În sistemele de fișiere ierarhice, fișierele diferite pot avea aceleași nume simbolice simple, cu condiția să aparțină unor directoare diferite. Adică, schema „multe fișiere - un nume simplu” funcționează aici. Pentru a identifica unic un fișier în astfel de sisteme, se folosește așa-numitul nume complet.

Numele complet este un lanț de nume simbolice simple ale tuturor directoarelor prin care trece calea de la rădăcină la fișierul dat. Astfel, numele complet este un nume compus, în care numele simple sunt separate unele de altele prin separatorul acceptat în sistemul de operare. Adesea o bară oblică înainte sau inversă este folosită ca delimitator și se obișnuiește să nu se specifice numele directorului rădăcină. În fig. 7.3, b două fișiere au numele simplu main.exe, dar numele lor compuse /depart/main.exe și /user/anna/main.exe sunt diferite.

Într-un sistem de fișiere arbore, există o corespondență unu-la-unu între un fișier și numele complet: un fișier - un nume complet. În sistemele de fișiere care au o structură de rețea, un fișier poate fi inclus în mai multe directoare și, prin urmare, are mai multe nume complete; aici este valabilă corespondența „un fișier - multe nume complete”. În ambele cazuri, fișierul este identificat în mod unic prin numele complet.

Un fișier poate fi identificat și printr-un nume relativ. Numele relativ al fișierului este determinat prin conceptul de „director curent”. Pentru fiecare utilizator, la un moment dat, unul dintre directoarele sistemului de fișiere este directorul curent, iar acest director este selectat de utilizator însuși printr-o comandă a sistemului de operare. Sistemul de fișiere captează numele directorului curent, astfel încât să îl poată utiliza apoi ca o completare a numelor relative pentru a forma numele de fișier complet calificat. Când folosește nume relative, utilizatorul identifică un fișier prin lanțul de nume de directoare prin care trece ruta de la directorul curent la fișierul dat. De exemplu, dacă directorul curent este /user, atunci numele de fișier relativ /user/anna/main.exe este anna/main.exe.

Unele sisteme de operare vă permit să atribuiți mai multe nume simple aceluiași fișier, care pot fi interpretate ca aliasuri. În acest caz, la fel ca într-un sistem cu structură de rețea, se stabilește corespondența „un fișier - multe nume complete”, deoarece fiecare nume de fișier simplu corespunde cel puțin unui nume complet.

Și, deși numele complet identifică în mod unic fișierul, este mai ușor pentru sistemul de operare să lucreze cu fișierul dacă există o corespondență unu-la-unu între fișiere și numele acestora. În acest scop, atribuie un nume unic fișierului, astfel încât relația „un fișier - un nume unic” să fie valabilă. Numele unic există împreună cu unul sau mai multe nume simbolice atribuite fișierului de către utilizatori sau aplicații. Numele unic este un identificator numeric și este destinat numai sistemului de operare. Un exemplu de nume de fișier unic este un număr de inod pe un sistem UNIX.

Atributele fișierului

Conceptul de „fișier” include nu numai datele și numele pe care le stochează, ci și atributele acestuia. Atribute - Acestea sunt informații care descriu proprietățile fișierului. Exemple de atribute posibile de fișier:

    tip de fișier (fișier obișnuit, director, fișier special etc.);

    proprietarul fișierului;

    creator de fișiere;

    parola pentru accesarea fișierului;

    informații despre operațiunile permise de acces la fișiere;

    timpii de creare, ultimul acces și ultima modificare;

    dimensiunea actuală a fișierului;

    dimensiunea maximă a fișierului;

    semn numai pentru citire;

    semnul „fișier ascuns”;

    semnează „fișier de sistem”;

    semnează „fișier arhivă”;

    atributul „binar/caracter”;

    atributul „temporar” (eliminați după finalizarea procesului);

    semn de blocare;

    lungimea înregistrării fișierului;

    indicatorul către câmpul cheie din înregistrare;

    lungimea cheii.

Setul de atribute ale fișierelor este determinat de specificul sistemului de fișiere: diferite tipuri de sisteme de fișiere pot folosi diferite seturi de atribute pentru a caracteriza fișierele. De exemplu, pe sistemele de fișiere care acceptă fișiere plate, nu este nevoie să folosiți ultimele trei atribute din listă care sunt legate de structurarea fișierelor. Într-un sistem de operare cu un singur utilizator, setului de atribute va lipsi caracteristicile relevante pentru utilizatori și securitate, cum ar fi proprietarul fișierului, creatorul fișierului, parola pentru accesarea fișierului, informații despre accesul autorizat la fișier.

Utilizatorul poate accesa atribute folosind facilitățile oferite în acest scop de sistemul de fișiere. De obicei, puteți citi valorile oricărui atribut, dar doar schimbați unele. De exemplu, un utilizator poate modifica permisiunile unui fișier (cu condiția să aibă permisiunile necesare pentru a face acest lucru), dar nu poate modifica data creării sau dimensiunea curentă a fișierului.

Valorile atributelor fișierelor pot fi conținute direct în directoare, așa cum se face în sistemul de fișiere MS-DOS (Fig. 7.6a). Figura prezintă structura unei intrări de director care conține un nume simbolic simplu și atribute de fișier. Aici literele indică caracteristicile fișierului: R - numai citire, A - arhivat, H - ascuns, S - sistem.

Orez. 7.6. Structura directorului: a - Structura de intrare a directorului MS-DOS (32 de octeți), b - Structura de intrare a directorului UNIX OS

O altă opțiune este plasarea atributelor în tabele speciale, când cataloagele conțin doar link-uri către aceste tabele. Această abordare este implementată, de exemplu, în sistemul de fișiere ufs al sistemului de operare UNIX. În acest sistem de fișiere, structura directoarelor este foarte simplă. Înregistrarea pentru fiecare fișier conține un scurt nume de fișier simbolic și un indicator către descriptorul index al fișierului, acesta este numele în ufs pentru tabelul în care sunt concentrate valorile atributelor fișierului (Fig. 7.6, b).

În ambele versiuni, directoarele oferă o legătură între numele fișierelor și fișierele în sine. Cu toate acestea, abordarea separării numelui fișierului de atributele sale face sistemul mai flexibil. De exemplu, un fișier poate fi inclus cu ușurință în mai multe directoare simultan. Intrările pentru acest fișier din directoare diferite pot avea nume simple diferite, dar câmpul de link va avea același număr de inod.

Operații cu fișiere

Majoritatea sistemelor de operare moderne tratează un fișier ca pe o secvență nestructurată de octeți de lungime variabilă. Standard POSIX Următoarele operațiuni sunt definite în fișier:

    int deschis ( char * fname , int steaguri , modul _ t modul )

Această operație „deschide” un fișier, stabilind o conexiune între program și fișier. În acest caz programul primește descriptor de fișier- un număr întreg care identifică această conexiune. De fapt, acesta este un index în tabelul de sistem al fișierelor deschise pentru o anumită sarcină. Toate celelalte operațiuni folosesc acest index pentru a face referire la fișier.

Parametrul char * fname specifică numele fișierului. int flags este o mască de biți care determină modul de deschidere al fișierului.Fișierul poate fi deschis doar în citire, numai în scriere sau în citire-scriere; în plus, puteți deschide un fișier existent sau puteți încerca să creați un fișier nou de lungime zero.Modul opțional al treilea parametru este utilizat numai la crearea unui fișier și specifică atributele acestui fișier.

    oprit _ t lseek ( int mâner , oprit _ t decalaj , int de unde )

Această operație mută pointerul de citire/scriere în fișier.Parametrul offset specifică numărul de octeți cu care să se decaleze pointerul, iar parametrul wherece specifică de unde să înceapă offset-ul. Se presupune că offset-ul poate fi numărat din începutul fișierului (SEEK_SET), de la sfârșitul acestuia (SEEK_END) și din poziția curentă a indicatorului (SEEK_CUR). Operația returnează poziția pointerului măsurată de la începutul fișierului. Astfel, apelarea lseek(handle, 0, SEEK_CUR) va returna poziția curentă a indicatorului fără a-l muta.

    int read(int handle, char * unde, size_t how_much)

Operațiune de citire dintr-un fișier. Indicatorul unde specifică bufferul în care ar trebui să fie plasate datele citite; al treilea parametru specifică câte date trebuie citite.Sistemul citește numărul necesar de octeți din fișier, începând cu indicatorul de citire/scriere către acel fișier și mută indicatorul la sfârșitul secvenței de citire. Dacă fișierul se termină mai devreme, se citesc atâtea date câte au rămas până la sfârșit. Operația returnează numărul de octeți citiți. Dacă fișierul a fost deschis doar pentru scriere, apelarea read va returna o eroare.

    int write(int handle, char * what, size_t how_much)

O operație de scriere într-un fișier. Pointer-ul what specifică începutul buffer-ului de date, al treilea parametru specifică câte date trebuie scrise. Sistemul scrie numărul necesar de octeți în fișier, începând cu pointerul de citire/scriere la acel fișier, înlocuind datele stocate la acel fișier. locație și deplasarea indicatorului la sfârșitul blocului scris. Dacă fișierul se termină mai devreme, lungimea acestuia crește. Operația returnează numărul de octeți scriși.

Dacă fișierul a fost deschis doar în citire, apelarea scrierii va returna o eroare.

    int ioctl(int handle, int cmd, ...) ; int fcntl ( int mâner , int cmd , ...)

Operații suplimentare asupra fișierului. Inițial, se pare că ioctl a fost intenționat să fie o operație pe fișierul în sine, iar fcntl a fost o operație pe un handle de fișier deschis, dar apoi evoluțiile istorice au amestecat oarecum funcțiile acestor apeluri de sistem. Standard POSIX definește unele operații atât pe mâner, de exemplu duplicarea (în urma acestei operațiuni obținem două mânere asociate aceluiași fișier), cât și pe fișierul în sine, de exemplu, operația de trunchiere - tăiați fișierul la o lungime dată. În majoritatea versiunilor Unix Operația de trunchiere poate fi folosită și pentru a tăia date din mijlocul unui fișier. La citirea datelor dintr-o astfel de zonă tăiată, se citesc zerouri, iar această zonă în sine nu ocupă spațiu fizic pe disc.

O operațiune importantă este blocarea secțiunilor fișierului.Standard POSIX oferă o funcție de bibliotecă în acest scop, dar în sistemele familiei Unix Această funcție este implementată prin apelul fcntl.

Cele mai multe implementări ale standardului POSIX oferă propriile operațiuni suplimentare. Deci, în Unix SVR4 Cu aceste operațiuni puteți seta înregistrarea sincronă sau întârziată etc.

    caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int handle, off_t offset)

Maparea unei secțiuni a unui fișier în spațiul de adrese virtuale al procesului.Parametrul prot specifică drepturile de acces la secțiunea mapată: citire, scriere și execuție. Maparea poate avea loc la o anumită adresă virtuală sau sistemul poate selecta adresa pentru a se mapa singur.

Încă două operațiuni sunt efectuate nu asupra fișierului, ci asupra numelui acestuia: acestea sunt operațiunile de redenumire și ștergere a fișierului. În unele sisteme, de exemplu în sistemele familiei Unix, un fișier poate avea mai multe nume și există doar un apel de sistem pentru a șterge un nume. Fișierul este șters atunci când numele de familie este șters.

Se poate observa că setul de operații pe un fișier din acest standard este foarte asemănător cu setul de operațiuni pe un dispozitiv extern. Ambele sunt considerate ca un flux de octeți nestructurat. Pentru a completa imaginea, trebuie spus că principalul mijloc de comunicare între procese în sistemele familiei Unix (teava) este, de asemenea, un flux de date nestructurat. Ideea că majoritatea transferurilor de date pot fi reduse la un flux de octeți este destul de veche, dar Unix a fost unul dintre primele sisteme în care această idee a fost adusă la concluzia ei logică.

Aproximativ același model de lucru cu fișierele este adoptat în C.P./ M, și un set de apeluri de sistem de fișiere MS DOS copiat de fapt din apeluri Unix v7 . La randul lui, OS/2 Și Windows NT a moștenit principiile lucrului cu fișiere direct de la MS DOS.

Dimpotrivă, în sistemele fără Unixîntr-un pedigree, poate fi folosită o interpretare ușor diferită a conceptului de fișier. Cel mai adesea, un fișier este tratat ca un set de înregistrări. De obicei, sistemul acceptă atât înregistrări cu lungime constantă, cât și cu lungime variabilă. De exemplu, un fișier text este interpretat ca un fișier cu înregistrări de lungime variabilă și fiecare linie de text corespunde unei înregistrări. Acesta este modelul pentru lucrul cu fișiere în VMSși în linia OS OS/360 -MVS Compania IBM.

Clasificarea, structura, caracteristicile sistemelor de fisiere!!!

1. Conceptul, structura și funcționarea sistemului de fișiere.

Un sistem de fișiere este un set (ordine, structură și conținut) de organizare a stocării datelor pe medii de stocare, care oferă direct acces la datele stocate; la nivel de zi cu zi, este un set de toate fișierele și folderele de pe un disc. Principalele „unități” ale unui sistem de fișiere sunt considerate a fi un cluster, un fișier, un director, o partiție, un volum și un disc.
O colecție de zerouri și unu pe un mediu de stocare alcătuiește un cluster (dimensiunea minimă a spațiului pentru stocarea informațiilor, ele sunt de obicei numite și conceptul de sector, dimensiunea lor este un multiplu de 512 octeți).
Fișiere - o colecție numită de octeți împărțiți în sectoare. În funcție de sistemul de fișiere, un fișier poate avea un set diferit de proprietăți. Pentru comoditate în lucrul cu fișierele, sunt folosite numele acestora (identificatori simbolici).
Pentru a organiza structura sistemului de fișiere, fișierele sunt grupate în cataloage .
Capitol - o zonă a unui disc creată la partiționarea acestuia și care conține unul sau mai multe volume formatate.
Volum - zonă de partiție cu sistem de fișiere, tabel de fișiere și zonă de date. Una sau mai multe secțiuni alcătuiesc disc .
Toate informațiile despre fișiere sunt stocate într-o zonă specială a partiției - tabelul de fișiere. Tabelul de fișiere vă permite să asociați identificatori numerici de fișiere și informații suplimentare despre acestea (data modificată, drepturi de acces, nume etc.) cu conținutul real al fișierului stocat într-o altă zonă de partiție.

MBR (Master Boot Record) o zonă specială situată la începutul discului - care conține informațiile necesare pentru ca BIOS-ul să pornească sistemul de operare de pe hard disk.
Tabelul de partiții este, de asemenea, situat la începutul discului; sarcina sa este de a stoca informații despre partiții: început, lungime, încărcare. Partiția de pornire conține sectorul de boot, care stochează programul de boot al sistemului de operare.

Numărătoarea inversă începe de la MBR (din sectorul numărul 0) pentru toate partițiile primare, atât obișnuite, cât și extinse, și numai pentru cele primare.
Toate secțiunile logice obișnuite (nu logice extinse) sunt specificate printr-un decalaj relativ la începutul secțiunii extinse în care sunt descrise.
Toate partițiile logice extinse sunt specificate printr-un decalaj relativ la începutul partiției primare extinse.

Procesul de pornire a sistemului de operare este următorul:
Când porniți computerul, BIOS-ul preia controlul asupra procesorului, pornește de pe hard disk, încarcă primul sector al discului (MBR) în memoria RAM a computerului și îi transferă controlul).

MBR-ul poate fi scris ca un bootloader „standard”,

și bootloadere precum LILO/GRUB.

Încărcătorul de pornire standard găsește prima partiție cu indicatorul de pornire în tabelul principal de partiții, citește primul ei sector (sector de pornire) și transferă controlul către codul scris în acest sector de pornire. Dacă în loc de încărcătorul standard MBR există altul, atunci acesta nu se uită la steag-ul de pornire și poate porni de pe orice partiție (prescris în setările sale).

De exemplu, pentru a încărca sistemul de operare Windows NT/2k/XP/2003, codul este scris în sectorul de pornire care încarcă încărcătorul principal (ntloader) din partiția curentă în memorie.
Fiecare sistem de fișiere FAT16/FAT32/NTFS utilizează propriul său bootloader. Rădăcina partiției trebuie să conțină fișierul ntldr. Dacă vedeți mesajul „NTLDR is missing” când încercați să porniți Windows, atunci acesta este exact cazul când fișierul ntldr lipsește. De asemenea, pentru funcționarea normală a ntldr, este posibil să aveți nevoie de fișierele bootfont.bin, ntbootdd.sys, ntdetect.com și de un boot.ini scris corect.

Exemplu boot.ini

C:\boot.ini

timeout=8
implicit=C:\gentoo.bin

C:\gentoo.bin="Gentoo Linux"
multi(0)disk(0)rdisk(0)partiție(1)\WINDOWS="Windows XP (32-bit)" /fastdetect /NoExecute=OptIn
multi(0)disc(0)rdisk(0)partiție(3)\WINDOWS="Windows XP (64-bit)" /fastdetect /usepmtimer

Exemplu de fișier de configurare grub.conf

#grub.conf generat de anaconda
#
#Rețineți că nu trebuie să rulați din nou grub după ce faceți modificări la acest fișier
#
#OBSERVAȚIE: aveți o partiție /boot. Aceasta înseamnă că
#toate căile nucleului și initrd sunt relative la /boot/, de ex.
#rădăcină (hdO.O)
#kernel /vmlinuz-version ro root=/dev/sda2
#initrd/initrd-version.img
#boot=/dev/sda default=0 timeout=5
splashimage=(hdO,0)/grub/splash.xpm.gz
meniu ascuns
titlu Server Red Hat Enterprise Linux (2.6.18-53.el 5)
rădăcină (hdO.O)
kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet-
initrd /initrd-2.6.18-53.el5.img

Structura fișierului lilo.conf

# Fișierul de configurare LILO generat de „liloconfig”
//Secțiune pentru descrierea parametrilor globali
# Porniți secțiunea globală LILO
//Locația în care este înregistrată Lilo. ÎN în acest caz, acesta este MBR
boot = /dev/hda
//Mesaj care este afișat la încărcare
mesaj = /boot/boot_message.txt
//Afișează o invitație
prompt
//Time Out pentru a selecta sistemul de operare
timeout = 1200
# Ignorați valorile implicite periculoase care rescriu tabelul de partiții:
schimba-reguli
resetare
Consolă framebuffer #VESA @ 800x600x256
//Selectarea modului video pentru afișarea meniului
vga=771
# Încheiați secțiunea globală LILO
//Secțiune pentru descrierea parametrilor de boot Windows
# Începe configurarea partiției bootabile DOS
altele = /dev/hda1
etichetă = Windows98
tabel = /dev/hda
# Configurația partiției bootabile DOS se termină
//Secțiune pentru descrierea parametrilor de boot QNX
# Începe configurația partiției bootabile QNX
//Cale către sistemul de operare
altele = /dev/hda2
etichetă = QNX
tabel = /dev/hda
# Configurația partiției bootabile QNX se încheie
//Secțiune pentru descrierea parametrilor de boot Linux
# Începe configurarea partiției bootabile Linux
//Cale către imaginea kernelului
imagine = /boot/vmlinuz
root = /dev/hda4
label = Slackware
numai pentru citire
# Configurația partiției bootabile Linux se termină


2. Cele mai cunoscute sisteme de fișiere.

  • Sistem avansat de arhivare pe disc
  • AdvFS
  • Fii sistem de fișiere
  • CSI - DOS
  • Criptarea sistemului de fișiere
  • Sistem de fișiere extins
  • Al doilea sistem de fișiere extins
  • Al treilea sistem de fișiere extins
  • Al patrulea sistem de fișiere extins
  • Tabelul de alocare a fișierelor (FAT)
  • Fișiere - 11
  • Sistem de fișiere ierarhic
  • HFS Plus
  • Sistem de fișiere de înaltă performanță (HPFS)
  • ISO 9660
  • Sistem de fișiere jurnalizate
  • Sistemul de fișiere Macintosh
  • Sistem de fișiere MINIX
  • MicroDOS
  • Următorul3
  • Noua implementare a unui F structurat în jurnal (NILFS)
  • Servicii de stocare Novell
  • Sistem de fișiere cu tehnologie nouă (NTFS)
  • Protogon
  • ReiserFS
  • Sistem de fișiere inteligent
  • Squashfs
  • Sistemul de fișiere Unix
  • Format universal de disc (UDF)
  • Sistemul de fișiere Veritas
  • Windows Future Storage (WinFS)
  • Scrieți oriunde aspectul fișierului
  • Sistemul de fișiere Zettabyte (ZFS)

3. Principalele caracteristici ale sistemelor de fișiere.

Sistemul de operare oferă aplicațiilor un set de funcții și structuri pentru lucrul cu fișierele. Capacitățile sistemului de operare impun restricții suplimentare asupra limitărilor sistemului de fișiere; principalele restricții includ:

Dimensiunea maximă (minimă) a volumului;
- Numărul maxim (minim) de fișiere în directorul rădăcină;
- Numărul maxim de fișiere într-un director non-rădăcină;
- Securitate la nivel de fișier;
- Suport pentru nume lungi de fișiere;
- Auto vindecare;
- Compresie la nivel de fișier;
- Mentinerea jurnalelor de tranzactii;

4. Scurtă descriere a celor mai comune sisteme de fișiere FAT, NTFS, EXT.

Sistemul de fișiere FAT.

FAT (tabelul de alocare a fișierelor) înseamnă tabelul de alocare a fișierelor.
În sistemul de fișiere FAT, spațiul de disc logic al oricărei unități logice este împărțit în două zone:
- zona de sistem;
- zona de date.
Zona de sistem este creată în timpul formatării și actualizată atunci când structura fișierului este manipulată. Zona de date conține fișiere și directoare subordonate rădăcinii și este accesibilă prin interfața cu utilizatorul. Zona de sistem este formată din următoarele componente:
- înregistrarea de pornire;
- sectoare rezervate;
- tabele de alocare a fișierelor (FAT);
- directorul rădăcină.
Tabelul de alocare a fișierelor este o hartă (imagine) a zonei de date, care descrie starea fiecărei secțiuni a zonei de date. Zona de date este împărțită în clustere. Un cluster este unul sau mai multe sectoare învecinate într-un spațiu de adrese de disc logic (numai zona de date). În tabelul FAT, clusterele aparținând aceluiași fișier (director non-rădăcină) sunt legate în lanțuri. Sistemul de gestionare a fișierelor FAT16 utilizează un cuvânt de 16 biți pentru a indica numărul clusterului, astfel încât să puteți avea până la 65.536 clustere.
Un cluster este unitatea minimă adresabilă de memorie de disc alocată unui fișier sau director non-rădăcină. Un fișier sau un director ocupă un număr întreg de clustere. În acest caz, ultimul cluster poate să nu fie utilizat pe deplin, ceea ce va duce la o pierdere vizibilă a spațiului pe disc dacă dimensiunea clusterului este mare.
Deoarece FAT este folosit foarte intens la accesarea discului, este încărcat în RAM și rămâne acolo cât mai mult timp posibil.
Directorul rădăcină diferă de un director obișnuit prin faptul că este situat într-o locație fixă ​​pe un disc logic și are un număr fix de elemente. Pentru fiecare fișier și director, sistemul de fișiere stochează informații conform următoarei structuri:
- nume de fișier sau director – 11 octeți;
- atribute fișier – 1 octet;
- câmp de rezervă – 1 octet;
- timpul de creare – 3 octeți;
- data creării – 2 octeți;
- data ultimului acces – 2 octeți;
- rezervat – 2 octeți;
- timpul ultimei modificări – 2 octeți;
- numărul inițial al clusterului în FAT – 2 octeți;
- dimensiunea fișierului – 4 octeți.
Structura sistemului de fișiere este ierarhică.

Sistem de fișiere FAT32.
FAT32 este un sistem de fișiere complet independent pe 32 de biți și conține numeroase îmbunătățiri și completări față de FAT16. Diferența fundamentală dintre FAT32 este utilizarea mai eficientă a spațiului pe disc: FAT32 utilizează clustere mai mici, ceea ce duce la economisirea spațiului pe disc.
FAT32 poate muta directorul rădăcină și poate folosi backup-ul FAT în locul celui standard. FAT32 Enhanced Boot Record vă permite să creați copii ale structurilor de date critice, făcând unitățile mai rezistente la încălcările structurii FAT decât versiunile anterioare. Directorul rădăcină este un lanț obișnuit de clustere, deci poate fi localizat în orice locație de pe disc, ceea ce elimină limitarea dimensiunii directorului rădăcină.


Sistem de fișiere NTFS.
Sistemul de fișiere NTFS (New Technology File System) conține o serie de îmbunătățiri și modificări semnificative care îl deosebesc semnificativ de alte sisteme de fișiere. Din punctul de vedere al utilizatorilor, fișierele sunt încă stocate în directoare, dar lucrul pe discuri mari în NTFS este mult mai eficient:
- există mijloace de restricționare a accesului la fișiere și directoare;
- au fost introduse mecanisme care cresc semnificativ fiabilitatea sistemului de fișiere;
- multe restricții privind numărul maxim de sectoare de disc și/sau clustere au fost eliminate.

Principalele caracteristici ale sistemului de fișiere NTFS:
- fiabilitate. Calculatoarele performante si sistemele partajate trebuie sa aiba o fiabilitate sporita; in acest scop a fost introdus un mecanism de tranzactie in care se inregistreaza tranzactiile cu fisiere;
- funcționalitate extinsă. Au fost introduse noi caracteristici în NTFS: toleranță îmbunătățită la erori, emularea altor sisteme de fișiere, un model de securitate puternic, procesarea paralelă a fluxurilor de date, crearea de atribute de fișiere definite de utilizator;
- Suport standard POSIX. Caracteristicile de bază includ nume opționale de fișiere care țin cont de majuscule, stocarea orei la care a fost accesat ultima dată un fișier și un mecanism de nume alternativ care permite ca același fișier să fie referit prin mai multe nume;
- flexibilitate. Alocarea spațiului pe disc este foarte flexibilă: dimensiunea clusterului poate varia de la 512 octeți la 64 KB.
NTFS funcționează bine cu seturi mari de date și volume mari. Dimensiunea maximă a volumului (și a fișierului) este de 16 EB. (1 EB este egal cu 2**64 sau 16000 de miliarde de gigaocteți.) Numărul de fișiere din directoarele rădăcină și non-rădăcină nu este limitat. Deoarece structura de directoare NTFS se bazează pe o structură de date eficientă numită „arbore binar”, timpii de căutare a fișierelor NTFS nu sunt legați liniar de numărul de fișiere.
NTFS are unele capacități de auto-vindecare și acceptă diverse mecanisme de verificare a integrității sistemului, inclusiv înregistrarea tranzacțiilor, care vă permite să urmăriți operațiunile de scriere a fișierelor în jurnalul de sistem.
Sistemul de fișiere NTFS acceptă modelul de obiecte de securitate și tratează toate volumele, directoarele și fișierele ca obiecte NTFS independente. Drepturile de acces la volume, directoare și fișiere depind de contul de utilizator și de grupul căruia îi aparține.
Sistemul de fișiere NTFS are capabilități de compresie încorporate care pot fi aplicate volumelor, directoarelor și fișierelor.

Sistem de fișiere Ext3.
Sistemul de fișiere ext3 poate suporta fișiere de până la 1 TB. Cu nucleul Linux 2.4, dimensiunea sistemului de fișiere este limitată de dimensiunea maximă a dispozitivului bloc, care este de 2 teraocteți. În Linux 2.6 (pentru procesoare pe 32 de biți), dimensiunea maximă a dispozitivului bloc este de 16 TB, totuși ext3 acceptă doar până la 4 TB.
Ext3 are compatibilitate NFS bună și nu are probleme de performanță atunci când există o lipsă de spațiu liber pe disc.Un alt avantaj al ext3 vine din faptul că se bazează pe codul ext2. Formatul de disc al ext2 și ext3 este identic; De aici rezultă că, dacă este necesar, sistemul de fișiere ext3 poate fi montat ca ext2 fără probleme. Și asta nu este tot. Datorită faptului că ext2 și ext3 folosesc metadate identice, este posibilă actualizarea ext2 la ext3 din mers.
Fiabilitate Ext3
Pe lângă compatibilitatea cu ext2, ext3 moștenește și alte avantaje ale formatului comun de metadate. Utilizatorii ext3 au la dispoziție instrumentul fsck care a fost dovedit de ani de zile. Desigur, principalul motiv pentru trecerea la un sistem de fișiere de jurnal este acela de a elimina necesitatea verificărilor periodice și îndelungate ale consistenței metadatelor de pe disc. Cu toate acestea, „înregistrarea” nu protejează împotriva blocărilor nucleului sau a deteriorării discului (sau orice altceva de genul acesta). În caz de urgență, veți aprecia faptul că ext3 are continuitate de la ext2 cu fsck-ul său.
Jurnal în ext3.
Acum că avem o înțelegere generală a problemei, să ne uităm la modul în care ext3 face jurnalizarea. Codul de înregistrare ext3 folosește un API special numit stratul Journaling Block Device sau JBD. JBD a fost conceput pentru autentificare pe orice dispozitiv bloc. Ext3 este legat de API-ul JBD. În acest caz, codul sistemului de fișiere ext3 informează JBD-ul despre necesitatea modificării și solicită permisiunea JBD-ului pentru a o efectua. Jurnalul este gestionat de JBD în numele driverului sistemului de fișiere ext3. Această convenție este foarte convenabilă, deoarece JBD-ul este dezvoltat ca un obiect separat, universal și poate fi folosit în viitor pentru jurnalizare în alte sisteme de fișiere.
Protecția datelor în Ext3
Acum putem vorbi despre modul în care sistemul de fișiere ext3 oferă înregistrare atât pentru date, cât și pentru metadate. Există de fapt două metode pentru a garanta consistența în ext3.
ext3 a fost conceput inițial pentru înregistrarea datelor și a metadatelor complete. În acest mod (numit modul „date=jurnal”), JBD înregistrează toate modificările aduse sistemului de fișiere, legate atât de date, cât și de metadate. În acest caz, JBD poate folosi jurnalul pentru a derula înapoi și a restaura metadatele și datele. Dezavantajul înregistrării „complete” este performanța sa destul de scăzută și consumul unei cantități mari de spațiu pe disc pentru jurnal.
Recent, la ext3 a fost adăugat un nou mod de jurnalizare care combină performanța ridicată cu garanția consistenței structurii sistemului de fișiere după o blocare (cum ar fi sistemele de fișiere jurnalizate „obișnuite”). Noul mod de operare servește doar metadate. Cu toate acestea, driverul sistemului de fișiere ext3 urmărește în continuare procesarea blocurilor întregi de date (dacă acestea implică modificarea metadatelor) și le grupează într-un obiect separat numit tranzacție. Tranzacția va fi finalizată numai după ce toate datele au fost scrise pe disc. Un efect secundar al acestei tehnici brute (numită modul „date=ordonate”) este că ext3 oferă o probabilitate mai mare de integritate a datelor (comparativ cu sistemele de fișiere de jurnal „avansate”), garantând în același timp consistența metadatelor. În acest caz, sunt înregistrate numai modificările aduse structurii sistemului de fișiere. Ext3 utilizează acest mod în mod implicit.
Ext3 are multe avantaje. Este proiectat pentru o ușurință maximă de desfășurare. Se bazează pe ani de cod ext2 dovedit și a moștenit minunatul instrument fsck. Ext3 este destinat în primul rând aplicațiilor care nu au capabilități încorporate pentru a garanta integritatea datelor. În general, ext3 este un sistem de fișiere minunat și o continuare demnă a ext2. Există încă o caracteristică care distinge pozitiv ext3 de alte sisteme de fișiere jurnalizate sub Linux - fiabilitate ridicată.

Sistemul de fișiere ext4 este o continuare evolutivă demnă a sistemului ext.