ext4 | |
---|---|
Udvikler | Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleiimp, Theodore Ts'o, Eric Sandeen, Sam Naghshineh og andre |
Filsystem | Fjerde udvidede filsystem |
Indsendelsesdato |
Stabil udgivelse: 21. oktober 2008 Testudgivelse : 10. oktober 2006 ( Linux 2.6.28, 2.6.19) |
volumen etiket |
0x83 ( MBR ) EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ( GPT ) |
Struktur | |
Mappeindhold | Linket liste , B-træ [1] |
Filplacering | Bitmap / Udvidelser |
Dårlige sektorer | bord |
Begrænsninger | |
Maksimal filstørrelse | 16 tebibyte (klyngestørrelse 4 kibibyte ) |
Maksimalt antal filer | 4 milliarder (angivet under oprettelse af filsystem ) |
Maksimal filnavnlængde | 255 bytes |
Maksimal volumenstørrelse | 1 exbibyte (tidligere begrænset til 16 tebibyte på grund af begrænsninger af e2fsprogs version < 1.43, problem løst i ældre versioner) |
Gyldige tegn i titler | alle bytes undtagen NULL og '/' |
Evner | |
Ejendomme | modifikation (mtime), attributmodifikation (ctime), adgang (atime), slet (dtime), create (crtime) |
Datointerval | 14. december 1901 - 25. april 2514 |
Datolagringsnøjagtighed | Nano sekund |
Metadatastrømme | Ikke |
Egenskaber | omfang, 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 |
Adgangsrettigheder | POSIX |
Baggrundskomprimering | Ikke |
Baggrundskryptering | Ikke |
OS understøttet | Linux , Windows ( IFS ) |
ext4 ( engelsk fjerde udvidede filsystem, ext4fs ) er et journaliseringsfilsystem, der hovedsageligt bruges i operativsystemer med en Linux-kerne , oprettet baseret på ext3 i 2006.
Større ændringer i ext4 sammenlignet med ext3:
Den første eksperimentelle implementering blev udgivet af Andrew Morton den 10. oktober 2006 som en patch til Linux-kerner version 2.6.19 [2] .
Sammenlignet med ext3 har ext4 mere adresseplads og hurtigere datahåndtering.
Adresseringssystemet er baseret på omfang . I ext3 blev data adresseret på traditionel vis - blok for blok, og derfor stod systemet over for betydelige begrænsninger, efterhånden som filstørrelserne voksede. Udvidelser gør det muligt at adressere et stort antal ( op til 128 MB ) sammenhængende blokke med en enkelt deskriptor; op til fire grads pointere kan placeres direkte i en inode , nok til små til mellemstore filer.
Der bruges 48-bit bloknumre; med en blokstørrelse på 4 KB tillader dette adressering op til en exbibyte (2 48 ( 4 KB ) = 2 48 (2 2 ) (2 10 ) B = 2 60 B = 1 EB ) .
Tildeling af blokke i grupper ( multiblokallokering ) giver dig mulighed for at reducere niveauet af fragmentering af filsystemet: systemet gemmer information ikke kun om placeringen af frie blokke, men også om antallet af frie blokke placeret efter hinanden, så når ved at allokere plads, finder systemet et fragment, hvori data kan skrives uden fragmentering.
Defragmentering uden afmontering ( online defragmentering ) understøttes af e4defrag-værktøjet , leveret som en del af e2fsprogs-pakken siden 2011 [3] .
Gruppeoptagelse af blokkeForsinket tildeling af blokke ( forsinket tildeling ) giver kun en direkte skrivning til blokenheden, når det er nødvendigt (for eksempel under opkald til synkronisering (), men ikke med hvert opkald til at skrive (), hvilket giver dig mulighed for at skrive blokke ikke én ad gangen tid, men i grupper, hvilket igen minimerer fragmentering og fremskynder blokallokeringsprocessen. Til gengæld er der en øget risiko for tab af data ved pludseligt strømsvigt.
Inode ændringerVed at reservere flere inoder ved oprettelse af en mappe ( eng. directory inodes reservation ) kan du først bruge de reserverede inoder, og kun hvis der ikke er nogen tilbage, udføres den sædvanlige procedure for tildeling af inoder. Standard inodestørrelsen er blevet øget fra 128 (ext3) til 256 bytes, hvilket gjorde det muligt at implementere tidsstempler med nanosekunds præcision ( nanosekundtidsstempler ) og udvide deres rækkevidde (i ext3 er datogrænsen 18. januar 2038, og i ext4 - 25. april 2514 år), tilføje et inodeversionsfelt og understøtte udvidede inodeattributter. Versionsnummeret for en inode kan stige hver gang den ændres, især hvis filsystemet er monteret med [K. 1] : Dette bruges af NFS Version 4 Network File System (NFSv4) dæmoner til at spore filændringer.iversion
Lagring af udvidede attributter (EA) i inode , såsom adgangskontrollister ( ACL'er ), SELinux - attributter og andre, i en inodestruktur forbedrer ydeevnen ved at eliminere attributopslag andre steder . Attributter, som der ikke er nok plads til i inodestrukturen, gemmes i en separat 4 KB blok .
Journalføring og andre funktionerFor journalposteringer implementeres beregningen af kontrolsummer ( engelsk journal checksumming ), som giver dig mulighed for hurtigt at finde og i nogle tilfælde rette systemfejl efter en fejl.
Vedvarende præallokering , i modsætning til ext2 og ext3 (hvor programmer skulle skrive nul bytes til filen), implementeres som et separat systemkald, fallocate() der allokerer blokke til filen og sætter flaget "fyldt med nul bytes" for dem. Når du læser fra en fil, vil programmet modtage nul bytes (ligesom når du læser en sparsom fil ). Når du skriver til en fil, vil flaget "fyldt med nul bytes" blive slettet. I modsætning til sparsomme filer vil skrivning til en sparsom fil aldrig mislykkes på grund af mangel på ledig plads.
Ext4 er blevet understøttet i Linux-kernen siden version 2.6.20. Der er programmer og drivere til at arbejde med ext4 på Windows : Ext2read (i skrivebeskyttet tilstand), Ext2Fsd, Paragon ExtFS til Windows.
Mange Linux-distributioner bruger ext4 som standard filsystem:
ext4-filsystemet har været tilgængeligt til Android siden version 2.3 [5] [6] .
Filsystemer ( liste , sammenligning ) | |||||||
---|---|---|---|---|---|---|---|
Disk |
| ||||||
Distribueret (netværk) | |||||||
Særlig |
|