Discuri și sisteme de fișiere. Tehnologia de diagnosticare și reparare a hard disk-urilor

Sistemele de operare Microsoft din familia Windows NT nu pot fi imaginate fără sistemul de fișiere NTFS - unul dintre cele mai complexe și de succes sisteme de fișiere existente în prezent. Acest articol vă va spune care sunt caracteristicile și dezavantajele acestui sistem, pe ce principii se bazează organizarea informațiilor și cum să mențineți sistemul într-o stare stabilă, ce caracteristici oferă NTFS și cum le poate folosi utilizatorul obișnuit.
Partea 1. Structura fizică a NTFS

Să începem cu faptele generale. O partiție NTFS, în teorie, poate avea aproape orice dimensiune. Desigur, există o limită, dar nici nu o voi indica, deoarece va fi suficientă pentru următoarea sută de ani de dezvoltare a tehnologiei informatice - cu orice ritm de creștere. Cum funcționează acest lucru în practică? Aproape la fel. Dimensiunea maximă a unei partiții NTFS este limitată în prezent doar de dimensiunea hard disk-urilor. Cu toate acestea, NT4 va întâmpina probleme atunci când încearcă să se instaleze pe o partiție dacă orice parte a acesteia este mai mare de 8 GB de la începutul fizic al discului, dar această problemă afectează doar partiția de pornire.

Digresiune lirică. Metoda de instalare a NT4.0 pe un disc gol este destul de originală și poate duce la gânduri greșite despre capacitățile NTFS. Dacă îi spuneți instalatorului că doriți să formatați unitatea în NTFS, dimensiunea maximă pe care vi o va oferi este de doar 4 GB. De ce atât de mic dacă dimensiunea unei partiții NTFS este practic nelimitată? Faptul este că secțiunea de instalare pur și simplu nu cunoaște acest sistem de fișiere :) Programul de instalare formatează acest disc într-un FAT obișnuit, a cărui dimensiune maximă în NT este de 4 GB (folosind un cluster imens de 64 KB nu tocmai standard) și NT se instalează pe acest FAT. Dar deja în timpul primei porniri a sistemului de operare în sine (încă în faza de instalare), partiția este rapid convertită în NTFS; astfel încât utilizatorul nu observă nimic în afară de ciudata „limitare” a dimensiunii NTFS în timpul instalării. :)

Structura secțiunii - vedere generală

Ca orice alt sistem, NTFS împarte tot spațiul util în clustere - blocuri de date utilizate la un moment dat. NTFS acceptă aproape orice dimensiune de cluster - de la 512 octeți la 64 KB, în timp ce un cluster de 4 KB este considerat un anumit standard. NTFS nu are anomalii în structura clusterului, așa că nu sunt multe de spus despre acest subiect, în general, destul de banal.

Un disc NTFS este împărțit în mod convențional în două părți. Primele 12% din disc sunt alocate așa-numitei zone MFT - spațiul în care crește metafișierul MFT (mai multe despre asta mai jos). Nu este posibil să scrieți date în această zonă. Zona MFT este întotdeauna păstrată goală - acest lucru se face astfel încât cel mai important fișier de serviciu (MFT) să nu devină fragmentat pe măsură ce crește. Restul de 88% din disc este spațiu normal de stocare a fișierelor.

Totuși, spațiul liber pe disc include tot spațiul liber fizic - bucăți neumplute din zona MFT sunt incluse și acolo. Mecanismul de utilizare a zonei MFT este următorul: atunci când fișierele nu mai pot fi scrise în spațiul obișnuit, zona MFT este pur și simplu redusă (în versiunile actuale ale sistemelor de operare exact la jumătate), eliberând astfel spațiu pentru scrierea fișierelor. Când spațiul este eliberat în zona MFT obișnuită, zona se poate extinde din nou. În același timp, este posibil ca fișierele obișnuite să rămână în această zonă: nu există nicio anomalie aici. Ei bine, sistemul a încercat să o mențină liberă, dar nimic nu a funcționat. Viața continuă... Metafișierul MFT poate deveni în continuare fragmentat, deși acest lucru ar fi de nedorit.

MFT și structura sa

Sistemul de fișiere NTFS reprezintă o realizare remarcabilă a structurii: fiecare un element al sistemului este un fișier - chiar și informații de serviciu. Cel mai important fișier de pe NTFS se numește MFT sau Master File Table - un tabel general de fișiere. Este situat în zona MFT și este un director centralizat al tuturor celorlalte fișiere de disc și, paradoxal, el însuși. MFT este împărțit în intrări de dimensiune fixă ​​(de obicei 1 KB), iar fiecare intrare corespunde unui fișier (în sensul general al cuvântului). Primele 16 fișiere sunt de natură de serviciu și sunt inaccesibile sistemului de operare - se numesc metafișiere, primul metafișier fiind MFT însuși. Aceste primele 16 elemente MFT sunt singura parte a discului care are o poziție fixă. Interesant este că a doua copie a primelor trei înregistrări, pentru fiabilitate - sunt foarte importante - este stocată exact în mijlocul discului. Restul fișierului MFT poate fi localizat, ca orice alt fișier, în locuri arbitrare de pe disc - îi puteți restabili poziția folosind fișierul în sine, „prinzând” pe bază - pe primul element MFT.

Metafișiere

Primele 16 fișiere NTFS (metafișiere) sunt de natură de serviciu. Fiecare dintre ei este responsabil pentru un anumit aspect al funcționării sistemului. Avantajul unei astfel de abordări modulare este flexibilitatea sa uimitoare - de exemplu, pe FAT, deteriorarea fizică în zona FAT în sine este fatală pentru funcționarea întregului disc, iar NTFS poate muta, chiar fragmenta pe disc, toate serviciile sale. zone, ocolind orice defecțiuni de suprafață - cu excepția primelor 16 elemente MFT.

Metafișierele sunt situate în directorul rădăcină al unui disc NTFS - încep cu simbolul numelui „$”, deși este dificil să obțineți informații despre ele folosind mijloace standard. Este curios că aceste fișiere au și o dimensiune foarte reală indicată - puteți afla, de exemplu, cât cheltuiește sistemul de operare pentru catalogarea întregului disc, uitându-vă la dimensiunea fișierului $MFT. Următorul tabel arată metafișierele utilizate în prezent și scopul lor.

$MFTMFT în sine
$MFTmirro copie a primelor 16 înregistrări MFT plasate în mijlocul discului
$LogFilefișier de suport pentru înregistrare (vezi mai jos)
$Voluminformații despre serviciu - etichetă de volum, versiunea sistemului de fișiere etc.
$AttrDeflista de atribute standard ale fișierului de pe volum
$. directorul rădăcină
$Bitmaphartă spațiu liber volum
$Bootsector de boot (dacă partiția este bootabilă)
$quotaun fișier care înregistrează drepturile utilizatorului de a utiliza spațiul pe disc (a început să funcționeze numai în NT5)
$Majusculefișier - un tabel de corespondență între literele mari și mici din numele fișierelor de pe volumul curent. Este necesar în principal pentru că în NTFS numele fișierelor sunt scrise în Unicode, care se ridică la 65 de mii de caractere diferite, căutarea de echivalente mari și mici, a căror căutare este foarte netrivială.

Fișiere și fluxuri

Deci, sistemul are fișiere - și nimic altceva decât fișiere. Ce include acest concept pe NTFS?

  • În primul rând, un element obligatoriu este înregistrarea în MFT, deoarece, după cum am menționat mai devreme, toate fișierele de disc sunt menționate în MFT. Toate informațiile despre fișier sunt stocate în acest loc, cu excepția datelor în sine. Numele fișierului, dimensiunea, poziția pe disc a fragmentelor individuale etc. Dacă o înregistrare MFT nu este suficientă pentru informații, atunci sunt utilizate mai multe, și nu neapărat la rând.
  • Element opțional - fluxuri de date fișier. Definiția „opțional” poate părea ciudată, dar, cu toate acestea, nu este nimic ciudat aici. În primul rând, este posibil ca fișierul să nu aibă date - în acest caz, nu consumă spațiul liber al discului în sine. În al doilea rând, fișierul poate să nu fie foarte mare. Apoi intră în joc o soluție destul de reușită: datele fișierului sunt stocate direct în MFT, în spațiul rămas din datele principale într-o înregistrare MFT. Fișierele care ocupă sute de octeți, de obicei, nu au întruchiparea lor „fizică” în zona principală a fișierului - toate datele unui astfel de fișier sunt stocate într-un singur loc - în MFT.

Situația cu datele fișierului este destul de interesantă. Fiecare fișier pe NTFS, în general, are o structură oarecum abstractă - nu are date ca atare, dar există fluxuri. Unul dintre fluxuri are sensul cu care suntem familiarizați - date fișier. Dar majoritatea atributelor fișierelor sunt și fluxuri! Astfel, se dovedește că fișierul are o singură entitate de bază - numărul în MFT, iar orice altceva este opțional. Această abstracție poate fi folosită pentru a crea lucruri destul de convenabile - de exemplu, puteți „atașa” un alt flux la un fișier scriind orice date în el - de exemplu, informații despre autor și conținutul fișierului, așa cum se face în Windows 2000 (fila cea mai din dreapta din proprietățile fișierului, vizualizată din Explorer). Interesant este că aceste fluxuri suplimentare nu sunt vizibile prin mijloace standard: dimensiunea fișierului observat este doar dimensiunea fluxului principal care conține datele tradiționale. Puteți, de exemplu, să aveți un fișier de lungime zero, care, atunci când este șters, va elibera 1 GB de spațiu liber - pur și simplu pentru că un program sau o tehnologie vicleană a blocat un flux suplimentar de dimensiunea unui gigabyte (date alternative) în el. Dar de fapt, în momentul de față, firele practic nu sunt folosite, așa că nu trebuie să se teamă de astfel de situații, deși ipotetic sunt posibile. Rețineți că un fișier pe NTFS este un concept mai profund și mai global decât s-ar putea imagina prin simpla navigare prin directoarele discului. Și în sfârșit: numele fișierului poate conține orice caractere, inclusiv întregul set de alfabete naționale, deoarece datele sunt prezentate în Unicode - o reprezentare pe 16 biți care oferă 65535 de caractere diferite. Lungimea maximă a numelui fișierului este de 255 de caractere.

Cataloagele

Un director NTFS este un fișier specific care stochează link-uri către alte fișiere și directoare, creând o structură ierarhică a datelor de pe disc. Fișierul de catalog este împărțit în blocuri, fiecare dintre ele conține numele fișierului, atributele de bază și un link către elementul MFT, care oferă deja informații complete despre elementul de catalog. Structura directorului intern este un arbore binar. Iată ce înseamnă asta: pentru a găsi un fișier cu un nume dat într-un director liniar, cum ar fi un FAT, sistemul de operare trebuie să caute prin toate elementele directorului până îl găsește pe cel potrivit. Un arbore binar aranjează numele fișierelor în așa fel încât căutarea unui fișier să fie efectuată într-un mod mai rapid - prin obținerea de răspunsuri din două cifre la întrebările despre locația fișierului. Întrebarea la care poate răspunde un arbore binar este: în ce grup, în raport cu un anumit element, se află numele pe care îl căutați - deasupra sau dedesubt? Începem cu o astfel de întrebare la elementul din mijloc și fiecare răspuns restrânge zona de căutare în medie de două ori. Fișierele sunt, să zicem, pur și simplu sortate alfabetic, iar la întrebare se răspunde într-un mod evident - prin compararea literelor inițiale. Zona de căutare, restrânsă la jumătate, începe să fie explorată într-un mod similar, pornind din nou de la elementul din mijloc.

Concluzie - pentru a căuta un fișier dintre 1000, de exemplu, FAT va trebui să facă o medie de 500 de comparații (cel mai probabil fișierul va fi găsit la mijlocul căutării), iar un sistem bazat pe arbore va avea pentru a face doar aproximativ 12 (2^10 = 1024). Economiile de timp de căutare sunt evidente. Cu toate acestea, nu ar trebui să vă gândiți că în sistemele tradiționale (FAT) totul este atât de neglijat: în primul rând, menținerea unei liste de fișiere sub forma unui arbore binar este destul de laborioasă, iar în al doilea rând, chiar și FAT realizat de un sistem modern (Windows2000). sau Windows98) utilizează căutare de optimizare similară. Acesta este doar un alt fapt de adăugat la baza ta de cunoștințe. De asemenea, aș dori să elimin ideea greșită comună (pe care eu însumi am împărtășit-o destul de recent) că adăugarea unui fișier într-un director sub formă de arbore este mai dificilă decât într-un director liniar: acestea sunt operațiuni destul de comparabile în timp - faptul este că, pentru a adăuga un fișier în director, trebuie mai întâi să vă asigurați că un fișier cu acel nume nu este încă acolo :) - și aici într-un sistem liniar vom avea dificultăți în găsirea unui fișier, descris mai sus, care mai mult decât să compenseze pentru simplitatea adăugării unui fișier în director.

Ce informații pot fi obținute prin simpla citire a unui fișier de catalog? Exact ceea ce produce comanda dir. Pentru a efectua o navigare simplă pe disc, nu trebuie să intrați în MFT pentru fiecare fișier, trebuie doar să citiți cele mai generale informații despre fișierele din fișierele directoare. Directorul principal al discului - rădăcina - nu este diferit de directoarele obișnuite, cu excepția unei legături speciale către acesta de la începutul metafișierului MFT.

Logare

NTFS este un sistem tolerant la erori care se poate restabili cu ușurință la o stare corectă în cazul aproape oricărei defecțiuni reale. Orice sistem de fișiere modern se bazează pe conceptul de tranzacţie- o acțiune efectuată în întregime și corect sau deloc executată. NTFS pur și simplu nu are stări intermediare (eronate sau incorecte) - cantitatea de modificare a datelor nu poate fi împărțită în înainte și după eșec, aducând distrugere și confuzie - este fie comisă, fie anulată.

Exemplul 1: datele sunt scrise pe disc. Dintr-o dată se dovedește că nu a fost posibil să scriem în locul în care tocmai ne-am hotărât să scriem următoarea porțiune de date - deteriorarea fizică a suprafeței. Comportamentul NTFS în acest caz este destul de logic: tranzacția de scriere este anulată în întregime - sistemul realizează că scrierea nu a fost efectuată. Locația este marcată ca eșuată, iar datele sunt scrise într-o altă locație - începe o nouă tranzacție.

Exemplul 2: Un caz mai complex este atunci când datele sunt scrise pe disc. Brusc, bang - alimentarea este oprită și sistemul repornește. În ce fază s-a oprit înregistrarea, unde sunt datele și unde sunt prostii? Un alt mecanism de sistem vine în ajutor - jurnalul de tranzacții. Faptul este că sistemul, realizându-și dorința de a scrie pe disc, a marcat această stare în metafișierul $LogFile. La repornire, acest fișier este examinat pentru prezența tranzacțiilor neterminate care au fost întrerupte de un accident și al căror rezultat este imprevizibil - toate aceste tranzacții sunt anulate: locul în care s-a făcut scrierea este marcat din nou ca liber, indici și elemente MFT. sunt readuse la starea în care se aflau înainte de eșec, iar sistemul în ansamblu rămâne stabil. Ei bine, ce se întâmplă dacă a apărut o eroare în timpul scrierii în jurnal? De asemenea, este în regulă: tranzacția fie nu a început încă (există doar o încercare de a înregistra intențiile de a o efectua), fie s-a încheiat deja - adică există o încercare de a înregistra că tranzacția a fost deja deja efectuat. În acest din urmă caz, la următoarea pornire, sistemul însuși va înțelege pe deplin că, de fapt, totul a fost scris corect oricum și nu va acorda atenție tranzacției „nefinalizate”.

Totuși, rețineți că înregistrarea în jurnal nu este un panaceu absolut, ci doar un mijloc de a reduce semnificativ numărul de erori și defecțiuni ale sistemului. Este puțin probabil ca utilizatorul mediu NTFS să observe vreodată o eroare de sistem sau să fie forțat să ruleze chkdsk - experiența arată că NTFS este restabilit la o stare complet corectă chiar și în cazul unor eșecuri în momente foarte ocupate cu activitatea discului. Puteți chiar să optimizați discul și să apăsați pe resetare în mijlocul acestui proces - probabilitatea de pierdere a datelor chiar și în acest caz va fi foarte mică. Este important de înțeles, totuși, că sistemul de recuperare NTFS garantează corectitudinea Sistemul de fișiere, nu datele dvs. Dacă ați scris pe un disc și ați avut un accident, este posibil ca datele dvs. să nu fie scrise. Nu există miracole.

