ext2 | |
---|---|
Dezvoltator | Card Remy |
Sistemul de fișiere | Al doilea sistem de fișiere extins |
Data depunerii | ianuarie 1993 ( Linux ) |
etichetă de volum |
Apple_UNIX_SVR2 ( Apple Partition Map ) 0x83 ( Master Boot Record ) EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ( GPT ) |
Structura | |
Conținutul folderului | Masa |
Plasarea fișierului | Bitmap (spațiu liber), Tabel ( metadate ) |
Sectoare rele | Tabel (folosește același tabel ca și pentru fișiere) |
Restricții | |
Dimensiunea maximă a fișierului | 16 GB - 2 TB |
Numărul maxim de fișiere | 10 18 |
Lungimea maximă a numelui fișierului | 255 de octeți |
Dimensiunea maximă a volumului | 2-32 TB |
Caractere valide în titluri | Orice octet, cu excepția NULL și „/” |
Capabilități | |
Proprietăți | Timp de modificare (mtime), timpul de modificare a metadatelor (ctime), ora ultimului acces (atime) |
Interval de date | 14 decembrie 1901 – 18 ianuarie 2038 |
Precizia stocării datei | 1 secundă |
Drepturi de acces | POSIX |
Comprimarea fundalului | nu (disponibil prin patch-uri) |
Criptare în fundal | Nu |
Sistem de operare acceptat | Linux , BSD , Mac OS X (prin IFS ) |
Al doilea sistem de fișiere extins (literal: „al doilea sistem de fișiere extins” ), prescurtat ext2 (uneori ext2fs ) este sistemul de fișiere kernel Linux . A fost dezvoltat de Remy Card pentru a înlocui ext . În ceea ce privește viteza și performanța, poate servi drept etalon în testele de performanță a sistemului de fișiere . Deci, în testele pentru viteza de citire și scriere secvențială efectuate de Dell TechCenter , sistemul de fișiere ext2 depășește ext3 și este doar inferior celui mai modern ext4 în testul de citire [1] .
Principalul dezavantaj al ext2 (și unul dintre motivele pentru care funcționează atât de bine) este că nu este un sistem de fișiere de jurnal . A fost eliminat în sistemul de fișiere ext3 , următoarea versiune a sistemului de fișiere extins , care este pe deplin compatibil cu ext2. Dar pentru ssd, acesta este mai degrabă un plus, deoarece prelungește durata de viață a unității. Acesta este motivul principal pentru care EXT2 este încă susținut de Anaconda și Ubiquity.
Sistemul de fișiere ext2 este încă folosit pe carduri flash și unități cu stare solidă (SSD), deoarece lipsa jurnalului este un avantaj atunci când lucrați cu unități care au o limită a numărului de cicluri de scriere.
La începuturile sale, Linux a folosit sistemul de fișiere Minix OS . A fost destul de stabil, dar a rămas pe 16 biți și, ca urmare, a avut o limită strictă de 64 MB per partiție. A existat și o limitare a lungimii maxime a unui nume de fișier: era de 14 caractere. Acestea și alte limitări au fost impulsul pentru dezvoltarea „ Extended File System ” ( Sistemul de fișiere extins în engleză ), rezolvând două dintre principalele probleme ale Minix. Noul sistem de fișiere a fost introdus în aprilie 1992 . Ext a extins limitele de dimensiune a fișierului la 2 gigaocteți [2] și a stabilit o limită de nume de fișier de 255 de octeți.
Cu toate acestea, existau încă multe probleme nerezolvate: nu exista suport pentru acces separat, marcaje temporale pentru modificarea datelor. Aceste probleme au fost cele care au inspirat crearea următoarei versiuni a sistemului de fișiere extins ext2 ( English Second Extended File System ), dezvoltat în ianuarie 1993 . ext2 a implementat, de asemenea, ACL-uri compatibile cu POSIX și atribute de fișier extinse .
Graficul care descrie ierarhia directoarelor sistemului de fișiere ext2 este o rețea. Motivul pentru această organizare este că un fișier poate fi inclus în mai multe directoare simultan.
Toate tipurile de fișiere au nume simbolice. Trei tipuri de nume sunt utilizate în mod obișnuit în sistemele de fișiere organizate ierarhic : simple, compuse și relative. ext2 nu face excepție. Restricțiile privind un nume simplu sunt că lungimea acestuia nu trebuie să depășească 255 de octeți, iar numele nu trebuie să conțină un caracter NUL și o bară oblică . Restricțiile privind caracterul NUL sunt legate de reprezentarea șirurilor de caractere în limbajul C și de caracterul slash, deoarece este folosit ca caracter separator între directoare.
Numele complet calificat este un lanț de nume simbolice simple ale tuturor directoarelor prin care trece calea de la rădăcină la fișierul dat . Pe un sistem de fișiere ext2 , un fișier poate fi în mai multe directoare și, prin urmare, poate avea mai multe nume complet calificate; aici este valabilă corespondența „un fișier – multe nume complete”. În ambele cazuri, numele complet calificat identifică în mod unic fișierul.
Atributele unui sistem de fișiere ext2 sunt:
Atributele fișierelor nu sunt stocate în directoare, așa cum se face într-un număr de sisteme de fișiere simple , ci în tabele speciale . Ca rezultat, un director are o structură foarte simplă constând din doar două părți: un număr de inod și un nume de fișier.
Ca și în cazul oricărui sistem de fișiere UNIX , următoarele componente pot fi distinse în ext2:
Întregul spațiu de partiție al discului este împărțit în blocuri de dimensiuni fixe care sunt multipli ai dimensiunii sectorului : 1024, 2048, 4096 sau 8192 octeți. Mărimea blocului este specificată atunci când se creează un sistem de fișiere pe o partiție de disc. O dimensiune mai mică a blocului economisește spațiu pe hard disk, dar limitează și dimensiunea maximă a sistemului de fișiere. Toate blocurile au numere de serie. Pentru a reduce fragmentarea și numărul de mișcări ale capului de hard disk la citirea matricelor mari de date, blocurile sunt combinate în grupuri de blocuri.
Conceptul de bază al unui sistem de fișiere este un inod sau inode ( nod de informații ) . Aceasta este o structură specială care conține informații despre atributele și locația fizică a unui fișier. Inodele sunt organizate într-un tabel care este conținut la începutul fiecărui grup de blocuri.
Superblocul este elementul principal al sistemului de fișiere ext2 . Conține informații generale despre sistemul de fișiere:
Superblocul este de 1024 de octeți de la începutul secțiunii. Următorul bloc după superbloc conține tabelul de descriptor global - o descriere a grupurilor de blocuri, care este o matrice care conține informații generale despre toate grupurile de blocuri din secțiune.
Sănătatea sistemului de fișiere depinde direct de integritatea superblocului. Sistemul de operare creează mai multe copii de rezervă ale superblocului în cazul în care partiția este coruptă . Indicatorul de stat este utilizat de sistemul de operare pentru a determina starea curentă a sistemului de fișiere. Dacă sistemul de fișiere este montat în citire, atunci indicatorul de stare va indica faptul că sistemul de fișiere este curat (stare „curată”). Dacă sistemul de fișiere este montat pentru citire și scriere, atunci indicatorul de stare este umplut cu informații că sistemul de fișiere este în uz (starea „nu este curată”), iar după demontarea sistemului de fișiere, indicatorul de stare ar trebui să indice din nou integritatea sistemul de fișiere [3] . Indicatorul de stare ajută la identificarea posibilelor corupții ale sistemului de fișiere. De exemplu, dacă alimentarea computerului a fost oprită în mod neașteptat, atunci indicatorul de stare ar indica o închidere incorectă a sistemului de fișiere. La următoarea pornire a computerului, sistemul de operare va trebui să verifice sistemul de fișiere pentru erori dacă indicatorul de stare nu indică integritatea sistemului de fișiere.
Toate blocurile de pe o partiție ext2 sunt combinate în grupuri de blocuri. Pentru fiecare grup, o intrare separată este creată în tabelul de descriptor global, care stochează parametrii principali:
Un bitmap de bloc este o structură, fiecare bit indicând dacă blocul corespunzător acestuia este atribuit unui fișier. Dacă bitul este 1, atunci blocul este ocupat. O funcție similară este realizată de bitmap-ul inodelor, care arată care inoduri sunt ocupate și care nu. Nucleul Linux , folosind numărul de inoduri care conțin directoare, încearcă să distribuie uniform inoduri de director în grupuri și încearcă să mute inode de fișier în grupul cu directorul părinte, dacă este posibil. Tot spațiul rămas, indicat în tabel ca date , este rezervat pentru stocarea fișierelor.
Directoarele pot conține alte directoare sau fișiere în ele. Din punct de vedere fizic, un director este un fișier special care conține intrări de lungime arbitrară. Fiecare intrare stochează următoarele date [3] :
Această organizare a directorului vă permite să stocați în el nume lungi de fișiere fără a pierde spațiu pe disc.
Când sistemul de operare încearcă să găsească locația unui fișier (sau director) pe disc, încarcă în memorie conținutul fiecărui director specificat în calea fișierului (sau a directorului) la rândul său pentru a găsi inodul următorului director specificat în calea [3] după nume . Parcurgerea directorului continuă până când este găsit fișierul sau directorul dorit.
Sistemul de adresare a datelor este una dintre cele mai importante componente ale sistemului de fișiere. Ea este cea care vă permite să găsiți fișierul dorit printre multele blocuri atât goale, cât și ocupate de pe disc .
Sistemul de fișiere ext2 utilizează următoarea schemă de adresare a blocurilor de fișiere. Pentru a stoca adresa fișierului, sunt alocate 15 câmpuri, fiecare dintre ele format din 4 octeți . Dacă fișierul se încadrează în 12 blocuri, atunci numerele clusterelor corespunzătoare sunt listate direct în primele douăsprezece câmpuri ale adresei. Dacă dimensiunea fișierului depășește 12 blocuri, atunci câmpul următor conține adresa clusterului în care pot fi localizate numerele blocurilor următoare ale fișierului. Astfel, al 13-lea câmp este folosit pentru adresare indirectă.
Cu o dimensiune maximă a blocului de 4096 de octeți, clusterul corespunzător celui de-al 13-lea câmp poate conține până la 1024 de numere de bloc următoare în fișier. Dacă dimensiunea fișierului depășește 12+1024 de blocuri, atunci este utilizat al 14-lea câmp, care conține adresa unui cluster care conține 1024 de numere de cluster, fiecare dintre ele se referă la 1024 de blocuri ale fișierului. Aici se utilizează adresarea indirectă dublă. În cele din urmă, dacă fișierul conține mai mult de 12+1024+1048576 blocuri, atunci ultimul al 15-lea câmp este utilizat pentru tripla indirectă.
Acest sistem de adresare permite, cu o dimensiune maximă a blocului de 4096 de octeți, să aibă fișiere mai mari de 2 TB .
Sisteme de fișiere ( listă , comparație ) | |||||||
---|---|---|---|---|---|---|---|
Disc |
| ||||||
Distribuit (rețea) | |||||||
Special |
|