ext4 | |
---|---|
Dezvoltator | Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, Theodore Ts'o, Eric Sandeen, Sam Naghshineh și alții |
Sistemul de fișiere | Al patrulea sistem de fișiere extins |
Data depunerii |
Lansare stabilă: 21 octombrie 2008 Lansare de test: 10 octombrie 2006 ( Linux 2.6.28, 2.6.19) |
etichetă de volum |
0x83 ( MBR ) EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ( GPT ) |
Structura | |
Conținutul folderului | Lista legată , arbore B [1] |
Plasarea fișierului | Bitmap / Extensii |
Sectoare rele | masa |
Restricții | |
Dimensiunea maximă a fișierului | 16 tebibytes (dimensiunea clusterului 4 kibibytes ) |
Numărul maxim de fișiere | 4 miliarde (specificat în timpul creării sistemului de fișiere ) |
Lungimea maximă a numelui fișierului | 255 de octeți |
Dimensiunea maximă a volumului | 1 exbibyte (limitat anterior la 16 tebibytes din cauza limitărilor versiunii e2fsprogs < 1.43, problemă rezolvată în versiunile mai vechi) |
Caractere valide în titluri | toți octeții cu excepția NULL și „/” |
Capabilități | |
Proprietăți | modificare (mtime), modificare atribut (ctime), acces (atime), ștergere (dtime), creare (crtime) |
Interval de date | 14 decembrie 1901 - 25 aprilie 2514 |
Precizia stocării datei | Nano secundă |
Fluxuri de metadate | Nu |
Atribute | extents, noextents, mballoc, nomballoc, delalloc, nodelalloc, data=journal, data=ordered, data=writeback, commit=nrsec, orlov , oldalloc, user_xattr, nouser_xattr, acl, noacl, bsddf, minixdf, bh, nobh, journal_dev |
Drepturi de acces | POSIX |
Comprimarea fundalului | Nu |
Criptare în fundal | Nu |
Sistem de operare acceptat | Linux , Windows ( IFS ) |
ext4 ( al patrulea sistem de fișiere extins în engleză , ext4fs ) este un sistem de fișiere de jurnal utilizat în principal în sistemele de operare cu un nucleu Linux , creat pe baza ext3 în 2006.
Modificări majore în ext4 comparativ cu ext3:
Prima implementare experimentală a fost lansată de Andrew Morton pe 10 octombrie 2006 ca un patch pentru nucleele Linux versiunea 2.6.19 [2] .
În comparație cu ext3, ext4 are mai mult spațiu de adrese și o gestionare mai rapidă a datelor.
Sistemul de adresare se bazează pe extinde . În ext3, datele au fost abordate în mod tradițional - bloc cu bloc și, prin urmare, sistemul s-a confruntat cu restricții semnificative pe măsură ce dimensiunea fișierelor creștea. Extensiunile permit adresarea unui număr mare ( până la 128 MB ) de blocuri învecinate cu un singur descriptor; până la patru indicatori pot fi plasați direct într-un inod , suficient pentru fișiere de dimensiuni mici și medii.
Sunt utilizate numere de bloc de 48 de biți; cu o dimensiune a blocului de 4 KB , aceasta permite adresarea până la un exbibyte (2 48 ( 4 KB ) = 2 48 (2 2 ) (2 10 ) B = 2 60 B = 1 EB ) .
Alocarea blocurilor în grupuri ( alocare multibloc ) vă permite să reduceți nivelul de fragmentare a sistemului de fișiere: sistemul stochează informații nu numai despre locația blocurilor libere, ci și despre numărul de blocuri libere situate unul după altul, deci atunci când alocând spațiu, sistemul găsește un fragment în care datele pot fi scrise fără fragmentare.
Defragmentarea fără demontare ( defragmentare online ) este suportată de utilitarul e4defrag , furnizat ca parte a pachetului e2fsprogs din 2011 [3] .
Înregistrarea de grup a blocurilorAlocarea întârziată a blocurilor ( alocarea întârziată ) oferă o scriere directă pe dispozitivul de blocare numai atunci când este necesar (de exemplu, în timpul apelurilor pentru sincronizare (), dar nu cu fiecare apel pentru a scrie (), ceea ce vă permite să scrieți blocuri nu unul la un loc. timp, dar în grupuri, ceea ce la rândul său minimizează fragmentarea și accelerează procesul de alocare a blocurilor. Pe de altă parte, există un risc crescut de pierdere a datelor în cazul unei căderi bruște de curent.
Modificări inodeRezervarea mai multor inoduri la crearea unui director ( de exemplu directory inodes reservation ) vă permite să utilizați mai întâi inodele rezervate și numai dacă nu mai există niciunul, se efectuează procedura obișnuită de alocare a inodelor. Dimensiunea implicită a inodului a fost mărită de la 128 (ext3) la 256 de octeți, ceea ce a făcut posibilă implementarea marcajelor de timp cu precizie de nanosecundă ( marcate de timp nanosecunde ) și extinderea intervalului lor (în ext3, limita de dată este 18 ianuarie 2038 și în ext4). - 25 aprilie 2514, adaugă un câmp pentru versiunea inodului și acceptă atributele inode extinse. Numărul de versiune al unui inod poate crește de fiecare dată când este schimbat, în special dacă sistemul de fișiere este montat cu [K. 1] : Acesta este utilizat de demonii NFS Version 4 Network File System (NFSv4) pentru a urmări modificările fișierelor.iversion
Stocarea atributelor extinse (EA) în inode , cum ar fi listele de control al accesului ( ACL -uri), atributele SELinux și altele, într-o structură de inod, îmbunătățește performanța prin eliminarea căutărilor de atribute în altă parte . Atributele pentru care nu există suficient spațiu în structura inodului sunt stocate într-un bloc separat de 4 KB .
Jurnal și alte caracteristiciPentru intrările de jurnal, este implementat calculul sumelor de control ( suma de verificare a jurnalului englez ), ceea ce vă permite să găsiți rapid și, în unele cazuri, să corectați erorile de sistem după o defecțiune.
Prealocarea persistentă , spre deosebire de ext2 și ext3 (unde programele trebuiau să scrie zero octeți în fișier), este implementată ca un apel de sistem fallocate() separat care alocă blocuri pentru fișier și setează indicatorul „umplut cu zero octeți” pentru ele. Când citiți dintr-un fișier, programul va primi zero octeți (la fel ca atunci când citiți un fișier rar ). Când scrieți într-un fișier, indicatorul „umplut cu zero octeți” va fi șters. Spre deosebire de fișierele rare, scrierea într-un fișier rar nu va eșua niciodată din cauza lipsei de spațiu liber.
Ext4 a fost acceptat în nucleul Linux începând cu versiunea 2.6.20. Există programe și drivere pentru lucrul cu ext4 pe Windows : Ext2read (în modul numai citire), Ext2Fsd, Paragon ExtFS pentru Windows.
Multe distribuții Linux folosesc ext4 ca sistem de fișiere implicit:
Sistemul de fișiere ext4 este disponibil pentru Android începând cu versiunea 2.3 [5] [6] .
Sisteme de fișiere ( listă , comparație ) | |||||||
---|---|---|---|---|---|---|---|
Disc |
| ||||||
Distribuit (rețea) | |||||||
Special |
|