Comprimare

Fișierele NTFS au un atribut destul de util - „comprimat”. Faptul este că NTFS are suport încorporat pentru compresia discului - ceva pentru care anterior trebuia să folosești Stacker sau DoubleSpace. Orice fișier sau director poate fi stocat individual pe disc sub formă comprimată - acest proces este complet transparent pentru aplicații. Comprimarea fișierelor are o viteză foarte mare și o singură proprietate negativă mare - uriașa fragmentare virtuală a fișierelor comprimate, care, totuși, nu deranjează pe nimeni. Comprimarea se realizează în blocuri de 16 clustere și utilizează așa-numitele „clustere virtuale” - din nou o soluție extrem de flexibilă care vă permite să obțineți efecte interesante - de exemplu, jumătate din fișier poate fi comprimat, iar jumătate nu. Acest lucru se realizează datorită faptului că stocarea informațiilor despre comprimarea anumitor fragmente este foarte similară cu fragmentarea obișnuită a fișierelor: de exemplu, o înregistrare tipică a aspectului fizic pentru un fișier real, necomprimat:

clusterele de fișiere de la 1 la 43 sunt stocate în clustere de discuri începând de la 400

clusterele de fișiere de la 44 la 52 sunt stocate în clustere de discuri începând de la 8530...

Aspectul fizic al unui fișier comprimat tipic:

clusterele de fișiere de la 1 la 9 sunt stocate în clustere de discuri începând de la 400

clusterele de fișiere de la 10 la 16 nu sunt stocate nicăieri

clusterele de fișiere de la 17 la 18 sunt stocate în clustere de discuri începând de la 409

clusterele de fișiere de la 19 la 36 nu sunt stocate nicăieri


Se poate observa că fișierul comprimat are clustere „virtuale”, în care nu există informații reale. De îndată ce sistemul vede astfel de clustere virtuale, înțelege imediat că datele din blocul anterior, un multiplu de 16, trebuie decomprimate, iar datele rezultate vor umple doar clusterele virtuale - acesta este, de fapt, întregul algoritm. .

Siguranță

NTFS conține multe mijloace de delimitare a drepturilor obiectelor - se crede că acesta este cel mai avansat sistem de fișiere dintre toate existente în prezent. În teorie, acest lucru este fără îndoială adevărat, dar în implementările actuale, din păcate, sistemul de drepturi este destul de departe de ideal și, deși rigid, nu este întotdeauna un set logic de caracteristici. Drepturile atribuite oricărui obiect și respectate în mod clar de sistem evoluează - modificări majore și completări la drepturi au fost deja făcute de mai multe ori, iar prin Windows 2000 au ajuns în sfârșit la un set destul de rezonabil.

Drepturile sistemului de fișiere NTFS sunt indisolubil legate de sistemul în sine - adică, în general, nu trebuie să fie respectate de un alt sistem dacă i se acordă acces fizic la disc. Pentru a preveni accesul fizic, Windows 2000 (NT5) a introdus în continuare o caracteristică standard - vedeți mai jos pentru mai multe despre aceasta. Sistemul de drepturi în starea sa actuală este destul de complex și mă îndoiesc că pot spune cititorului general ceva interesant și util pentru el în viața de zi cu zi. Dacă sunteți interesat de acest subiect, veți găsi multe cărți despre arhitectura de rețea NT care descriu acest lucru mai detaliat.

În acest moment, descrierea structurii sistemului de fișiere poate fi finalizată; rămâne să descriem doar un anumit număr de lucruri pur și simplu practice sau originale.

Hard Link-uri

Acest lucru a fost în NTFS din timpuri imemoriale, dar a fost folosit foarte rar - și totuși: Hard Link este atunci când același fișier are două nume (mai multe indicatori de director de fișiere sau directoare diferite indică aceeași înregistrare MFT). Să presupunem că același fișier are numele 1.txt și 2.txt: dacă utilizatorul șterge fișierul 1, va rămâne fișierul 2. Dacă șterge 2, va rămâne fișierul 1, adică ambele nume, din momentul creării, sunt complet egali. Fișierul este șters fizic numai atunci când numele său de familie este șters.

Legături simbolice (NT5)

O caracteristică mult mai practică, care vă permite să creați directoare virtuale - exact la fel ca discurile virtuale folosind comanda subst în DOS. Aplicațiile sunt destul de variate: în primul rând, simplificarea sistemului de catalog. Dacă nu vă place directorul Documents and settingsAdministratorDocuments, îl puteți conecta la directorul rădăcină - sistemul va comunica în continuare cu directorul cu o cale sălbatică și veți avea un nume mult mai scurt, care este complet echivalent cu acesta. Pentru a crea astfel de conexiuni, puteți folosi programul de joncțiune (junction.zip, 15 KB), care a fost scris de celebrul specialist Mark Russinovich. Programul funcționează numai în NT5 (Windows 2000), la fel ca și caracteristica în sine.

Pentru a elimina o conexiune, puteți utiliza comanda standard rd.
ATENŢIE:Încercarea de a lega folosind Explorer sau alți manageri de fișiere care nu înțeleg natura virtuală a directorului (cum ar fi FAR) va duce la ștergerea datelor la care se face referire de către link! Atenție.

Criptare (NT5)

O caracteristică utilă pentru persoanele care sunt preocupate de secretele lor - fiecare fișier sau director poate fi, de asemenea, criptat, făcând imposibilă citirea acesteia de către o altă instalare NT. În combinație cu o parolă standard și practic indestructibilă pentru pornirea sistemului în sine, această caracteristică oferă suficientă securitate pentru majoritatea aplicațiilor pentru datele importante pe care le selectați.Partea 2. Caracteristici ale defragmentării NTFS

Să revenim la un punct destul de interesant și important - fragmentarea și defragmentarea NTFS. Cert este că situația cu aceste două concepte în acest moment nu poate fi în niciun fel numită satisfăcătoare. La început, s-a afirmat că NTFS nu este supus fragmentării fișierelor. Acest lucru s-a dovedit a nu fi în întregime adevărat și declarația a fost schimbată - NTFS previne fragmentarea. S-a dovedit că acest lucru nu este în întregime adevărat. Adică, desigur, interferează, dar beneficiul acestui lucru este aproape de zero... Acum este clar că NTFS este un sistem care, ca nimeni altul, este predispus la fragmentare, indiferent de ceea ce este declarat oficial. Singurul lucru este că, logic, ea nu suferă prea mult din cauza asta. Toate structurile interne sunt construite în așa fel încât fragmentarea să nu interfereze cu găsirea rapidă a datelor. Dar, desigur, nu te scutește de consecințele fizice ale fragmentării - mișcări inutile ale capetelor. Și prin urmare - înainte și cu un cântec.

Până la rădăcinile problemei

După cum știți, sistemul fragmentează cel mai mult fișierele atunci când nu există spațiu liber, când este necesar să folosiți mici găuri rămase din alte fișiere. Aici intervine prima proprietate a NTFS, care contribuie direct la o fragmentare serioasă.

Un disc NTFS este împărțit în două zone. La începutul discului există o zonă MFT - zona în care crește MFT, Master File Table. Zona ocupă cel puțin 12% din disc, iar datele nu pot fi scrise în această zonă. Acest lucru se face astfel încât cel puțin MFT să nu se fragmenteze. Dar când restul discului este umplut, zona se reduce exact la jumătate :). Și așa mai departe. Astfel, nu avem un capăt al discului, ci mai multe. Drept urmare, dacă NTFS funcționează cu un disc plin cu aproximativ 90%, fragmentarea crește ca o nebunie.

O consecință secundară este că un disc care este plin mai mult de 88% este aproape imposibil de defragmentat - chiar și API-ul de defragmentare nu poate muta datele în zona MFT. Se poate dovedi că nu vom avea nici un loc de manevră.

Mai departe. NTFS funcționează și funcționează și tot devine fragmentat - chiar dacă spațiul liber este departe de a fi epuizat. Acest lucru este facilitat de un algoritm ciudat pentru găsirea spațiului liber pentru înregistrarea fișierelor - a doua omisiune gravă. Algoritmul de acțiuni pentru orice înregistrare este următorul: un anumit volum al discului este preluat și umplut cu fișierul până când acesta se oprește. Mai mult, conform unui algoritm foarte interesant: mai întâi se umplu găurile mari, apoi cele mici. Acestea. O distribuție tipică a fragmentelor de fișiere în funcție de dimensiune pe NTFS fragmentat arată astfel (dimensiunile fragmentelor):

16 - 16 - 16 - 16 - 16 - [sare înapoi] - 15 - 15 - 15 - [spate] - 14 - 14 - 14 .... 1 - 1 - 1 -1 - 1...

Deci procesul se reduce la cele mai mici găuri dintr-un grup, în ciuda faptului că probabil există bucăți mult mai mari de spațiu liber pe disc.

Amintiți-vă fișierele comprimate - atunci când volume mari de informații comprimate sunt rescrise în mod activ pe NTFS, se formează un număr gigantic de „găuri” datorită redistribuirii volumelor comprimate pe disc - dacă orice secțiune a fișierului începe să se comprima mai bine sau mai rău, aceasta trebuie fie scos din lanțul continuu și plasat în alt loc, fie contractare în volum, lăsând în urmă o gaură.

Scopul acestei introduceri este de a explica simplul fapt că nu se poate spune că NTFS împiedică fragmentarea fișierelor. Dimpotrivă, ea le fragmentează fericită. Fragmentarea NTFS după jumătate de an de funcționare va aduce o surpriză sinceră oricărei persoane familiarizate cu activitatea sistemului de fișiere. Prin urmare, trebuie să rulați un defragmentator. Dar toate problemele noastre nu se termină aici, ci, din păcate, abia încep.

Mijloace de rezolvare?

NT are un API standard de defragmentare. Are o limitare interesantă pentru mutarea blocurilor de fișiere: cel puțin 16 clustere (!) pot fi mutate simultan, iar aceste clustere trebuie să înceapă dintr-o poziție care este un multiplu de 16 clustere din fișier. În general, operațiunea se desfășoară exclusiv pe 16 clustere. Consecințe:

  1. Nimic nu poate fi mutat într-o gaură de spațiu liber de mai puțin de 16 clustere (cu excepția fișierelor comprimate, dar acestea sunt subtilități neinteresante în acest moment).
  2. Un fișier, fiind mutat într-o altă locație, lasă în urmă (în noua locație) un „spațiu ocupat temporar”, extinzându-l în dimensiune la un multiplu de 16 clustere.
  3. Când încercați să mutați un fișier cumva incorect („nu un multiplu de 16”), rezultatul este adesea imprevizibil. Ceva este rotunjit, ceva pur și simplu nu se mișcă... Cu toate acestea, întreaga scenă este împrăștiată generos cu „spațiu ocupat temporar”.

„Spațiul ocupat temporar” servește pentru a facilita recuperarea sistemului în cazul unei defecțiuni hardware și este eliberat după ceva timp, de obicei aproximativ o jumătate de minut.

Cu toate acestea, ar fi logic să folosiți acest API deoarece există. Asta folosesc ei. Prin urmare, procesul standard de defragmentare, ajustat pentru limitările API, constă din următoarele faze (nu neapărat în această ordine):

  • Eliminarea fișierelor din zona MFT. Nu intenționat - pur și simplu nu este posibil să le puneți înapoi acolo :) O fază inofensivă și chiar utilă în anumite privințe.
  • Defragmentarea fișierelor. Desigur, acesta este un proces util, deși este oarecum complicat de restricțiile privind frecvența mișcărilor - fișierele trebuie deseori mutate mai mult decât ar fi logic să se facă în minte.
  • Defragmentarea MFT, a mașinii virtuale (pagefile.sys) și a directoarelor. Posibil prin API numai în Windows 2000, altfel - în timpul repornirii, ca proces separat, ca în vechiul Diskeeper.
  • Stivuirea fișierelor mai aproape de început este așa-numita defragmentare a spațiului liber. Acesta este un proces cu adevărat înfricoșător.

Să presupunem că vrem să punem fișiere într-un rând la începutul discului. Punem un singur dosar. Lasa coada ocuparii complementului pana la un multiplu de 16. Pe urmatorul o punem - dupa coada, bineinteles. După ceva timp, când coada este eliberată, avem o gaură.Astfel, există două opțiuni aproximativ echivalente. Primul este să optimizați frecvent discul cu un astfel de defragmentator, în timp ce suportați fragmentarea sălbatică a fișierelor nou create. A doua opțiune este să nu atingeți absolut nimic și să acceptați fragmentarea uniformă, dar mult mai slabă a tuturor fișierelor de pe disc.

Până acum există un singur defragmentator care ignoră API-ul de defragmentare și funcționează cumva mai direct - Norton Speeddisk 5.0 pentru NT. Când încearcă să-l compare cu toate celelalte - Diskeeper, O&O defrag etc. - nu menționează această diferență principală, cea mai fundamentală. Pur și simplu pentru că această problemă este ascunsă cu grijă, cel puțin nu este reclamă la fiecare pas. Speeddisk este singurul program de astăzi care poate optimiza complet un disc fără a crea mici fragmente neumplute de spațiu liber. De asemenea, merită adăugat că folosind API-ul standard este imposibil să defragmentați volume NTFS cu un cluster mai mare de 4 KB, dar SpeedDisk poate face acest lucru.

Din păcate, Windows 2000 a inclus un defragmentator care funcționează printr-un API și, în consecință, creează găuri.Ca o concluzie din toate acestea: toate celelalte defragmentare sunt pur și simplu dăunătoare atunci când sunt folosite o singură dată. Dacă l-ați rulat cel puțin o dată, trebuie să îl rulați cel puțin o dată pe lună pentru a scăpa de fragmentarea fișierelor nou sosite. Aceasta este esența principală a complexității defragmentării NTFS folosind mijloace istorice Partea 3. Ce să alegi?

Oricare dintre sistemele de fișiere prezentate în prezent își are rădăcinile în trecutul profund - din anii 80. Da, NTFS, oricât de ciudat ar părea, este un sistem foarte vechi! Cert este că pentru o lungă perioadă de timp computerele personale au folosit doar sistemul de operare DOS, căruia FAT își datorează aspectul. Dar, în paralel, au fost dezvoltate și au existat în liniște sisteme orientate spre viitor. Două astfel de sisteme care au primit o recunoaștere largă sunt NTFS, creat pentru sistemul de operare Windows NT 3.1 din vremuri străvechi și HPFS, un partener fidel al OS/2.

Implementarea noilor sisteme a fost dificilă - în 1995, odată cu lansarea Windows95, nimeni nu se gândea că trebuie schimbat ceva - FAT a primit un al doilea vânt prin patch-ul „nume lungi” blocat deasupra, a cărui implementare nu a fost implementat acolo aproape de ceea ce este posibil în mod ideal fără a schimba sistemul, dar totuși destul de stupid. Dar în anii următori, nevoia de schimbare a devenit mai urgentă, pe măsură ce limitările naturale ale FAT au început să se facă simțite. FAT32, care a apărut în Windows 95 OSR2, a mutat pur și simplu granițele - fără a schimba esența sistemului, care pur și simplu nu oferă capacitatea de a organiza munca eficientă cu o cantitate mare de date.

HPFS (High Performance File System), folosit în continuare activ de utilizatorii OS/2, s-a dovedit a fi un sistem destul de reușit, dar avea și dezavantaje semnificative - lipsa completă a instrumentelor de recuperare automată, complexitatea excesivă a organizării datelor și flexibilitatea scăzută.

NTFS nu a putut cuceri computerele personale pentru o lungă perioadă de timp din cauza faptului că au fost necesare cantități semnificative de memorie pentru a organiza munca eficientă cu structurile sale de date. Sistemele cu 4 sau 8 MB (standardul 95-96) pur și simplu nu au putut obține niciun beneficiu de la NTFS, așa că a câștigat o reputație nefericită ca sistem lent și greoi. De fapt, acest lucru nu este adevărat - sistemele de computer moderne cu mai mult de 64 MB de memorie obțin pur și simplu o creștere uriașă a performanței utilizând NTFS.

Acest tabel reunește toate avantajele și dezavantajele semnificative ale sistemelor comune astăzi, cum ar fi FAT32, FAT și NTFS. Nu este deloc rezonabil să discutăm despre alte sisteme, deoarece în prezent 97% dintre utilizatori aleg între Windows98, Windows NT4.0 și Windows 2000 (NT5.0) și pur și simplu nu există alte opțiuni.

