Ext4

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 8. maj 2022; checks kræver 2 redigeringer .

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:

Historie

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

Funktioner

Sammenlignet med ext3 har ext4 mere adresseplads og hurtigere datahåndtering.

Adresseringssystem

Adresseringssystemet er baseret 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 ) .

Blokke og fragmentering

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 blokke

Forsinket 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 ændringer

Ved 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 funktioner

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

Support i operativsystemer

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:

  • Ubuntu : siden 9.04 tilgængelig for valg efter anmodning fra brugeren, siden 9.10 - som standard;
  • Debian : siden 6.0: tilgængelig for valg, siden 7.0 - bruges som standard;
  • Fedora  : starter fra 9 er tilgængelig for valg, fra 11 til 32 er standard.
  • OpenSUSE : standard siden 11.2;
  • Mandriva Linux : fra version 2010 bruges som standard;
  • Red Hat Enterprise Linux : siden version 6 - som standard [4] ;
  • PCLinuxOS : standard siden 2010.

ext4-filsystemet har været tilgængeligt til Android siden version 2.3 [5] [6] .

Kommentarer

  1. mount -t ext4 /dev/sda2 /mnt/ -o rw,iversion

Noter

  1. Hashed B-træ . Hentet 20. marts 2010. Arkiveret fra originalen 18. juli 2019.
  2. Andrew Mortons officielle meddelelse om inklusion af ext4-support  (eng.) ( txt )  (dødt link) . Arkiveret fra originalen den 7. august 2008.
  3. Inkluder ext4-defragmenteringsværktøj . Hentet 26. august 2014. Arkiveret fra originalen 27. august 2014.
  4. 3.1. Fjerde udvidede filsystem (ext4) Support  // 6.0 Release Notes : Release Notes for Red Hat Enterprise Linux 6 : [ eng. ]  : [ bue. 3. juni 2012 ]. — Red Hat, 2010.
  5. Ts'o, Theodore . Android vil bruge ext4 begyndende med Gingerbread , Thoughts af Ted  (12. december 2010). Arkiveret fra originalen den 15. december 2010. Hentet 20. december 2010.
  6. Android 2.3 Platform Highlights  (engelsk)  (link ikke tilgængeligt) . Android-udviklere (6. december 2010). Dato for adgang: 7. december 2010. Arkiveret fra originalen 21. januar 2012.

Links

  • Ext4 (og Ext2/Ext3) Wiki  (engelsk) ( wiki )  (utilgængeligt link) . kernel.org . Hentet 29. maj 2010. Arkiveret fra originalen 19. maj 2012.
  • Ext4 udviklingsprojekt  (engelsk)  (ikke tilgængeligt link) . bullopensource.org . - Projektside for udvikling af ext4 filsystemet (siden 2009 er denne side ikke længere vedligeholdt) . Dato for adgang: 29. maj 2010. Arkiveret fra originalen 21. januar 2012.