Sisteme care o suportăDOS, Windows9X, NT toate versiunileWindows98, NT5NT4, NT5
Dimensiunea maximă a volumului2 GBpractic nelimitatpractic nelimitat
Max. numărul de fișiere pe volumaproximativ 65 miipractic nelimitatpractic nelimitat
Nume de fișiercu suport pentru nume lungi - 255 de caractere, set de caractere de sistem255 de caractere, orice caractere din orice alfabet (65 de mii de stiluri diferite)
Atribute posibile ale fișieruluiSet de bazăSet de bazătot ceea ce vine în minte producătorilor de software
SiguranțăNuNuda (începând de la NT5.0, capacitatea de a cripta fizic datele este încorporată)
ComprimareNuNuda
Reziliența la eșecmedie (sistemul este prea simplu și, prin urmare, nu există nimic special de spart :))slab (instrumentele de optimizare a vitezei au dus la apariția unor deficiențe de fiabilitate)complet - recuperare automată a sistemului în cazul oricăror defecțiuni (fără a lua în calcul erorile de înregistrare fizică, când se scrie un lucru, dar de fapt se scrie altul)
Economicminim (dimensiuni uriașe ale clusterelor pe discuri mari)îmbunătățit prin reducerea dimensiunilor clusterelormaxim. Sistem de stocare foarte eficient si versatil
Performanţăridicat pentru un număr mic de fișiere, dar scade rapid pe măsură ce mai multe fișiere sunt adăugate în directoare. rezultat - pentru discuri ușor umplute - maxim, pentru discuri pline - slabcomplet similar cu FAT, dar pe discuri mari (zeci de gigaocteți) probleme serioase încep cu organizarea generală a datelorsistemul nu este foarte eficient pentru partiții mici și simple (până la 1 GB), dar lucrul cu cantități uriașe de date și directoare impresionante este organizat cât se poate de eficient și este mult mai rapid decât alte sisteme

Aș dori să spun că, dacă sistemul dvs. de operare este NT (Windows 2000), atunci folosirea oricărui sistem de fișiere, altul decât NTFS, înseamnă limitarea semnificativă a confortului și flexibilității sistemului de operare în sine. NT, și în special Windows 2000, sunt ca două părți ale unui singur întreg cu NTFS - multe caracteristici utile ale NT sunt direct legate de structura fizică și logică a sistemului de fișiere, iar utilizarea FAT sau FAT32 acolo are sens numai pentru compatibilitate - dacă aveți sarcina de a citi aceste discuri de pe orice alte sisteme.

Aș dori să-mi exprim sincera mulțumire Andrei Shabalin, fără de care acest articol pur și simplu nu ar fi fost scris și chiar dacă ar fi fost scris, ar fi conținut multe inexactități enervante

Informații generale despre sistemele de fișiere

Windows 2000 acceptă următoarele sisteme de fișiere: FAT, FAT32 și NTFS. Această secțiune oferă o scurtă prezentare generală a acestor sisteme de fișiere. Alegerea sistemului de fișiere este influențată de următorii factori:

Scopul pentru care computerul este destinat a fi utilizat.

Platformă hardware.

Numărul de hard disk-uri și capacitatea acestora.

Cerințe de securitate.

Aplicații utilizate în sistem

Windows 2000 suportă sistem de fișiere distribuit(Sistem de fișiere distribuite, DFS) și sistem de fișiere de criptare(Sistem de fișiere de criptare, EFS). Deși DFS și EPS sunt numite „sisteme de fișiere”, ele nu sunt sisteme de fișiere în sensul strict al termenului. Astfel, DFS este o extensie a unui serviciu de rețea care vă permite să combinați resursele rețelei situate în partiții cu sisteme de fișiere diferite într-un singur volum logic. În ceea ce privește EPS, este un add-on la NTFS care adaugă capabilități de criptare a datelor la NTFS.

Sisteme de fișiere FAT și FAT32

FAT (denumit cel mai adesea în acest capitol FAT 16) este un sistem de fișiere simplu conceput pentru unități mici și structuri de directoare simple. Numele său provine de la numele metodei utilizate pentru organizarea fișierelor - Tabelul de alocare a fișierelor (FAT). Acest tabel este situat la începutul volumului. Pentru a proteja volumul, două copii ale FAT sunt stocate pe volum. Dacă prima copie a FAT este deteriorată

utilitarele de disc (cum ar fi Scandisk) pot folosi a doua copie pentru a restabili volumul. Tabelul de alocare a fișierelor și directorul rădăcină trebuie să fie localizate la adrese strict fixe, astfel încât fișierele necesare pornirii sistemului să fie localizate corect.

În ceea ce privește construcția sa, FAT este similar cu cuprinsul unei cărți, deoarece sistemul de operare îl folosește pentru a căuta un fișier și a determina clusterele pe care acest fișier le ocupă pe hard disk. Microsoft a dezvoltat inițial FAT pentru a gestiona fișierele de pe dischete și abia apoi l-a adoptat ca standard pentru gestionarea discurilor în MS-DOS. La început, a fost folosită o versiune de FAT pe 12 biți (numită FAT12) pentru dischete și hard disk-uri mici (mai puțin de 16 MB). În MS-DOS v. 3.0 a introdus o versiune de PAT pe 16 biți pentru unități mai mari. Până în prezent, FAT 12 este folosit pe medii foarte mici (sau pe discuri foarte vechi). De exemplu, toate dischetele de 3,5 inchi de 1,44 MB sunt formatate ca FAT16, iar toate dischetele de 5,25 inchi sunt formatate ca FAT12.

Un volum formatat sub FAT12 și FAT16 este marcat conform clustere. Dimensiunea implicită a clusterului este determinată de dimensiunea volumului (mai multe informații despre dimensiunile clusterului sunt furnizate mai târziu în acest capitol). Tabelul cu locația fișierelor și backup-ul acestuia conțin următoarele informații despre fiecare cluster de volume:

Nefolosit (clusterul nu este utilizat).

Cluster utilizat de un fișier (clusterul este utilizat de un fișier).

Cluster rău (cluster rău).

Ultimul cluster dintr-un fișier.

Dosarul rădăcină conține intrări pentru fiecare fișier și fiecare folder situat în folderul rădăcină. Singura diferență dintre folderul rădăcină și celelalte este că ocupă un spațiu clar definit pe disc și are o dimensiune fixă ​​(nu mai mult de 512 intrări pentru un hard disk; pentru dischete, această dimensiune este determinată de capacitatea lor).

Nume (în format 8.3).

Octet de atribut (8 biți de informații utile, care sunt descrise în detaliu mai jos).

Timp de creare (24 de biți).

Data creării (16 biți).

Data ultimului acces (16 biți).

Ora ultimei modificări (16 biți).

Data ultimei modificări (16 biți).

Numărul clusterului de pornire al fișierului în tabelul de locații ale fișierului (16 biți).

Dimensiunea fișierului (32 de biți).

Structura folderului FAT nu are o organizare clară, iar fișierelor li se atribuie primele adrese de cluster disponibile pe volum. Numărul clusterului de pornire al fișierului este adresa primului cluster ocupat de fișier în tabelul de locații ale fișierului. Fiecare cluster conține un pointer către următorul cluster utilizat de fișier sau un indicator (OxFFFF) care indică faptul că clusterul dat este ultimul cluster al fișierului.

Informațiile folderului sunt utilizate de sistemele de operare care acceptă sistemul de fișiere FAT. În plus, Windows 2000 poate înregistra foldere informații temporare suplimentare(stampile de timp). Aceste atribute temporare suplimentare indică când a fost creat fișierul și când a fost accesat ultima dată. În primul rând, atributele suplimentare sunt utilizate de aplicațiile POSIX.

Fișierele de pe discuri au 4 atribute care pot fi resetate și setate de utilizator - Arhivă, Sistem, Ascuns și Numai citire.

În Windows NT, începând cu versiunea 3.5, fișierele create sau redenumite pe volume FAT folosesc biți de atribut pentru a suporta nume lungi de fișiere într-un mod care nu intră în conflict cu metodele de acces la volum utilizate de sistemele de operare MS-DOS și OS/2. Pentru un fișier cu nume lung, Windows NT/2000 generează un nume scurt în format 8.3. În plus față de acest element standard, Windows NT/2000 creează una sau mai multe intrări suplimentare pentru fișier, una pentru fiecare 13 caractere ale numelui lung. Fiecare dintre aceste intrări suplimentare conține partea corespunzătoare a numelui lung de fișier în format Unicode. Windows NT/2000 setează intrări suplimentare pentru atributele de volum, precum și un fișier de sistem ascuns doar pentru citire, astfel încât

marcați-le ca parte a unui nume lung de fișier, MS-DOS și OS/2 de obicei ignoră intrările de folder care au toate aceste atribute setate, astfel încât astfel de intrări sunt invizibile pentru ei. În schimb, MS-DOS și OS/2 accesează fișierul folosind numele scurt de fișier în format standard 8.3.

Windows NT, începând cu versiunea 3.5, acceptă nume lungi de fișiere pe volume FAT. Această opțiune implicită poate fi dezactivată setând valoarea de registry Win31FileSystem, care face parte din următoarea cheie de registry, la 1:

HKEY_LOCAL_MACH ÎN E\System\CiirrentControlSet\Control\FileSystem

Setarea acestei valori va împiedica Windows NT să creeze fișiere cu nume lungi pe volume FAT, dar nu va afecta numele lungi care au fost deja create.

În Windows NT/2000, FAT16 funcționează exact la fel ca în MS-DOS, Windows 3.1x și Windows 95/98. Suportul pentru acest sistem de fișiere a fost inclus în Windows 2000 deoarece este compatibil cu majoritatea sistemelor de operare de la alți furnizori de software. În plus, utilizarea FAT16 oferă posibilitatea de a actualiza versiunile anterioare ale sistemelor de operare Windows la Windows 2000.

Sistemul de fișiere FAT32 pe 32 de biți a fost introdus odată cu lansarea Windows 95 OSR2 și este acceptat în Windows 98 și Windows 2000. Oferă acces optim la hard disk-uri, CD-ROM-uri și resurse de rețea, îmbunătățind viteza și performanța tuturor operațiuni /O. FAT32 este o versiune îmbunătățită a FAT concepută pentru utilizare pe volume mai mari de 2 GB.

Un volum formatat pentru a utiliza FAT32, ca un volum FAT16, este partiționat în clustere. Dimensiunea implicită a clusterului este determinată de dimensiunea volumului. În tabel Figura 7.1 prezintă o comparație a dimensiunilor clusterului pentru FAT16 și FAT32, în funcție de dimensiunea discului.

Pentru a asigura compatibilitatea maximă cu aplicațiile, rețelele și driverele de dispozitiv existente, FAT32 a fost implementat cu un minim de modificări posibile ale arhitecturii și structurilor interne de date. Toate utilitarele de disc Microsoft (Format, FDISK, Defrag și ScanDisk) au fost reproiectate pentru a suporta FAT32. În plus, Microsoft depune multă muncă pentru a sprijini companiile de top de drivere de dispozitiv și utilitare de disc pentru a sprijini FAT32 în produsele lor. În tabel 7.2 se încearcă compararea caracteristicilor FAT16 și FAT32.

Sistem de fișiere NTFS

Sistemul de fișiere Windows NT (NTFS) oferă o combinație de performanță, fiabilitate și eficiență care nu este posibilă cu niciuna dintre implementările FAT (atât FAT16, cât și FAT32). Principalele obiective de proiectare ale NTFS au fost să ofere performanță de mare viteză a operațiunilor standard de fișiere (inclusiv citirea, scrierea, căutarea) și să ofere capabilități suplimentare, inclusiv repararea unui sistem de fișiere deteriorat pe discuri extrem de mari.

NTFS are caracteristici de securitate care acceptă controlul accesului la date și privilegiile proprietarului, care joacă un rol vital în asigurarea integrității datelor confidențiale vitale. Dosarele și fișierele NTFS pot avea drepturi de acces atribuite, indiferent dacă sunt partajate sau nu. NTFS este singurul sistem de fișiere din Windows NT/2000 care vă permite să atribuiți drepturi de acces fișierelor individuale. Cu toate acestea, dacă un fișier este copiat dintr-o partiție sau volum NTFS pe o partiție sau volum FAT, toate permisiunile și alte atribute unice inerente NTFS se vor pierde.

Sistemul de fișiere NTFS, ca și FAT, utilizează clustere ca unitate fundamentală de spațiu pe disc. În NTFS, dimensiunea implicită a clusterului (când nu este setată nici de comanda format, nici în managementul discurilor) depinde de dimensiunea volumului. Dacă utilizați utilitarul de linie de comandă FORMAT pentru a formata un volum NTFS, puteți specifica dimensiunea dorită a clusterului ca parametru pentru această comandă. Dimensiunile implicite ale clusterelor sunt prezentate în tabel. 7.3.

Formatarea unui volum pentru NTFS are ca rezultat crearea mai multor fișiere de sistemȘi tabelul fișierului principal(Master File Table, MFT). MFT conține informații despre toate fișierele și folderele prezente pe un volum NTFS. NTFS este un sistem de fișiere orientat pe obiecte care tratează toate fișierele ca obiecte cu atribute. Aproape toate obiectele care există pe un volum sunt fișiere și tot ceea ce este într-un fișier sunt atribute - inclusiv atribute de date, atribute de securitate și atribute de nume de fișier. Fiecare sector ocupat dintr-un volum NTFS aparține unui fișier. O parte a fișierului este chiar și metadatele sistemului de fișiere (informații care sunt o descriere a sistemului de fișiere însuși).

În Windows 2000, a fost introdusă o nouă versiune de NTFS - NTFS 5.0. Noile structuri de date incluse în această implementare vă permit să profitați de noile caracteristici ale Windows 2000, cum ar fi cotele de disc per utilizator, criptarea fișierelor, urmărirea linkurilor, puncte de tranziție(puncte de joncțiune), seturi de proprietăți încorporate(nativ

seturi de proprietăți). În plus, puteți adăuga spațiu suplimentar pe disc la volumele NTFS 5.0 fără a reporni. Noile caracteristici ale NTFS 5.0 sunt prezentate în tabel. 7.4.

NTFS este cea mai bună alegere pentru a lucra cu volume mari. Trebuie luat în considerare faptul că, dacă sunt impuse cerințe sporite asupra sistemului (care includ securitatea și utilizarea unui algoritm de compresie eficient), atunci unele dintre ele pot fi implementate doar folosind NTFS. Prin urmare, în unele cazuri este necesar să utilizați NTFS chiar și pe volume mici.

Limitări ale sistemului de fișiere și probleme de compatibilitate

Tabelele de mai jos (Tabelele 7.5 și 7.6) rezumă compatibilitatea sistemelor de fișiere NTFS și FAT, precum și restricțiile impuse fiecăruia dintre aceste sisteme de fișiere.

Masa

Sistemul de fișiere. Discuri

Un computer are de obicei mai multe discuri. Fiecărui disc i se atribuie un nume, care este specificat printr-o literă latină cu două puncte, de exemplu, A:, B:, C: etc. Este acceptat în mod standard că A: și B: sunt unități de dischetă și unități C:, D: etc. – hard disk-uri, unități optice sau discuri electronice.

Discurile electronice fac parte din RAM, care pentru utilizator arată ca VRAM. Viteza schimbului de informații cu un disc electronic este mult mai mare decât cu un dispozitiv de stocare extern electromecanic. Când discurile electronice funcționează, piesele electromecanice nu sunt uzate. Cu toate acestea, după oprirea alimentării, informațiile de pe discul electronic nu sunt salvate.

Discurile magnetice existente fizic pot fi împărțite în mai multe discuri logice, care pentru utilizator vor apărea pe ecran în același mod ca și discurile fizice. Unitate logică face parte dintr-un hard disk obișnuit care are propriul nume.

Se apelează discul pe care este înregistrat sistemul de operare sistemică(sau boot) disc. Hard disk C: este cel mai adesea folosit ca disc de pornire. Când se tratează viruși sau defecțiuni ale sistemului, sistemul de operare este adesea încărcat de pe o dischetă. Sunt disponibile discuri optice care pot fi, de asemenea, bootabile.

Pentru ca informațiile să fie scrise pe un nou disc magnetic, acestea trebuie formatate în prealabil. Formatare- Aceasta este pregătirea unui disc pentru înregistrarea informațiilor.

În timpul formatării, informațiile de service sunt scrise pe disc (se face marcarea), care este apoi folosită pentru a scrie și a citi informații, pentru a corecta viteza de rotație a discului și, de asemenea, pentru a aloca o zonă de sistem, care constă din trei părți:

sectorul de boot,

tabele de alocare a fișierelor,

directorul rădăcină.

Sectorul de boot(Boot Record) se află pe fiecare disc în sectorul logic numărul 0. Conține date despre formatul discului, precum și un scurt program utilizat în procedura de pornire a sistemului de operare.

Există o zonă pe hard disk numită MBR (Master Boot Record) sau sectorul principal de boot. MBR specifică de pe ce unitate logică trebuie să pornească sistemul de operare.

Tabelul de alocare a fișierelor(File Allocation Table - abreviat FAT) se află după sectorul de pornire și conține o descriere a ordinii de locație a tuturor fișierelor din sectoarele unui anumit disc, precum și informații despre zonele defecte ale discului. Tabelul FAT este urmat de o copie exactă a acestuia, ceea ce crește fiabilitatea stocării acestui tabel foarte important.

Directorul rădăcină(Root Directory) este întotdeauna în spatele copiei FAT. Directorul rădăcină conține o listă de fișiere și directoare situate pe disc. Direct în spatele directorului rădăcină se află datele.

Sistemul de fișiere este o parte a sistemului de operare care asigură organizarea și stocarea fișierelor, precum și efectuarea de operațiuni asupra fișierelor.

Fişier

Deoarece datele de adresă au și o dimensiune și trebuie, de asemenea, stocate, stocarea datelor în unități mici, cum ar fi octeții, este incomod. De asemenea, sunt incomod de stocat în unități mai mari (kiloocteți, megaocteți etc.), deoarece umplerea incompletă a unei unități de stocare duce la ineficiența stocării.

Stocarea și preluarea informațiilor pe dispozitivele de stocare externe este importantă. Dispozitivele de stocare externe sunt un fel de depozite de informații, unde programele și datele sunt stocate mult timp până când sunt necesare pentru a rezolva o problemă. Acum imaginați-vă că mărfurile sunt depozitate într-un depozit fără niciun sistem. Cu cât depozitul este mai mare, cu atât este mai dificil să găsești produsul potrivit. Sau să luăm, de exemplu, un dulap în care sunt depozitate diverse documente, cărți, rapoarte, certificate etc. În lipsa unei organizații specifice de depozitare, găsirea documentelor necesare, mai ales dacă numărul acestora este semnificativ, poate fi o sarcină foarte dificilă și consumatoare de timp.

Unitatea de stocare a datelor este un obiect de lungime variabilă numit fișier.

Fişier este o colecție numită de date care are o anumită organizare internă și ocupă o anumită zonă a purtătorului de informații.

De obicei, datele aparținând aceluiași tip sunt stocate într-un fișier separat. În acest caz, tipul de date determină tip fișier.

Deoarece nu există o limită de dimensiune în definiția unui fișier, vă puteți imagina un fișier având 0 octeți (un fișier gol) și un fișier având orice număr de octeți.

Numele fișierului trebuie să fie unic - fără aceasta este imposibil să se garanteze accesul fără ambiguitate la date. În tehnologia informatică, cerința unicității numelui este asigurată automat - nici utilizatorul, nici automatizarea nu pot crea un fișier cu un nume identic cu unul existent.

Fișierul poate conține: un program în coduri de mașină, text de program într-un limbaj algoritmic, text de document, un raport, o fișă de salariu, un articol, date numerice, o înregistrare a vorbirii umane sau o melodie muzicală, un desen, o ilustrație, un desen, o fotografie, un film video etc.

Fișierul este creat la indicația utilizatorului sau automat, folosind diverse sisteme software, precum sisteme de operare, shell-uri, instrumente de programare etc. Fișierului creat i se atribuie un anumit nume, i se alocă spațiu pe stocarea pe disc și este înregistrat în sistemul de operare într-un anumit mod. Fișierul nou creat poate fi completat cu unele informații.

Fiecare fișier are un număr de proprietăți caracteristice - atribute. Cele mai importante atribute ale fișierului sunt:

Nume,

extensie,

ora și data creării.

Nume de fișier, la fel ca numele unei persoane, numele unui document, o carte, servește pentru a putea distinge un fișier de altul, pentru a indica fișierul dorit. În diferite sisteme de operare, numele fișierelor sunt formate după reguli diferite. De exemplu, în sistemul de operare MS DOS, numele fișierului este



succesiune de litere ale alfabetului latin,

unele caractere speciale (~, _, -, $, &, @, %,",!,(>)> (>). #).

Numele poate conține de la unu la opt (1 ... 8) caractere și este selectat în mod arbitrar. Este recomandabil să selectați numele fișierelor, astfel încât utilizatorul să își poată aminti cu ușurință ce este exact stocat în acest fișier. De exemplu, un fișier care conține un raport pentru al 4-lea trimestru poate fi numit otchet4, un fișier cu o fișă de salariu poate fi numit vedzarpl, iar un fișier cu un fel de desen poate fi numit imagine.

În sistemul de operare MS DOS, numele fișierului nu poate conține

spatii,

litere ale alfabetului rus,

În plus, nu poate conține mai mult de opt caractere. În general, acestea sunt restricții destul de semnificative. De exemplu, un fișier care conține raportul unei companii pentru al 4-lea trimestru, pe care l-am numit otchet4, ar fi de preferință numit „Raport pentru al 4-lea trimestru”, în cazuri extreme „Otchet za 4 kvartal”, folosind așa-numita transliterație , când cuvintele unei limbi sunt scrise cu litere ale alteia. În sistemele de operare Unix și Windows 9.x, restricțiile privind lungimea numelui și utilizarea spațiilor și punctelor din nume au fost eliminate. Și în sistemul de operare Windows 9.x, în plus, puteți folosi litere rusești în nume. Astfel, un fișier în Unix poate fi numit „Raport za 4 kvartal”, iar în Windows 9.x este permis și numele „Raport pentru al 4-lea trimestru”.

Pe lângă nume, fiecare fișier poate avea sau nu extensie. Extensia este folosită pentru a caracteriza conținutul fișierului într-un anumit mod. De exemplu, extensiile doc și txt indică faptul că fișierul conține un fel de document sau text, în timp ce extensia bmp indică un fișier care conține o imagine în format bitmap. Extensia, dacă există, este separată de numele fișierului printr-un punct. În sistemul de operare MS DOS, extensia poate conține de la unul la trei caractere, de exemplu, otchet4.doc, vedzarpl.txt, picture.bmp, iar în sistemele Unix și Windows 9.x sunt permise mai mult de trei caractere. Dacă nu există o extensie, atunci nu există niciun punct în numele fișierului.

Dacă un fișier este creat folosind orice sistem software, atunci, de regulă, primește automat o extensie standard pentru acest sistem, iar utilizatorul trebuie doar să selecteze sau să specifice numele. Ulterior, sistemul software recunoaște fișierele „sau” folosind extensii standard. Sistemele de operare oferă o serie de extensii standard (Tabelul 3.1).

Tabelul 3.1

Unele extensii MS DOS și Windows 9.x

Fișierele cu extensia .com (comun) și .exe (execute) conțin programe în limbajul mașinii. Aceste fișiere sunt adesea numite fișiere de program. Diferențele dintre fișierele com și fișierele exe se referă la organizarea lor internă. Aceste diferențe nu afectează în niciun fel modul în care fișierele sunt tratate. Fișierele cu extensia .bat (lot) conțin secvențe arbitrare de comenzi ale sistemului de operare. Astfel de fișiere sunt de obicei numite fișiere batch. Termen « fișier executabil” combină conceptele de „fișier program” și „fișier batch”. Cu alte cuvinte, un „fișier executabil” înseamnă că fișierul conține fie un program în limbajul mașinii care poate fi executat direct de procesorul computerului (fișiere cu extensiile .exe și .com), fie o secvență de comenzi ale sistemului de operare (.bat). fișier) care sunt și ele executate, dar numai prin accesarea programelor și instrumentelor sistemului de operare corespunzătoare.

Un atribut important al unui fișier este acesta lungime. Lungimea fișierului este egală cu cantitatea de spațiu pe care fișierul o ocupă pe disc sau bandă și, prin urmare, este măsurată în octeți. Valoarea acestui atribut este utilizată pentru a determina dacă un fișier poate fi plasat pe o zonă liberă a suportului de disc și în alte scopuri.

Când un fișier este scris inițial pe disc, precum și atunci când se fac modificări la fișier utilizând ceasul sistemului (un program special inclus în sistemul de operare), ora și data scrierii fișierului pe dispozitivul de disc sunt înregistrate automat. Atributele de dată și oră sunt utilizate pentru a identifica cele mai recente versiuni ale unui fișier.

Pe lângă atributele principale ale fișierelor considerate în sistemul de operare MS DOS, fișierele au încă patru atribute - numai citire, sistem, ascuns și arhivă. Fiecare dintre aceste atribute are exact două stări - atributul este pornit sau atributul este dezactivat.

Activarea atributului de numai citire înseamnă că fișierul nu poate fi modificat în niciun fel. În plus, distrugerea unui astfel de fișier este complicată. Atributul de sistem este de obicei activat numai pentru fișierele principale ale sistemului de operare. Atributul ascuns este activat pentru acele fișiere care, la vizualizarea listei de fișiere aflate pe un dispozitiv de disc, nu sunt incluse în această listă de către comanda sistemului de operare.

Sistemele de operare oferă o modalitate de a ușura acțiunile colective cu fișiere. Acțiunea care trebuie efectuată pe un grup de fișiere este specificată o singură dată, dar odată cu acțiunea, nu este specificat numele complet al unui singur fișier, ci un nume special care permite sistemului de operare să recunoască toate fișierele din fișier. grup și apoi efectuați acțiunea dorită asupra lor. Acest nume se numește un wildcard, un model sau o mască. Numele grupului de fișiere este format folosind caracterele „*” și „?”.

Caracterul * găsit într-un nume de grup este interpretat de sistemul de operare ca „orice secvență de caractere de nume”. Astfel, numele de grup a* corespunde oricăror nume care încep cu litera „a”: a1, azbuka, a2z4.

Simbol? este perceput de sistemul de operare ca orice caracter unic, adică corespunde exact unui caracter de nume arbitrar. De exemplu, modelul otchet?.doc corespunde oricăror nume cu extensia .doc, în numele căruia segmentul de nume otchet este urmat de exact un caracter, de exemplu, otchet1.doc, otchet4.doc, otchet%.doc, otchet#.doc etc.

Încă câteva exemple:

Txt – fișiere cu orice nume din două litere și extensia .txt;

*.bak – fișiere cu orice nume și extensie .bak;

prog1.* – fișiere cu numele progl și orice extensie;

*.* – fișiere cu orice nume și orice extensie.

Cataloagele

Pentru a citi conținutul unui fișier, trebuie să cunoașteți locația acestuia pe dispozitivul de disc. Fiecare fișier ocupă un anumit grup de sectoare de pe disc. Prin urmare, locația fișierului poate fi specificată prin specificarea numărului de sectoare și piste ocupate de fișier. Cu toate acestea, această metodă de specificare a locației fișierului este foarte incomod, deoarece în acest caz utilizatorul trebuie să cunoască numerele tuturor sectoarelor de disc care sunt alocate fișierului. Pentru a crește eficiența schimbului de date, mai multe sectoare consecutive sunt combinate în cluster, iar schimbul este efectuat imediat de întregul grup de sectoare (vezi Fig. 2.7). Această schemă de organizare a schimbului crește semnificativ viteza operațiunilor de schimb de date cu hard disk-uri. Pentru a nu specifica trei numere separate (numărul suprafeței de lucru, numărul pistei și numărul sectorului) ca adresă a sectorului de la care începe clusterul, a fost introdusă o singură numerotare continuă pentru toate clusterele de discuri. Pentru a determina clusterul în care începe fișierul, este suficient să specificați un singur număr - numărul de serie al clusterului de pe disc.

Catalog se numește tabel de sistem de fișiere pe disc care conține o listă a tuturor fișierelor scrise pe acest disc. Pentru fiecare fișier, acest tabel indică valorile tuturor atributelor sale, precum și numărul primului cluster alocat fișierului.

Din punct de vedere al scopului său, un catalog poate fi comparat cu un cuprins dintr-o carte, în care este indicat numărul paginii de început pentru fiecare capitol, sau cu un inventar de documente depozitate într-un arhivă. La fel ca într-o carte, pentru a determina poziția unui anumit capitol, puteți determina după titlul capitolului din conținutul cărții pe ce pagină începe, astfel încât sistemul de operare, după numele fișierului, găsește în directorul cluster-ul în care începe.

Analogia dintre catalog și cuprinsul unei cărți este doar parțială datorită faptului că clusterele sunt alocate unui fișier de pe disc nu ca o matrice continuă, ci împrăștiate, în timp ce într-o carte sunt plasate toate paginile unui capitol. consecutiv. Imaginați-vă că un capitol dintr-o carte ocupă paginile 5, 15, 16, 17, 31, 123, 124 în loc să ocupe paginile 5, 6, 7, 8, 9, 10, 11 la rând. Această alocare necontinuă a clusterelor la fișiere este organizată pentru a optimiza utilizarea spațiului liber pe disc în timpul numeroaselor distrugeri și scrieri de fișiere.

Pentru a ști în continuare ce clustere și în ce ordine sunt alocate pentru stocarea unui fișier, sistemul de fișiere oferă un tabel de alocare a fișierelor (FAT). Directorul conține doar numărul de grup de început al fișierului. Și tabelul FAT conține numerele tuturor celorlalte grupuri ocupate de fișier. În marea majoritate a cazurilor, utilizatorul nu trebuie să lucreze cu tabelul FAT, deoarece acesta este completat când fișierul este scris și analizat automat când este citit.

Pentru clustere, există o adresare liniară: toate clusterele sunt numerotate de la 1 la 2n (aici n este capacitatea de biți FAT). Pentru un FAT pe 16 biți, numărul de clustere de pe disc este 216 = 65536. Nu este dificil de calculat că pentru discuri de 1 GB, un cluster este de 32 KB.

Dimensiunea hard disk-urilor moderne depășește de obicei 1 GB. Când scrieți informații pe astfel de discuri, o parte semnificativă a spațiului pe disc poate fi irosită, deoarece, de exemplu, în cazul FAT pe 16 biți, fișierele de 31 KB și mai puțin de 1 KB fiecare ocupă aceeași cantitate de spațiu pe disc - 32 KB. Spațiul nefolosit al unui cluster se numește „proploie cluster”. Cu cât este mai mare numărul de fișiere mici scrise pe disc, cu atât este mai mare pierderea pe marginile clusterului.

Cea mai naturală modalitate de a crește eficiența utilizării clusterelor este reducerea dimensiunii acestora. În prezent sistemul de fișiere este FAT32, care utilizează 232 de clustere.

Structura simplă de directoare discutată mai sus, în care toate fișierele formează o singură listă comună, poate asigura funcționarea satisfăcătoare a sistemului de operare doar în cazul discurilor de dimensiuni mici și limitează numărul total de fișiere care pot fi scrise pe disc. Astfel, pe o dischetă de 1,44 MB, directorul rădăcină poate conține informații despre cel mult 224 de fișiere. Și atunci când spațiul pe disc devine suficient de mare și, prin urmare, sute sau mii de fișiere pot fi scrise pe disc, o structură simplă de directoare duce la o încetinire semnificativă a procesului de căutare a unui fișier pe disc sau directorul devine plin.

Directorul din sistemele de operare are o structură mai complexă. Grupuri arbitrare de fișiere directoare pot fi combinate și formate subdirectoare.Pe unele sisteme de operare sunt numite subdirectoare foldere. De fapt, subdirectoarele, ca și directorul rădăcină, sunt tabele situate pe disc și care conțin informații despre fișierele alocate subdirectorului. Spre deosebire de directorul rădăcină, poziția subdirectoarelor de pe disc nu este legată de zona de sistem. Prin urmare, dimensiunile subdirectoarelor pot fi destul de arbitrare, ceea ce face posibilă eliminarea restricției privind numărul de fișiere specificat într-un subdirector.

Subdirectoarele sunt create de utilizatori la propria discreție. Fiecare subdirector are propriul nume (de obicei fără extensie), care este selectat conform acelorași reguli ca și numele fișierului.

Gruparea și includerea fișierelor într-un subdirector se poate face după orice criteriu. De exemplu, într-un subdirector separat numit WINDOWS (Fig. 3.3), este recomandabil să colectați toate fișierele legate de sistemul de operare. În același mod, este recomandabil să grupați toate fișierele necesare funcționării oricărui editor de text sau program de joc într-un subdirector separat. Dacă mai mulți utilizatori lucrează pe o mașină pe rând, atunci este logic să organizați subdirectoare separate pentru fiecare utilizator. De exemplu, numiți subdirectoarele: utilizator1, utilizator2, utilizator3,... (utilizator - utilizator), grupând fișierele primului utilizator în subdirectorul user1, al doilea în subdirectorul user2 etc. Pe lângă eliminarea restricțiilor cantitative asociate cu utilizarea unui singur director, acest lucru creează o anumită ordine la stocarea informațiilor pe discuri.

Toate subdirectoarele situate în directorul rădăcină sunt clasificate ca primul nivel. În fig. 3.3 Subdirectoarele de prim nivel sunt subdirectoarele Windows, user1, Program files. Directorul rădăcină, în raport cu subdirectoarele de prim nivel incluse în acesta, este numit părintească, iar subdirectoarele în raport cu rădăcina sunt luate în considerare filiale sau cuibărit.

Fiecare subdirector de prim nivel, la rândul său, este structurat exact la fel ca și cel rădăcină. Într-un subdirector de nivel întâi, pot fi organizate subdirectoare de nivel al doilea etc. De exemplu, proprietarul subdirectorului user1 poate grupa în acest subdirector toate rapoartele pe care le-a pregătit într-un subdirector separat numit otcheti și, de exemplu, fișierele care conțin informații despre contactele de afaceri pot fi colectate în subdirectorul kontakti. Subdirectoarele de nivel întâi sunt considerate părinți ale subdirectoarelor de nivelul doi pe care le conțin. Subdirectoarele de nivel al doilea acționează ca copii ai subdirectoarelor de nivel întâi.

Orez. 3.3. Structura arborescentă a directorului

Structura directorului seamănă cu un arbore. Directorul rădăcină poate fi mapat la trunchiul unui copac, subdirectoarele acționează ca ramuri, iar fișierele sunt frunzele acestui „copac”. Această structură de director este numită asemănător unui copac sau ierarhic.

În sistemele de operare cu interfață grafică, directoarele sunt afișate ca foldere. Figura arată arborele de foldere al unuia dintre discuri. Din fig. 3.4 puteți vedea că există patru foldere în directorul rădăcină: A, B, C și D. În același timp, în interiorul folderului A există foldere A1 și A2. Folder C conține folderele C1 și C2. În folderul A1 există folderul A11, iar în ultimul folder există folderul A111. O cruce pe arbore indică faptul că există și alte foldere în folderele corespunzătoare (există foldere în folderele D și A12 care nu sunt vizibile). Această figură nu arată fișierele care pot fi localizate fie în directorul rădăcină, fie în orice folder.

Orez. 3.4. Directoare ca foldere

Calea către fișier

Sistemul de operare caută un fișier într-un director după numele complet. Aceasta înseamnă că, în principiu, nu pot exista două fișiere diferite cu același nume în același director sau subdirector . Vă reamintim că numele constă din numele fișierului și extensia acestuia. De asemenea, nu este permis să aveți două subdirectoare imbricate cu aceleași nume într-un singur director sau subdirector.

Directoarelor sau subdirectoarelor li se permite să aibă fișiere sau subdirectoare subdirectoare cu același nume. Dar atunci numele fișierului nu este suficient pentru a indica fără ambiguitate fișierul dorit. Pentru a distinge fișierele cu același nume, este necesar să indicați și subdirectoarele în care se află. Dar, în cazul general, trebuie să specificați nu doar un subdirector, ci întregul lanț de subdirectoare, care trebuie urmat de la directorul rădăcină până la subdirectorul care conține fișierul pe care îl căutați pentru a ajunge la fișierul dorit și a determina locația sa.

Lanțul de nume de subdirectoare care trebuie parcurse, începând de la directorul rădăcină și terminând cu subdirectorul care conține fișierul, se numește calea sau ruta către fișier.

În sistemele de operare MS DOS și Windows, directorul rădăcină din cale este indicat de caracterul \. Același simbol separă numele subdirectoarelor din lanț unul de celălalt, precum și numele fișierului de numele subdirectoarelor în care se află. Acest simbol se numește back slash.

Astfel, pentru fișierele situate în directorul rădăcină (vezi Figura 3.3), calea este doar desemnatorul directorului rădăcină \, iar fișierele sunt specificate după cum urmează:

Fișierul din subdirectorul user1 are calea \user1:

\user1\picture.bmp.

Și calea către fișierele din subdirectorul kontakti trebuie să includă numele ambelor subdirectoare - \user1\kontakti:

\user1\kontakti\ivanov.doc,

\user1\kontakti\postavki.txt

Căile pot fi specificate nu numai pentru fișiere, ci și pentru subdirectoare. Deci, pentru subdirectorul kontakti calea este \user1.

Deoarece computerul dvs. include mai multe dispozitive de disc diferite, pentru a identifica unic un fișier, trebuie să specificați pe ce dispozitiv se află acesta. Acest lucru se poate face prin specificarea numelui dispozitivului de disc care conține fișierul. Numele dispozitivului este de obicei plasat înaintea căii către fișier. Numele complet al fișierului (specificația fișierului) conține

ü numele dispozitivului,

ü calea către fișier,

ü numele fișierului.

<имя носителя>\<имя каталога-1>\...\<имя каталога-N>\<собственное имя файла>.

Dacă, de exemplu, un director a cărui structură este prezentată în Fig. 3.3 se află pe hard disk-ul C:, apoi specificația completă a fișierului postavki.txt arată astfel:

C:\user1\kontakti\postavki.txt

Dacă acest director se află pe o dischetă, adică pe dispozitivul disc A:, atunci specificația va fi scrisă după cum urmează:

A:\user1\kontakti\postavki.txt

O specificație completă a fișierului identifică complet și fără ambiguitate fișierul dorit, care este ceea ce are nevoie sistemul de operare pentru a executa cu precizie comenzile utilizatorului. Dacă se face cea mai mică greșeală în specificația fișierului, de exemplu, cel puțin un caracter lipsește sau este distorsionat, sistemul de operare nu va putea găsi un astfel de fișier.

Windows acceptă ideea unui fișier ca o secvență nestructurată de octeți.

Programul de aplicație are capacitatea de a citi acești octeți în ordine aleatorie. De obicei, stocarea fișierelor este organizată pe un dispozitiv de acces direct sub forma unui set de blocuri de dimensiune fixă. Sarcina principală a subsistemului de gestionare a fișierelor este de a asocia un nume de fișier simbolic cu blocuri de disc care conțin datele fișierului.

Denumirea fișierelor

Pentru a crea un fișier și a-i atribui un nume în Windows, este utilizată funcția Win32 CreateFile. Lungimea maximă a unui nume de fișier complet calificat la crearea unui fișier este MAX_PATH cu o valoare de 260, dar sistemul permite nume de fișiere de până la 32.000 de caractere în format Unicode.

Sistemul are capacitatea de a distinge între litere mari și mici într-un nume de fișier. Programele de aplicație recunosc de obicei un tip de fișier după numele său. De exemplu, fișierele cu extensia .exe sunt executabile. Conectarea numelor cu programe de procesare este implementată în registru.

Atributele fișierului

În Windows, un fișier este considerat a fi nu doar o secvență de octeți, ci o colecție de atribute, iar datele fișierului sunt doar unul dintre atribute - așa-numitul flux de date fără nume.

Atributele sunt stocate ca o pereche:<наименование атрибута, значение атрибута>în intrarea fișierului din MFT (Master File Table).

Lista atributelor fișierului NTFS

  • Informații standard - biți de semnalizare (numai citire, arhivați), marcaje de timp.
  • Nume de fișier. Numele fișierului este stocat în Unicode.
  • Descriptor de securitate (control acces la fișiere).
  • Date. Fluxuri de date fără nume și denumite.
  • ID obiect - identificator de fișier pe 64 de biți unic pentru acest volum. Fișierul poate fi deschis nu numai după nume, ci și prin acest identificator.
  • Informații despre volum.
  • Informații de indexare utilizate pentru directoare.
  • Datele EFS (Encryption File System) utilizate pentru criptare.

Organizarea fișierelor și accesul. Înțelegerea I/O asincronă

Subsistemul de fișiere Windows se ocupă cu fișierele ai căror octeți pot fi citiți în orice ordine, deoarece numărul blocului este determinat în mod misterios de poziția curentă în fișier. Astfel de fișiere se numesc fișiere cu acces direct.

O realizare importantă a dezvoltatorilor de sisteme de operare Windows este de a oferi utilizatorului capacitatea de a efectua operațiuni I/O asincrone. În acest caz, procesul care inițiază operația I/O nu așteaptă finalizarea acesteia, ci continuă calculele.

Directoare. Structura logică a unei arhive de fișiere

Sistemul de fișiere de pe un disc este o structură ierarhică, care este organizată prin prezența fișierelor speciale - directoare (directoare) care au același format intern de tabel (nume de fișiere, tip de fișier - obișnuit sau director, atribute).

Windows acceptă „.” în numele complet al fișierului. - pentru directorul curent, ".." - pentru directorul rădăcină.

Partiții de disc. Operațiunea de montare

În Windows, este o practică comună împărțirea discurilor fizice în discuri logice (aceasta este o operațiune de nivel scăzut), uneori numite partiții. Uneori, dimpotrivă, mai multe discuri fizice sunt combinate într-unul logic. Numele unităților logice sunt stocate în directorul „\?”. spații de nume obiect. Prin specificarea litera unității, programul de aplicație obține acces la sistemul de fișiere USE.

Windows permite utilizatorului să creeze un punct de montare - legând un director gol la un director de pe o unitate logică. După finalizarea cu succes a operațiunii, conținutul acestor directoare se va potrivi unul cu celălalt.

Sistem de fișiere NTFS

În sistemul de operare Windows, sistemul de fișiere este integrat în sistemul de intrare/ieșire.

Clustere

De obicei, discurile sunt împărțite în blocuri (sectoare) de 512 octeți. Dar este mai convenabil să operați cu blocuri de dimensiuni mai mari - un cluster. Dimensiunea clusterului este egală cu dimensiunea sectorului înmulțită cu factorul cluster și poate fi setată în timpul operațiunii de formatare a discului. În mod implicit, această valoare este de 4 KB.

NTFS acceptă dimensiuni de 512, 1024, 2048, 4096, 8196, 16 KB, 32 KB, 64 K. Dimensiunea optimă a blocului de compromis este în intervalul de la 1 la 8 KB. Comprimarea volumelor NTFS nu este acceptată pentru dimensiunile cluster mai mari de 4096 de octeți.Sistemul face distincția între clusterele de discuri (cluster de volume) și clusterele de discuri aparținând unui fișier (cluster logic).

Material pentru cursul de revizuire nr. 33

pentru studenții de specialitate

„Software pentru tehnologia informației”

Profesor asociat al Departamentului de Informatică, Ph.D. Livak E.N.

SISTEME DE MANAGEMENT FIȘIERE

Concepte de bază, fapte

Scop. Caracteristicile sistemelor de fișiereGRASVFATGRASIME 32,HPFSNTFS. Sisteme de fișiere UNIX OS (s5, ufs), Linux OS Ext2FS Zonele de sistem ale discului (partiție, volum). Principiile plasării fișierelor și stocării informațiilor despre locația fișierelor. Organizarea cataloagelor. Restricționarea accesului la fișiere și directoare.

Aptitudini

Utilizarea cunoștințelor despre structura sistemului de fișiere pentru a proteja și restaura informațiile computerului (fișiere și directoare). Organizarea controlului accesului la fișiere.

Sisteme de fișiere. Structura sistemului de fișiere

Datele de pe disc sunt stocate sub formă de fișiere. Un fișier este o parte numită a unui disc.

Sistemele de gestionare a fișierelor sunt concepute pentru a gestiona fișierele.

Capacitatea de a trata datele stocate în fișiere la nivel logic este oferită de sistemul de fișiere. Este sistemul de fișiere care determină modul în care datele sunt organizate pe orice mediu de stocare.

Prin urmare, Sistemul de fișiere este un set de specificații și software-ul corespunzător care sunt responsabile pentru crearea, distrugerea, organizarea, citirea, scrierea, modificarea și mutarea informațiilor despre fișiere, precum și pentru controlul accesului la fișiere și gestionarea resurselor care sunt utilizate de fișiere.

Sistemul de gestionare a fișierelor este principalul subsistem în marea majoritate a sistemelor de operare moderne.

Utilizarea unui sistem de gestionare a fișierelor

· toate programele de procesare a sistemului sunt conectate folosind date;

· se rezolvă probleme de distribuție centralizată a spațiului pe disc și de gestionare a datelor;

· utilizatorului i se oferă oportunități de a efectua operațiuni asupra fișierelor (creare etc.), de a face schimb de date între fișiere și diverse dispozitive și de a proteja fișierele împotriva accesului neautorizat.

Unele sisteme de operare pot avea mai multe sisteme de gestionare a fișierelor, ceea ce le oferă posibilitatea de a gestiona mai multe sisteme de fișiere.

Să încercăm să facem distincția între un sistem de fișiere și un sistem de gestionare a fișierelor.

Termenul „sistem de fișiere” definește principiile accesului la datele organizate în fișiere.

Termen "sistem de gestionare a fișierelor" se referă la o implementare specifică a sistemului de fișiere, adică Acesta este un set de module software care asigură lucrul cu fișiere într-un anumit sistem de operare.

Deci, pentru a lucra cu fișiere organizate în conformitate cu un anumit sistem de fișiere, trebuie dezvoltat un sistem adecvat de gestionare a fișierelor pentru fiecare sistem de operare. Acest sistem UV va funcționa numai pe sistemul de operare pentru care este proiectat.

Pentru familia de sisteme de operare Windows, sistemele de fișiere utilizate în principal sunt: ​​VFAT, FAT 32, NTFS.

Să ne uităm la structura acestor sisteme de fișiere.

Pe sistemul de fișiere GRAS Spațiul pe disc al oricărei unități logice este împărțit în două zone:

zona de sistem și

· zona de date.

Zona de sistem creat și inițializat în timpul formatării și actualizat ulterior când structura fișierului este manipulată.

Zona de sistem este formată din următoarele componente:

· sector de boot care conține înregistrarea de pornire (boot record);

· sectoare rezervate (s-ar putea să nu existe);

· tabele de alocare a fișierelor (FAT, Tabel de alocare a fișierelor);

· director rădăcină (ROOT).

Aceste componente sunt amplasate pe disc una după alta.

Zona de date conține fișiere și directoare subordonate celui rădăcină.

Zona de date este împărțită în așa-numitele clustere. Un cluster este unul sau mai multe sectoare adiacente ale unei zone de date. Pe de altă parte, un cluster este unitatea minimă adresabilă de memorie de disc alocată unui fișier. Acestea. un fișier sau un director ocupă un număr întreg de clustere. Pentru a crea și a scrie un fișier nou pe disc, sistemul de operare îi alocă mai multe clustere de discuri gratuite. Aceste grupuri nu trebuie să se urmeze unele pe altele. Pentru fiecare fișier, este stocată o listă cu toate numerele de cluster care sunt atribuite acelui fișier.

Împărțirea zonei de date în clustere în loc să folosiți sectoare vă permite să:

· reduce dimensiunea tabelului FAT;

· reduce fragmentarea fișierelor;

· se reduce lungimea lanțurilor de fișiere Þ accelerează accesul la fișiere.

Cu toate acestea, o dimensiune prea mare a clusterului duce la o utilizare ineficientă a zonei de date, mai ales în cazul unui număr mare de fișiere mici (la urma urmei, în medie, se pierde jumătate de cluster pentru fiecare fișier).

În sistemele de fișiere moderne (FAT 32, HPFS, NTFS) această problemă este rezolvată prin limitarea dimensiunii clusterului (maximum 4 KB)

Harta zonei de date este T tabelul de alocare a fișierelor (File Allocation Table - FAT) Fiecare element al tabelului FAT (12, 16 sau 32 de biți) corespunde unui cluster de discuri și caracterizează starea acestuia: liber, ocupat sau un cluster defect.

· Dacă un cluster este alocat unui fișier (adică, ocupat), atunci elementul FAT corespunzător conține numărul următorului cluster al fișierului;

· ultimul cluster al fișierului este marcat cu un număr în intervalul FF8h - FFFh (FFF8h - FFFFh);

· dacă clusterul este liber, acesta conține valoarea zero 000h (0000h);

· un cluster care este inutilizabil (eșuat) este marcat cu numărul FF7h (FFF7h).

Astfel, în tabelul FAT, clusterele aparținând aceluiași fișier sunt legate în lanțuri.

Tabelul de alocare a fișierelor este stocat imediat după înregistrarea de pornire a discului logic; locația sa exactă este descrisă într-un câmp special din sectorul de pornire.

Este stocat în două copii identice, care se succed. Dacă prima copie a tabelului este distrusă, se folosește a doua.

Datorită faptului că FAT este folosit foarte intens în timpul accesului la disc, acesta este de obicei încărcat în RAM (în buffer-uri I/O sau cache) și rămâne acolo cât mai mult timp posibil.

Principalul dezavantaj al FAT este procesarea lentă a fișierelor. La crearea unui fișier, regula este că primul cluster gratuit este alocat. Acest lucru duce la fragmentarea discului și la lanțuri complexe de fișiere. Acest lucru are ca rezultat munca mai lentă cu fișierele.

Pentru a vizualiza și edita tabelul FAT îl puteți folosi utilitateDiscEditor.

Informațiile detaliate despre fișierul în sine sunt stocate într-o altă structură numită director rădăcină. Fiecare unitate logică are propriul director rădăcină (ROOT).

Directorul rădăcină descrie fișiere și alte directoare. Un element de director este un descriptor de fișier.

Fiecare descriptor de fișier și director îl include

· Nume

· extensie

data creării sau ultimei modificări

· momentul creării sau ultimei modificări

atribute (arhivă, atribut director, atribut volum, sistem, ascuns, numai citire)

· lungimea fișierului (pentru un director - 0)

· câmp rezervat care nu este utilizat

· numărul primului cluster din lanțul de clustere alocat unui fișier sau director; După ce a primit acest număr, sistemul de operare, referindu-se la tabelul FAT, află toate celelalte numere de cluster ale fișierului.

Deci, utilizatorul lansează fișierul pentru execuție. Sistemul de operare caută un fișier cu numele dorit, uitându-se la descrierile fișierelor din directorul curent. Când elementul necesar este găsit în directorul curent, sistemul de operare citește primul număr de cluster al acestui fișier și apoi utilizează tabelul FAT pentru a determina numerele de cluster rămase. Datele din aceste clustere sunt citite în RAM, combinându-se într-o secțiune continuă. Sistemul de operare transferă controlul fișierului, iar programul începe să ruleze.

Pentru a vizualiza și edita directorul rădăcină ROOT puteți utiliza și utilitateDiscEditor.

Sistemul de fișiere VFAT

Sistemul de fișiere VFAT (FAT virtual) a apărut pentru prima dată în Windows for Workgroups 3.11 și a fost proiectat pentru I/O fișier în modul protejat.

Acest sistem de fișiere este utilizat în Windows 95.

Este acceptat și în Windows NT 4.

VFAT este sistemul de fișiere nativ pe 32 de biți al Windows 95. Este controlat de driverul VFAT .VXD.

VFAT folosește cod pe 32 de biți pentru toate operațiunile cu fișiere și poate folosi drivere pentru modul protejat pe 32 de biți.

DAR, intrările din tabelul de alocare a fișierelor rămân pe 12 sau 16 biți, deci discul utilizează aceeași structură de date (FAT). Acestea. f format de tabelVFAT este același, precum formatul FAT.

VFAT împreună cu numele „8.3”. acceptă nume lungi de fișiere. (VFAT se spune adesea că este FAT cu suport pentru nume lungi).

Principalul dezavantaj al VFAT este pierderile mari de clustering cu dimensiuni mari de disc logic și restricții asupra dimensiunii discului logic în sine.

Sistemul de fișiere GRASIME 32

Aceasta este o nouă implementare a ideii de a utiliza tabelul FAT.

FAT 32 este un sistem de fișiere complet autonom pe 32 de biți.

Utilizat pentru prima dată în Windows OSR 2 (OEM Service Release 2).

În prezent, FAT 32 este utilizat în Windows 98 și Windows ME.

Conține numeroase îmbunătățiri și completări față de implementările FAT anterioare.

1. Utilizează mult mai eficient spațiul pe disc datorită faptului că folosește clustere mai mici (4 KB) – se estimează că economii de până la 15%.

2. Are o înregistrare extinsă de pornire care vă permite să creați copii ale structurilor de date critice Þ crește rezistența discului la deteriorarea structurilor discului

3. Poate utiliza backup FAT în loc de unul standard.

4. Poate muta directorul rădăcină, cu alte cuvinte, directorul rădăcină poate fi în orice locație Þ elimină limitarea dimensiunii directorului rădăcină (512 elemente, deoarece ROOT trebuia să ocupe un cluster).

5. Structura directorului rădăcină îmbunătățită

Au apărut câmpuri suplimentare, de exemplu, ora creării, data creării, data ultimului acces, suma de control

Există încă mai multe mânere pentru un nume lung de fișier.

Sistemul de fișiere HPFS

HPFS (High Performance File System) este un sistem de fișiere de înaltă performanță.

HPFS a apărut pentru prima dată în OS/2 1.2 și LAN Manager.

Să facem o listă principalele caracteristici ale HPFS.

· Principala diferență este principiile de bază ale plasării fișierelor pe disc și principiile stocării informațiilor despre locația fișierelor. Datorită acestor principii, HPFS are performanță ridicată și toleranță la erori, este fiabilă Sistemul de fișiere.

· Spațiul pe disc în HPFS este alocat nu în clustere (ca în FAT), dar blocuri.În implementarea modernă, dimensiunea blocului este luată egală cu un sector, dar în principiu ar putea fi de o dimensiune diferită. (De fapt, un bloc este un cluster, doar un cluster este întotdeauna egal cu un sector). Plasarea fișierelor în blocuri atât de mici permite utilizați spațiul pe disc mai eficient, deoarece supraîncărcarea spațiului liber este în medie de numai (jumătate de sector) 256 de octeți per fișier. Rețineți că, cu cât dimensiunea clusterului este mai mare, cu atât se irosește mai mult spațiu pe disc.

· Sistemul HPFS se străduiește să aranjeze fișierul în blocuri învecinate sau, dacă acest lucru nu este posibil, să îl plaseze pe disc în așa fel încât întinderi(fragmentele) dosarului erau cât mai apropiate fizic unele de altele. Această abordare este esențială reduce timpul de poziționare a capului de scriere/citire hard disk și timpul de așteptare (întârziere între instalarea capului de citire/scriere pe pista dorită). Să ne amintim că într-un fișier FAT primul cluster liber este pur și simplu alocat.

Întinderi(extent) - fragmente de fișiere situate în sectoarele adiacente ale discului. Un fișier are cel puțin o extensie dacă nu este fragmentat și mai multe extinde în caz contrar.

·Folosit metodă arbori binari echilibrați pentru stocarea și căutarea informațiilor despre locația fișierelor (directoarele sunt stocate în centrul discului, în plus, este furnizată sortarea automată a directoarelor), ceea ce este esențial crește productivitatea HPFS (vs. FAT).

· HPFS oferă atribute speciale de fișiere extinse care permit controlează accesul la fișiere și directoare.

Atribute extinse (atribute extinse, EA ) vă permit să stocați informații suplimentare despre fișier. De exemplu, fiecare fișier poate fi asociat cu graficul său unic (pictogramă), descrierea fișierului, comentariul, informațiile proprietarului fișierului etc.

Structura partiției C HPFS


La începutul partiției cu HPFS instalat există trei comenzi bloc:

bloc de pornire

· bloc suplimentar (super bloc) și

· bloc de rezervă (bloc de rezervă).

Ocupă 18 sectoare.

Tot spațiul de disc rămas în HPFS este împărțit în părți din sectoarele adiacente - dungi(bandă - bandă, bandă). Fiecare bandă ocupă 8 MB de spațiu pe disc.

Fiecare bandă are propria sa bitmap de alocare a sectorului.Bitmap-ul arată care sectoare dintr-o anumită bandă sunt ocupate și care sunt libere. Fiecare sector al unei benzi de date corespunde unui bit din harta sa de biți. Dacă bit = 1, atunci sectorul este ocupat, dacă este 0, atunci este liber.

Hărțile de biți ale celor două benzi sunt situate una lângă alta pe disc, la fel ca și benzile în sine. Adică, succesiunea dungilor și a cărților arată ca în Fig.

Compara cuGRAS. Există o singură „hartă de biți” pentru întregul disc (tabel FAT). Și pentru a lucra cu el, trebuie să mutați în medie capetele de citire/scriere pe jumătate din disc.

Tocmai pentru a reduce timpul de poziționare a capetelor de citire/scriere ale unui hard disk, în HPFS discul este împărțit în dungi.

Sa luam in considerare blocuri de control.

Bloc de pornire (cizmebloc)

Conține numele volumului, numărul său de serie, blocul de parametri BIOS și programul de pornire.

Programul bootstrap găsește fișierul OS 2 LDR , îl citește în memorie și transferă controlul acestui program de pornire a sistemului de operare, care, la rândul său, încarcă nucleul OS/2 de pe disc în memorie - OS 2 KRNL. Și deja OS 2 KRIML folosind informațiile din fișier CONFIG. SYS încarcă toate celelalte module de program necesare și blocuri de date în memorie.

Blocul de portbagaj este situat în sectoarele de la 0 la 15.

Superbloc(super bloc)

Conține

· pointer către o listă de hărți de bit (lista de blocare a bitmap-urilor). Această listă listează toate blocurile de pe disc care conțin hărțile de biți utilizate pentru detectarea sectoarelor libere;

· pointer către lista de blocuri defecte (lista de blocuri defectuoase). Când sistemul detectează un bloc deteriorat, acesta este adăugat la această listă și nu mai este folosit pentru a stoca informații;

· pointer către banda de director

· pointer către nodul fișier (F -node) al directorului rădăcină,

· data ultimei scanări a partiției de către CHKDSK;

· informații despre dimensiunea stripe (în implementarea HPFS actuală - 8 MB).

Superblocul este situat in sectorul 16.

De rezervăbloc(bloc de rezervă)

Conține

· pointer către harta de înlocuire de urgență (hartă de remediere rapidă sau zone de remediere rapidă);

· pointer către lista de blocuri de rezervă gratuite (listă de blocuri fără urgență din director);

· un număr de steaguri și descriptori de sistem.

Acest bloc este situat în sectorul 17 al discului.

Blocul de rezervă oferă o toleranță ridicată la erori pentru sistemul de fișiere HPFS și vă permite să recuperați datele deteriorate de pe disc.

Principiul plasării fișierelor

Întinderi(extent) - fragmente de fișiere situate în sectoarele adiacente ale discului. Un fișier are cel puțin o extensie dacă nu este fragmentat și mai multe extinde în caz contrar.

Pentru a reduce timpul necesar poziționării capetelor de citire/scriere ale unui hard disk, sistemul HPFS se străduiește să

1) plasați dosarul în blocuri adiacente;

2) dacă acest lucru nu este posibil, atunci plasați întinderile fișierului fragmentat cât mai aproape unul de celălalt,

Pentru a face acest lucru, HPFS folosește statistici și încearcă, de asemenea, să rezerve condiționat cel puțin 4 kiloocteți de spațiu la sfârșitul fișierelor care cresc.

Principii pentru stocarea informațiilor despre locația fișierelor

Fiecare fișier și director de pe disc are propriile sale nodul fișier F-Node. Aceasta este o structură care conține informații despre locația unui fișier și atributele extinse ale acestuia.

Fiecare F-Nod ocupă un sectorși este întotdeauna situat aproape de fișierul sau directorul său (de obicei, imediat înainte de fișier sau director). Obiectul F-Node conține

· lungime,

· primele 15 caractere ale numelui fișierului,

· informații speciale despre servicii,

· statistici privind accesul la fișiere,

· atribute extinse ale fișierului,

· o listă de drepturi de acces (sau doar o parte a acestei liste, dacă este foarte mare); Dacă atributele extinse sunt prea mari pentru nodul fișier, atunci este scris un pointer către ele.

· informații asociative despre locația și subordonarea dosarului etc.

Dacă fișierul este contiguu, atunci locația sa pe disc este descrisă de două numere de 32 de biți. Primul număr este un indicator către primul bloc al fișierului, iar al doilea este lungimea extinderii (numărul de blocuri consecutive care aparțin fișierului).

Dacă un fișier este fragmentat, atunci locația extinderilor sale este descrisă în nodul fișierului prin perechi suplimentare de numere de 32 de biți.

Un nod de fișier poate conține informații despre până la opt extinde ale unui fișier. Dacă un fișier are mai multe extensii, atunci un pointer către un bloc de alocare este scris în nodul său de fișier, care poate conține până la 40 de pointeri către extents sau, similar unui bloc arbore de director, către alte blocuri de alocare.

Structura și plasarea directorului

Folosit pentru a stoca directoare dungă situată în centrul discului.

Această bandă se numește directorgrup.

Dacă este complet plin, HPFS începe să plaseze directoare de fișiere în alte benzi.

Plasarea acestei structuri de informații în mijlocul discului reduce semnificativ timpul mediu de poziționare a capului de citire/scriere.

Cu toate acestea, o contribuție semnificativ mai mare la performanța HPFS (comparativ cu plasarea Directory Band în mijlocul unui disc logic) se realizează prin utilizarea metodă arbori binari echilibrați pentru stocarea și preluarea informațiilor despre locația fișierelor.

Amintiți-vă că în sistemul de fișiere GRAS directorul are o structură liniară, neordonată într-un mod special, așa că atunci când căutați un fișier trebuie să căutați prin el secvenţial încă de la început.

În HPFS, structura directorului este un arbore echilibrat cu intrări aranjate în ordine alfabetică.

Fiecare intrare inclusă în arbore conține

· atributele fișierului,

· pointer către nodul de fișier corespunzător,

informații despre ora și data creării fișierului, ora și data ultimei actualizări și acces,

lungimea datelor care conțin atribute extinse,

· contor de acces la fișiere,

lungimea numelui fișierului

· numele în sine,

· și alte informații.

Sistemul de fișiere HPFS se uită numai la ramurile necesare ale arborelui binar atunci când caută un fișier într-un director. Această metodă este de multe ori mai eficientă decât citirea secvenţială a tuturor intrărilor dintr-un director, ceea ce este cazul sistemului FAT.

Dimensiunea fiecărui bloc în ceea ce privește directoarele sunt alocate în implementarea HPFS actuală este de 2 KB. Mărimea intrării care descrie fișierul depinde de dimensiunea numelui fișierului. Dacă un nume are 13 octeți (pentru formatul 8.3), atunci un bloc de 2 KB poate conține până la 40 de descriptori de fișier. Blocurile sunt conectate între ele printr-o listă.

Probleme

La redenumirea fișierelor, poate apărea așa-numita reechilibrare a arborelui. Crearea unui fișier, redenumirea sau ștergerea acestuia poate duce la blocuri de directoare în cascadă. De fapt, o redenumire poate eșua din cauza lipsei de spațiu pe disc, chiar dacă fișierul în sine nu a crescut în dimensiune. Pentru a evita acest dezastru, HPFS menține un mic grup de blocuri gratuite care pot fi utilizate în cazul unui dezastru. Această operațiune poate necesita alocarea de blocuri suplimentare pe un disc plin. Un pointer către acest grup de blocuri gratuite este stocat în SpareBlock.

Principii pentru plasarea fișierelor și directoarelor pe disc înHPFS:

· informațiile despre locația fișierelor sunt dispersate pe tot discul, cu înregistrări pentru fiecare fișier specific situat (dacă este posibil) în sectoare adiacente și aproape de datele despre locația acestora;

· directoarele sunt situate în mijlocul spațiului pe disc;

· Directoarele sunt stocate ca un arbore binar echilibrat cu intrările aranjate în ordine alfabetică.

Fiabilitatea stocării datelor în HPFS

Orice sistem de fișiere trebuie să aibă un mijloc de corectare a erorilor care apar la scrierea informațiilor pe disc. Sistemul HPFS folosește pentru aceasta mecanism de înlocuire de urgență ( remediere rapidă).

Dacă sistemul de fișiere HPFS întâmpină o problemă în timpul scrierii datelor pe disc, acesta afișează un mesaj de eroare. HPFS stochează apoi informațiile care ar fi trebuit scrise în sectorul defect într-unul din sectoarele de rezervă rezervate în prealabil pentru această eventualitate. Lista blocurilor de rezervă gratuite este stocată în blocul de rezervă HPFS. Dacă este detectată o eroare în timpul scrierii datelor într-un bloc normal, HPFS selectează unul dintre blocurile de rezervă gratuite și stochează datele acolo. Sistemul de fișiere se actualizează apoi card înlocuitor de urgență în unitatea de rezervă.

Această hartă este pur și simplu perechi de cuvinte duble, fiecare dintre ele fiind un număr de sector pe 32 de biți.

Primul număr indică sectorul defect, iar al doilea indică sectorul dintre sectoarele de rezervă disponibile care a fost selectat pentru a-l înlocui.

După înlocuirea sectorului defect cu unul de rezervă, harta de înlocuire de urgență este scrisă pe disc, iar pe ecran apare o fereastră pop-up care informează utilizatorul că a apărut o eroare de scriere pe disc. De fiecare dată când sistemul scrie sau citește un sector de disc, se uită la harta de recuperare și înlocuiește toate numerele de sector defectuoase cu numerele de sector de rezervă cu datele corespunzătoare.

Trebuie remarcat faptul că această traducere a numărului nu afectează în mod semnificativ performanța sistemului, deoarece este efectuată numai la accesarea fizică a discului și nu la citirea datelor din memoria cache a discului.

Sistemul 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.

Rețineți că, cu rare excepții, cu Partițiile NTFS pot fi lucrate numai direct dinWindowsN.T. deși există implementări corespunzătoare ale sistemelor de gestionare a fișierelor pentru citirea fișierelor din volume NTFS pentru un număr de sisteme de operare.

Cu toate acestea, nu există implementări cu drepturi depline pentru lucrul cu NTFS în afara Windows NT.

NTFS nu este acceptat pe sistemele de operare Windows 98 și Windows Millennium Edition utilizate pe scară largă.

Caracteristici cheieNT FS

· lucrul pe discuri mari are loc eficient (mult mai eficient decât în ​​FAT);

· există instrumente pentru a restricționa accesul la fișiere și directoare Þ Partițiile NTFS oferă securitate locală atât pentru fișiere, cât și pentru directoare;

· a fost introdus un mecanism de tranzacţie în care Logare operațiuni cu fișiere Þ creștere semnificativă a fiabilității;

· multe restricții privind numărul maxim de sectoare de disc și/sau clustere au fost eliminate;

· un nume de fișier în NTFS, spre deosebire de sistemele de fișiere FAT și HPFS, poate conține orice caractere, inclusiv setul complet de alfabete naționale, deoarece datele sunt reprezentate în Unicode - o reprezentare pe 16 biți care oferă 65535 de caractere diferite. Lungimea maximă a unui nume de fișier în NTFS este de 255 de caractere.

· NTFS are, de asemenea, capabilități de compresie încorporate pe care le puteți aplica fișierelor individuale, directoarelor întregi și chiar volumelor (și ulterior anulați sau atribuiți-le după cum doriți).

Structura volumului cu sistemul de fișiere NTFS

O partiție NTFS se numește volum (volum). Dimensiunea maximă posibilă a volumului (și dimensiunea fișierului) este de 16 EB (exabyte 2**64).

Ca și alte sisteme, NTFS împarte spațiul pe disc al unui volum în clustere - blocuri de date care sunt adresate ca unități de date. NTFS acceptă dimensiuni de cluster de la 512 octeți la 64 KB; standardul este un cluster de 2 sau 4 KB în dimensiune.

Tot spațiul pe disc din NTFS este împărțit în două părți inegale.


Primele 12% din disc sunt alocate așa-numitei zone MFT - spațiu care poate fi ocupat de serviciul principal metafisier MFT.

Nu este posibil să scrieți date în această zonă. Zona MFT este întotdeauna păstrată goală - acest lucru se face astfel încât fișierul MFT, dacă este posibil, să nu devină fragmentat pe măsură ce crește.

Restul de 88% din volum este spațiu obișnuit de stocare a fișierelor.

MFT(maestrufişiermasa - tabelul general de fișiere) este în esență un director al tuturor celorlalte fișiere de pe disc, inclusiv el însuși. Este conceput pentru a determina locația fișierelor.

MFT constă din înregistrări de dimensiune fixă. Dimensiunea înregistrării MFT (minim 1 KB și maxim 4 KB) este determinată atunci când volumul este formatat.

Fiecare intrare corespunde unui fișier.

Primele 16 intrări sunt de natură de serviciu și nu sunt disponibile pentru sistemul de operare - sunt numite metafisiere,și primul metafișier este MFT-ul însuși.

Aceste prime 16 elemente MFT sunt singura parte a discului care are o poziție strict fixă. O copie a acestor 16 intrări este păstrată în mijlocul volumului pentru fiabilitate.

Părțile rămase ale fișierului MFT pot fi localizate, ca orice alt fișier, în locații arbitrare de pe disc.

Metafișierele sunt de natură de serviciu - fiecare dintre ele este responsabil pentru un anumit aspect al funcționării sistemului. Metafișierele sunt localizate în directorul rădăcină al volumului NTFS. Toate încep cu simbolul numelui „$”, deși este dificil să obțineți informații despre ei folosind mijloace standard. În tabel Sunt date principalele metafișiere și scopul lor.

Nume metafișier

Scopul metafișierului

$MFT

Master File Table în sine

$MFTmirr

O copie a primelor 16 intrări MFT plasate în mijlocul volumului

$LogFile

Fișier de suport pentru înregistrare

$Volum

Informații despre serviciu - etichetă de volum, versiunea sistemului de fișiere etc.

$AttrDef

Lista atributelor standard ale fișierului de pe volum

Directorul rădăcină

$Bitmap

Hartă spațiu liber volum

$Boot

Sector de pornire (dacă partiția este bootabilă)

$quota

Un fișier care înregistrează drepturile utilizatorului de a utiliza spațiul pe disc (acest fișier a început să funcționeze doar în Windows 2000 cu NTFS 5.0)

$Majuscule

Fișier - un tabel de corespondență între literele mari și mici în numele fișierelor. În NTFS, numele fișierelor sunt scrise Unicode (care se ridică la 65 de mii de simboluri diferite) și căutarea echivalentelor mari și mici în acest caz este o sarcină non-trivială

Înregistrarea MFT corespunzătoare stochează toate informațiile despre fișier:

· nume de fișier,

· mărimea;

· atributele fișierului;

· poziţia pe disc a fragmentelor individuale etc.

Dacă o înregistrare MFT nu este suficientă pentru informație, atunci sunt folosite mai multe înregistrări și nu neapărat consecutive.

Dacă fișierul nu este foarte mare, atunci datele fișierului sunt stocate direct în MFT, în spațiul rămas din datele principale dintr-o înregistrare MFT.

Un fișier pe un volum NTFS este identificat prin așa-numitul link la fișier(File Reference), care este reprezentat ca un număr de 64 de biți.

· numărul de fișier care corespunde numărului de înregistrare în MFT,

· și numere de ordine. Acest număr este incrementat ori de câte ori un anumit număr din MFT este reutilizat, permițând sistemului de fișiere NTFS să efectueze verificări interne de integritate.

Fiecare fișier din NTFS este reprezentat de cursuri(streamuri), adică nu are „doar date” ca atare, dar există fluxuri.

Unul dintre fluxuri este datele fișierului.

Majoritatea atributelor fișierelor sunt și fluxuri.

Astfel, se dovedește că fișierul are o singură entitate de bază - numărul din MFT și orice altceva, inclusiv fluxurile sale, este opțional.

Această abordare poate fi utilizată eficient - de exemplu, puteți „atașa” un alt flux la un fișier scriind orice date în acesta.

Atributele standard pentru fișiere și directoare de pe un volum NTFS au nume fixe și coduri de tip.

Catalogîn NTFS este un fișier special care stochează link-uri către alte fișiere și directoare.

Fișierul de catalog este împărțit în blocuri, fiecare conținând

· nume de fișier,

atribute de bază şi

Directorul rădăcină al discului nu este diferit de directoarele obișnuite, cu excepția unei legături speciale către acesta de la începutul metafișierului MFT.

Structura directorului intern este un arbore binar, similar cu HPFS.

Numărul de fișiere din directoarele rădăcină și non-rădăcină nu este limitat.

Sistemul de fișiere NTFS acceptă modelul de obiecte de securitate NT: NTFS tratează directoarele și fișierele ca tipuri distincte de obiecte și menține liste separate (deși suprapuse) de permisiuni pentru fiecare tip.

NTFS oferă securitate la nivel de fișier; aceasta înseamnă că drepturile de acces la volume, directoare și fișiere pot depinde de contul de utilizator și de grupurile cărora le aparține utilizatorul. De fiecare dată când un utilizator accesează un obiect de sistem de fișiere, drepturile sale de acces sunt verificate cu lista de permisiuni a acelui obiect. În cazul în care utilizatorul are drepturi suficiente, cererea acestuia este acceptată; în caz contrar cererea este respinsă. Acest model de securitate se aplică atât înregistrării locale a utilizatorilor pe computerele NT, cât și solicitărilor de rețea la distanță.

Sistemul NTFS are, de asemenea, anumite capacități de auto-vindecare. NTFS acceptă diverse mecanisme pentru verificarea integrității sistemului, inclusiv înregistrarea tranzacțiilor, care permite reluarea operațiunilor de scriere a fișierelor pe un jurnal special de sistem.

La Logare operațiuni cu fișiere, sistemul de gestionare a fișierelor înregistrează modificările care apar într-un fișier de serviciu special. La începutul unei operațiuni legate de modificarea structurii fișierului se face o notă corespunzătoare. Dacă apare vreo eroare în timpul operațiunilor cu fișierul, marcajul de început al operațiunii menționat rămâne indicat ca incomplet. Când efectuați o verificare a integrității sistemului de fișiere după repornirea mașinii, aceste operațiuni în așteptare vor fi anulate și fișierele vor fi restaurate la starea inițială. Dacă operațiunea de modificare a datelor din fișiere este finalizată în mod normal, atunci chiar în acest fișier de suport pentru înregistrarea serviciilor operația este marcată ca finalizată.

Principalul dezavantaj al sistemului de fișiereNTFS- datele de serviciu ocupă mult spațiu (de exemplu, fiecare element de director ocupă 2 KB) - pentru partițiile mici, datele de serviciu pot ocupa până la 25% din volumul media.

Þ NTFS nu poate fi folosit pentru a formata dischetele. Nu ar trebui să-l utilizați pentru a formata partiții mai mici de 100 MB.

Sistem de fișiere OS UNIX

În lumea UNIX, există mai multe tipuri diferite de sisteme de fișiere cu propria lor structură de memorie externă. Cele mai cunoscute sunt sistemul de fișiere tradițional UNIX System V (s5) și sistemul de fișiere din familia UNIX BSD (ufs).

Luați în considerare 5.

Un fișier pe un sistem UNIX este o colecție de caractere cu acces aleatoriu.

Fișierul are o structură care îi este impusă de utilizator.

Sistemul de fișiere Unix este un sistem de fișiere ierarhic, multi-utilizator.

Sistemul de fișiere are o structură arborescentă. Nodurile (nodurile intermediare) ale arborelui sunt directoare cu legături către alte directoare sau fișiere. Frunzele arborelui corespund fișierelor sau directoarelor goale.

Cometariu. De fapt, sistemul de fișiere Unix nu este bazat pe arbore. Faptul este că sistemul are posibilitatea de a încălca ierarhia sub formă de arbore, deoarece este posibil să se asocieze mai multe nume cu același conținut de fișier.

Structura discului

Discul este împărțit în blocuri. Mărimea blocului de date este determinată la formatarea sistemului de fișiere cu comanda mkfs și poate fi setată la 512, 1024, 2048, 4096 sau 8192 octeți.

Numărăm 512 octeți (dimensiunea sectorului).

Spațiul pe disc este împărțit în următoarele zone (vezi figura):

· bloc de încărcare;

· control superbloc;

· matrice de i-noduri;

· zona de stocare a continutului (datelor) fisierelor;

· un set de blocuri gratuite (legate într-o listă);

Bloc de pornire

Superbloc

i - nod

. . .

i - nod

Cometariu. Pentru sistemul de fișiere UFS - toate acestea se repetă pentru un grup de cilindri (cu excepția blocului Boot) + este alocată o zonă specială pentru a descrie grupul de cilindri

Bloc de pornire

Blocul se afla in blocul nr.0. (Reamintim că plasarea acestui bloc în blocul zero al dispozitivului de sistem este determinată de hardware, deoarece încărcătorul hardware accesează întotdeauna blocul zero al dispozitivului de sistem. Aceasta este ultima componentă a sistemului de fișiere care depinde de hardware.)

Blocul de pornire conține un program de promovare care este utilizat pentru a lansa inițial sistemul de operare UNIX. În sistemele de fișiere S 5, numai blocul de pornire al sistemului de fișiere rădăcină este de fapt utilizat. În sistemele de fișiere suplimentare, această zonă este prezentă, dar nu este utilizată.

Superbloc

Conține informații operaționale despre starea sistemului de fișiere, precum și date despre setările sistemului de fișiere.

În special, superblocul conține următoarele informații

· numărul de i-noduri (descriptori de index);

· Mărimea partiției???;

· lista blocurilor libere;

· lista de i-noduri gratuite;

· si altul.

Să fim atenți! Spațiul liber de pe disc este lista legată de blocuri gratuite. Această listă este stocată într-un superbloc.

Elementele din listă sunt matrice de 50 de elemente (dacă bloc = 512 octeți, atunci element = 16 biți):

· elementele de matrice nr. 1-48 conțin numerele de blocuri libere de spațiu de bloc de fișiere de la 2 la 49.

· elementul #0 conține un pointer către continuarea listei și

· ultimul element (Nr. 49) conține un pointer către un element liber din tablou.

Dacă un proces are nevoie de un bloc liber pentru a extinde un fișier, atunci sistemul selectează un element de matrice folosind un pointer (la un element liber), iar blocul cu Nr. stocat în acest element este furnizat fișierului. Dacă fișierul este redus, numerele eliberate sunt adăugate la matricea de blocuri libere și indicatorul către elementul liber este ajustat.

Deoarece dimensiunea matricei este de 50 de elemente, sunt posibile două situații critice:

1. Când eliberăm blocuri de fișiere, dar acestea nu pot încadra în această matrice. În acest caz, un bloc liber este selectat din sistemul de fișiere și matricea complet completată de blocuri libere este copiată în acest bloc, după care valoarea indicatorului către elementul liber este resetată și elementul zero al matricei, care este situat în superbloc, conține numărul blocului pe care sistemul l-a ales pentru a copia conținutul matricei. În acest moment, este creat un nou element din lista de blocuri gratuite (fiecare cu 50 de elemente).

2. Când conținutul elementelor matricei de blocuri libere a fost epuizat (în acest caz, elementul zero al matricei este zero). Dacă acest element nu este egal cu zero, atunci aceasta înseamnă că există o continuare a matricea. Această continuare este citită într-o copie a superblocului din RAM.

Lista gratuităi-noduri. Acesta este un buffer format din 100 de elemente. Conține informații despre 100 de numere de i-noduri care sunt libere în acest moment.

Superblocul este întotdeauna în RAM

Þ toate operațiunile (eliberarea și ocuparea blocurilor și i-nodurilor au loc în RAM Þ minimizarea schimburilor de discuri.

Dar! Dacă conținutul superblocului nu este scris pe disc și alimentarea este oprită, vor apărea probleme (o discrepanță între starea reală a sistemului de fișiere și conținutul superblocului). Dar aceasta este deja o cerință pentru fiabilitatea echipamentului sistemului.

cometariu. Sistemele de fișiere UFS acceptă mai multe copii ale superblocului (o copie per grup de cilindri) pentru a îmbunătăți stabilitatea.

Zona inodului

Aceasta este o serie de descrieri de fișiere numite i -noduri (eu-nodul).(64 de octeți?)

Fiecare descriptor de index (i-node) al unui fișier conține:

· Tip de fișier (fișier/director/fișier special/fifo/socket)

· Atribute (drepturi de acces) - 10

ID proprietarul fișierului

· ID de grup al proprietarului fișierului

· Timpul de creare a fișierului

Ora de modificare a fișierului

· Ora ultimului acces la fișier

· Lungimea fișierului

· Numărul de link-uri către un anumit i-node din diferite directoare

Adrese de bloc de fișiere

!Notă. Nu există un nume de fișier aici

Să aruncăm o privire mai atentă asupra modului în care este organizat blocarea adresei, în care se află fișierul. Deci, în câmpul de adresă există numere ale primelor 10 blocuri ale fișierului.

Dacă fișierul depășește zece blocuri, atunci următorul mecanism începe să funcționeze: al 11-lea element al câmpului conține numărul blocului, care conține 128 (256) link-uri către blocurile acestui fișier. Dacă fișierul este și mai mare, atunci se folosește al 12-lea element al câmpului - conține numărul blocului, care conține 128(256) numere de bloc, unde fiecare bloc conține 128(256) numere de bloc ale sistemului de fișiere. Și dacă fișierul este și mai mare, atunci se folosește al 13-lea element - unde adâncimea de imbricare a listei este mărită cu alta.

Astfel putem obține un fișier de dimensiune (10+128+128 2 +128 3)*512.

Aceasta poate fi reprezentată după cum urmează:

Adresa blocului 1 al dosarului

Adresa blocului 2 al dosarului

Adresa blocului 10 al dosarului

Adresă de bloc de adresare indirectă (bloc cu 256 de adrese de bloc)

Adresa celui de-al doilea bloc de adresare indirectă (bloc cu 256 de blocuri de adrese cu adrese)

Adresa celui de-al treilea bloc de adresare indirectă (bloc cu adrese ale blocurilor cu adrese ale blocurilor cu adrese)

Protecția fișierelor

Acum să ne uităm la ID-urile proprietarului și grupului și biții de securitate.

În sistemul de operare Unix este folosit ierarhia utilizatorilor pe trei niveluri:

Primul nivel este al tuturor utilizatorilor.

Al doilea nivel sunt grupurile de utilizatori. (Toți utilizatorii sunt împărțiți în grupuri.

Al treilea nivel este un utilizator specific (Grupurile sunt formate din utilizatori reali). Datorită acestei organizări pe trei niveluri a utilizatorilor, fiecare fișier are trei atribute:

1) Proprietarul dosarului. Acest atribut este asociat cu un anumit utilizator, care este atribuit automat de către sistem ca proprietar al fișierului. Puteți deveni proprietarul implicit prin crearea unui fișier și există, de asemenea, o comandă care vă permite să schimbați proprietarul unui fișier.

2) Protecția accesului la fișiere. Accesul la fiecare fișier este limitat la trei categorii:

· drepturi de proprietar (ce poate face proprietarul cu acest fișier, în cazul general - nu neapărat totul);

· drepturile grupului din care aparține proprietarul fișierului. Proprietarul nu este inclus aici (de exemplu, un fișier poate fi blocat pentru citire pentru proprietar, dar toți ceilalți membri ai grupului pot citi liber din fișier;

· toți ceilalți utilizatori ai sistemului;

Pentru aceste trei categorii sunt reglementate trei acțiuni: citirea dintr-un fișier, scrierea într-un fișier și executarea unui fișier (în mnemonicii sistemului R, W, X, respectiv). Fiecare fișier din aceste trei categorii definește ce utilizator poate citi, care poate scrie și cine îl poate rula ca proces.

Organizarea directorului

Din punctul de vedere al sistemului de operare, un director este un fișier obișnuit care conține date despre toate fișierele care aparțin directorului.

Un element de director este format din două câmpuri:

1)numărul i-nodului (numărul ordinal din matricea i-nodurilor) și

2)numele fișierului:

Fiecare director conține două nume speciale: ‘.’ - directorul în sine; '..' - Directorul Parinte.

(Pentru directorul rădăcină, părintele se referă la același director.)

În general, un director poate conține mai multe intrări care se referă la același i-node, dar directorul nu poate conține intrări cu aceleași nume. Adică, un număr arbitrar de nume poate fi asociat cu conținutul fișierului. Se numeste legând. Este apelată o intrare de director care se referă la un singur fișier comunicare.

Fișierele există independent de intrările de director, iar linkurile de directoare indică de fapt fișiere fizice. Un fișier „dispare” atunci când ultimul link care indică către el este șters.

Deci, pentru a accesa un fișier după nume, sistem de operare

1. găsește acest nume în directorul care conține fișierul,

2. obține numărul nodului i al fișierului,

3. după număr găsește i-nodul în zona i-nodurilor,

4. de la i-node primește adresele blocurilor în care se află datele fișierului,

5. citește blocuri din zona de date folosind adrese de bloc.

Structura partiției discului în EXT2 FS

Întregul spațiu de partiție este împărțit în blocuri. Un bloc poate avea 1, 2 sau 4 kiloocteți. Un bloc este o unitate adresabilă de spațiu pe disc.

Blocurile din zona lor sunt combinate în grupuri de blocuri. Grupurile de blocuri dintr-un sistem de fișiere și blocurile dintr-un grup sunt numerotate succesiv, începând cu 1. Primul bloc de pe un disc este numerotat cu 1 și aparține grupului numărul 1. Numărul total de blocuri de pe un disc (într-o partiție de disc) este un divizor al capacității discului, exprimat în sectoare. Și numărul de grupuri de blocuri nu trebuie să împartă numărul de blocuri, deoarece ultimul grup de blocuri poate să nu fie complet. Începutul fiecărui grup de blocuri are o adresă, care poate fi obținută ca ((numărul grupului - 1)* (numărul blocurilor din grup)).

Fiecare grup de blocuri are aceeași structură. Structura sa este prezentată în tabel.

Primul element al acestei structuri (superbloc) este același pentru toate grupurile, iar restul sunt individuale pentru fiecare grup. Superblocul este stocat în primul bloc al fiecărui grup de blocuri (cu excepția grupului 1, care are o înregistrare de pornire în primul bloc). Superbloc este punctul de plecare al sistemului de fișiere. Are o dimensiune de 1024 de octeți și este întotdeauna situat la un offset de 1024 de octeți de la începutul sistemului de fișiere. Prezența mai multor copii ale unui superbloc se explică prin importanța extremă a acestui element al sistemului de fișiere. Dublatele Superblock sunt folosite la recuperarea unui sistem de fișiere după eșecuri.

Informațiile stocate în superbloc sunt folosite pentru a organiza accesul la restul datelor de pe disc. Superblocul determină dimensiunea sistemului de fișiere, numărul maxim de fișiere din partiție, cantitatea de spațiu liber și conține informații despre unde să căutați zonele nealocate. Când sistemul de operare pornește, superblocul este citit în memorie și toate modificările aduse sistemului de fișiere sunt mai întâi reflectate într-o copie a superblocului situat în sistemul de operare și sunt scrise pe disc doar periodic. Acest lucru îmbunătățește performanța sistemului, deoarece mulți utilizatori și procese actualizează în mod constant fișierele. Pe de altă parte, atunci când sistemul este oprit, superblocul trebuie scris pe disc, ceea ce nu permite oprirea computerului prin simpla oprire a alimentării. În caz contrar, data viitoare când porniți, informațiile înregistrate în superbloc nu vor corespunde cu starea reală a sistemului de fișiere.

După superbloc este o descriere a grupului de blocuri (Descriptori de grup). Această descriere conține:

Adresa blocului care conține bitmap-ul bloc al acestui grup;

Adresa blocului care conține bitmap-ul inodelor acestui grup;

Adresa blocului care conține tabelul de inoduri a acestui grup;

Contor al numărului de blocuri libere din acest grup;

Numărul de inoduri libere din acest grup;

Numărul de inoduri dintr-un grup dat care sunt directoare

si alte date.

Informațiile stocate în descrierea grupului sunt folosite pentru a localiza hărțile de bit bloc și inode, precum și tabelul de inoduri.

Sistemul de fișiere Ext 2 se caracterizează prin:

  • structura ierarhica,
  • prelucrarea coordonată a seturilor de date,
  • extensie de fișier dinamic,
  • protecția informațiilor din fișiere,
  • tratarea dispozitivelor periferice (cum ar fi terminalele și dispozitivele cu bandă) ca fișiere.

Reprezentarea fișierelor interne

Fiecare fișier din sistemul Ext 2 are un index unic. Indexul conține informațiile necesare oricărui proces pentru a accesa fișierul. Procesează fișierele de acces utilizând un set bine definit de apeluri de sistem și identificând fișierul cu un șir de caractere care acționează ca un nume de fișier calificat. Fiecare nume compus identifică în mod unic un fișier, astfel încât nucleul de sistem convertește acest nume într-un index de fișier.Indexul include un tabel de adrese unde informațiile despre fișiere sunt localizate pe disc. Deoarece fiecare bloc de pe un disc este adresat de propriul său număr, acest tabel stochează o colecție de numere de bloc de disc. Pentru a crește flexibilitatea, nucleul adaugă un fișier câte un bloc, permițând ca informațiile fișierului să fie împrăștiate în sistemul de fișiere. Dar acest aspect complică sarcina de căutare a datelor. Tabelul de adrese conține o listă de numere de bloc care conțin informații aparținând fișierului.

Fișier inode

Fiecare fișier de pe disc are un inode de fișier corespunzător, care este identificat prin numărul său de serie - indexul fișierului. Aceasta înseamnă că numărul de fișiere care pot fi create pe un sistem de fișiere este limitat de numărul de inoduri, care este fie specificat în mod explicit atunci când este creat sistemul de fișiere, fie calculat pe baza dimensiunii fizice a partiției discului. Inodele există pe disc în formă statică, iar nucleul le citește în memorie înainte de a lucra cu ele.

Inodul fișierului conține următoarele informații:

- Tipul și drepturile de acces la acest fișier.

Identificatorul proprietarului fișierului (Uid proprietar).

Dimensiunea fișierului în octeți.

Ora ultimului acces la fișier (Timp de acces).

Timpul de creare a fișierului.

Ora ultimei modificări a fișierului.

Timp de ștergere a fișierului.

ID grup (GID).

Linkurile contează.

Numărul de blocuri ocupate de fișier.

Steaguri de fișiere

Rezervat pentru OS

Indicatori către blocuri în care sunt scrise datele fișierului (un exemplu de adresare directă și indirectă în Fig. 1)

Versiunea fișierului (pentru NFS)

fișier ACL

Director ACL

Fragment de adresa

Numărul fragmentului

Dimensiunea fragmentului

Cataloagele

Directoarele sunt fișiere.

Nucleul stochează datele într-un director la fel ca într-un tip de fișier obișnuit, folosind o structură de index și blocuri cu niveluri de adresare directă și indirectă. Procesele pot citi date din directoare în același mod în care citesc fișierele obișnuite, cu toate acestea, accesul exclusiv de scriere la director este rezervat de nucleu, asigurându-se că structura directorului este corectă.)

Când un proces folosește o cale de fișier, nucleul caută în directoare numărul inodul corespunzător. După ce numele fișierului a fost convertit într-un număr de inod, inodul este plasat în memorie și apoi utilizat în cererile ulterioare.

Caracteristici suplimentare ale EXT2 FS

Pe lângă caracteristicile standard Unix, EXT2fs oferă câteva caracteristici suplimentare care nu sunt acceptate de obicei de sistemele de fișiere Unix.

Atributele fișierelor vă permit să schimbați modul în care nucleul reacționează atunci când lucrați cu seturi de fișiere. Puteți seta atribute pe un fișier sau director. În al doilea caz, fișierele create în acest director moștenesc aceste atribute.

În timpul montării sistemului, unele caracteristici legate de atributele fișierului pot fi setate. Opțiunea de montare permite administratorului să aleagă cum sunt create fișierele. Într-un sistem de fișiere specific BSD, fișierele sunt create cu același ID de grup ca și directorul părinte. Caracteristicile Sistemului V sunt ceva mai complexe. Dacă un director are setat bitul setgid, atunci fișierele create moștenesc identificatorul de grup al acelui director, iar subdirectoarele moștenesc identificatorul de grup și bitul setgid. În caz contrar, fișierele și directoarele sunt create cu ID-ul de grup principal al procesului de apelare.

Sistemul EXT2fs poate utiliza modificarea sincronă a datelor similară cu sistemul BSD. Opțiunea de montare permite administratorului să specifice ca toate datele (inoduri, blocuri de biți, blocuri indirecte și blocuri de director) să fie scrise pe disc în mod sincron atunci când sunt modificate. Acest lucru poate fi folosit pentru a obține o capacitate mare de înregistrare a datelor, dar are ca rezultat și performanțe slabe. În realitate, această funcție nu este folosită de obicei deoarece, pe lângă degradarea performanței, poate duce la pierderea datelor utilizatorului care nu sunt semnalizate la verificarea sistemului de fișiere.

EXT2fs vă permite să selectați dimensiunea blocului logic atunci când creați un sistem de fișiere. Poate avea o dimensiune de 1024, 2048 sau 4096 de octeți. Utilizarea blocurilor mai mari are ca rezultat operațiuni I/O mai rapide (deoarece se fac mai puține solicitări de disc) și, prin urmare, mai puțină mișcare a capului. Pe de altă parte, utilizarea blocurilor mari duce la irosirea spațiului pe disc. De obicei, ultimul bloc al unui fișier nu este utilizat complet pentru stocarea informațiilor, astfel încât, pe măsură ce dimensiunea blocului crește, cantitatea de spațiu pe disc irosită crește.

EXT2fs vă permite să utilizați legături simbolice accelerate. Când se utilizează astfel de legături, blocurile de date ale sistemului de fișiere nu sunt utilizate. Numele fișierului destinație nu este stocat în blocul de date, ci în inodul în sine. Această structură vă permite să economisiți spațiu pe disc și să accelerați procesarea legăturilor simbolice. Desigur, spațiul rezervat unui mâner este limitat, așa că nu orice legătură poate fi reprezentată ca o legătură accelerată. Lungimea maximă a unui nume de fișier într-o legătură accelerată este de 60 de caractere. În viitorul apropiat, este planificată extinderea acestei scheme pentru fișiere mici.

EXT2fs monitorizează starea sistemului de fișiere. Nucleul folosește un câmp separat în superbloc pentru a indica starea sistemului de fișiere. Dacă sistemul de fișiere este montat în modul citire/scriere, atunci starea acestuia este setată la „Necurat”. Dacă este demontat sau remontat în modul numai citire, atunci starea sa este setată la „Clean”. În timpul verificărilor de pornire a sistemului și a stării sistemului de fișiere, aceste informații sunt utilizate pentru a determina dacă este necesară o verificare a sistemului de fișiere. Nucleul plasează, de asemenea, unele erori în acest domeniu. Când nucleul detectează o nepotrivire, sistemul de fișiere este marcat ca „Eroșit”. Verificatorul sistemului de fișiere testează aceste informații pentru a verifica sistemul, chiar dacă starea acestuia este de fapt Curățat.

Ignorarea testării sistemului de fișiere pentru o perioadă lungă de timp poate duce uneori la unele dificultăți, așa că EXT2fs include două metode pentru verificarea regulată a sistemului. Superblocul conține contorul de montare a sistemului. Acest contor este incrementat de fiecare dată când sistemul este montat în modul citire/scriere. Dacă valoarea sa atinge maximul (este stocat și în superbloc), atunci programul de testare a sistemului de fișiere începe să o verifice, chiar dacă starea sa este „Clean”. Ora ultimei verificări și intervalul maxim dintre verificări sunt de asemenea stocate în superbloc. Când intervalul maxim dintre scanări este atins, starea sistemului de fișiere este ignorată și scanarea acestuia este pornită.

Optimizarea performanței

Sistemul EXT2fs conține multe caracteristici care îi optimizează performanța, ceea ce duce la o viteză crescută de schimb de informații la citirea și scrierea fișierelor.

EXT2fs utilizează în mod activ tamponul de disc. Când un bloc trebuie citit, nucleul emite o cerere de operare I/O către mai multe blocuri adiacente. Astfel, nucleul încearcă să se asigure că următorul bloc de citit a fost deja încărcat în memoria tampon de disc. Astfel de operațiuni sunt de obicei efectuate atunci când se citesc fișierele secvenţial.

Sistemul EXT2fs conține, de asemenea, un număr mare de optimizări pentru plasarea informațiilor. Grupurile de blocuri sunt folosite pentru a grupa împreună inodurile și blocurile de date corespunzătoare. Nucleul încearcă întotdeauna să plaseze blocurile de date ale unui fișier în același grup, precum și descriptorul acestuia. Acest lucru este destinat să reducă mișcarea capetelor de acționare la citirea descriptorului și a blocurilor de date corespunzătoare.

Când scrieți date într-un fișier, EXT2fs pre-aloca până la 8 blocuri învecinate atunci când aloca un bloc nou. Această metodă vă permite să obțineți performanțe ridicate în condiții de încărcare mare a sistemului. Acest lucru permite, de asemenea, plasarea fișierelor în blocuri învecinate, ceea ce accelerează citirea lor ulterioară.