Ext2

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 11 januari 2018; kontroller kräver 12 redigeringar .

ext2
Utvecklaren Remy Card
Filsystem Andra utökade filsystemet
Inlämningsdatum Januari 1993 ( Linux )
volymetikett Apple_UNIX_SVR2 ( Apple Partition Map )
0x83 ( Master Boot Record )
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ( GPT )
Strukturera
Mappinnehåll Tabell
Filplacering Bitmapp (fritt utrymme), tabell ( metadata )
Dåliga sektorer Tabell (använder samma tabell som för filer)
Restriktioner
Maximal filstorlek 16 GB - 2 TB
Maximalt antal filer 10 18
Maximal filnamnslängd 255 byte
Maximal volymstorlek 2-32 TB
Giltiga tecken i titlar Alla byte utom NULL och '/'
Förmågor
Egenskaper Ändringstid (mtime), ändringstid för metadata (ctime), senaste åtkomsttid (atime)
Datumintervall 14 december 1901 – 18 januari 2038
Datumlagringsnoggrannhet 1 sekund
Åtkomsträttigheter POSIX
Bakgrundskomprimering nej (tillgänglig via patchar)
Bakgrundskryptering Nej
OS stöds Linux , BSD , Mac OS X (via IFS )

Second Extended File System (bokstavligen: "andra utökat filsystem" ), förkortat ext2 (ibland ext2fs ) är Linux - kärnfilsystemet . Det utvecklades av Remy Card för att ersätta det då befintliga ext . När det gäller hastighet och prestanda kan det fungera som ett riktmärke i prestandatester för filsystem . Så i tester för sekventiell läs- och skrivhastighet utförda av The Dell TechCenter , går ext2-filsystemet om ext3 och är bara sämre än den modernare ext4 i lästestet [1] .

Den största nackdelen med ext2 (och en av anledningarna till att det fungerar så bra) är att det inte är ett journalfilsystem . Det togs bort i filsystemet ext3 ,  nästa version av Extended File System , som är helt kompatibelt med ext2. Men för ssd är detta snarare ett plus, eftersom det förlänger enhetens livslängd. Detta är den främsta anledningen till att EXT2 fortfarande stöds av Anaconda och Ubiquity.

Ext2-filsystemet används fortfarande på flash-kort och solid state-enheter (SSD), eftersom bristen på journalföring är en fördel när man arbetar med enheter som har en begränsning på antalet skrivcykler.

Historik

I sina tidiga dagar använde Linux filsystemet Minix OS . Den var ganska stabil, men förblev 16-bitars och hade som ett resultat en hård gräns på 64 MB per partition. Det fanns också en begränsning på den maximala längden på ett filnamn: det var 14 tecken. Dessa och andra begränsningar var drivkraften för utvecklingen av det " Utökade filsystemet " ( engelsk  Extended File System ), vilket löste två av huvudproblemen med Minix. Det nya filsystemet introducerades i april 1992 . Ext utökade filstorleksgränserna till 2 gigabyte [2] och satte en filnamnsgräns på 255 byte.

Ändå fanns det fortfarande många olösta problem: det fanns inget stöd för separat åtkomst, tidsstämplar för datamodifiering. Det var dessa problem som inspirerade skapandet av nästa version av det utökade filsystemet ext2 ( Engelska  Second Extended File System ), utvecklat i januari 1993 . ext2 implementerade också POSIX - kompatibla ACL:er och utökade filattribut .

Den logiska organisationen av ext2-filsystemet

Grafen som beskriver kataloghierarkin för ext2-filsystemet är ett nätverk. Anledningen till denna organisation är att en fil kan inkluderas i flera kataloger samtidigt.

Alla filtyper har symboliska namn. Tre typer av namn används vanligtvis i hierarkiskt organiserade filsystem : enkla, sammansatta och relativa. ext2 är inget undantag. Begränsningarna för ett enkelt namn är att dess längd inte får överstiga 255 byte, och namnet får inte innehålla ett NUL-tecken och ett snedstreck . Restriktionerna för NUL-tecknet är relaterade till representationen av strängar i C -språket och på snedstrecket, eftersom det används som ett separatortecken mellan kataloger.

Det fullt kvalificerade namnet är en kedja av enkla symboliska namn på alla kataloger genom vilka sökvägen från roten till den givna filen går . På ett ext2 -filsystem kan en fil finnas i flera kataloger och därmed ha flera fullständigt kvalificerade namn; här är korrespondensen "en fil - många fullständiga namn" giltig. I båda fallen identifierar det fullständigt kvalificerade namnet filen unikt.

Attributen för ett ext2-filsystem är:

Filattribut lagras inte i kataloger, som görs i ett antal enkla filsystem , utan i speciella tabeller . Som ett resultat har en katalog en mycket enkel struktur som bara består av två delar: ett inodnummer och ett filnamn.

Intern organisation av ext2-filsystemet

Diskpartitionsstruktur

Som med alla UNIX -filsystem kan följande komponenter urskiljas i ext2:

Hela diskpartitionsutrymmet är uppdelat i block med fast storlek som är multiplar av sektorstorleken : 1024, 2048, 4096 eller 8192 byte. Blockstorleken anges när ett filsystem skapas på en diskpartition. En mindre blockstorlek sparar hårddiskutrymme, men begränsar också den maximala filsystemstorleken. Alla block har serienummer. För att minska fragmenteringen och antalet hårddiskhuvudrörelser vid läsning av stora datamatriser kombineras block i blockgrupper.

Grundkonceptet för ett filsystem är en inod, eller inod ( informationsnod ) .  Detta är en speciell struktur som innehåller information om attribut och fysisk plats för en fil. Inoderna är organiserade i en tabell som finns i början av varje grupp av block.

Superblock

Superblocket är huvudelementet i ext2 -filsystemet . Den innehåller allmän information om filsystemet:

Superblocket är 1024 byte från början av avsnittet. Nästa block efter superblocket innehåller den globala deskriptortabellen - en beskrivning av blockgrupper, som är en array som innehåller allmän information om alla grupper av block i sektionen.

Filsystemets hälsa beror direkt på superblockets integritet. Operativsystemet skapar flera säkerhetskopior av superblocket om partitionen är skadad . Tillståndsflaggan används av operativsystemet för att bestämma filsystemets aktuella tillstånd. Om filsystemet är läsmonterat, kommer statusflaggan att indikera att filsystemet är rent ("rent" tillstånd). Om filsystemet är monterat för läsning och skrivning fylls statusflaggan med information om att filsystemet används (statusen "ej ren"), och efter avmontering av filsystemet bör statusflaggan återigen indikera integriteten av filsystemet [3] . Statusflaggan hjälper till att identifiera eventuell korruption av filsystemet. Till exempel, om datorns ström oväntat stängdes av, skulle statusflaggan indikera en felaktig avstängning av filsystemet. Nästa gång datorn startar måste operativsystemet kontrollera filsystemet för fel om statusflaggan inte indikerar filsystemets integritet.

Blockera grupper

Alla block på en ext2-partition kombineras till blockgrupper. För varje grupp skapas en separat post i den globala deskriptortabellen, som lagrar huvudparametrarna:

En blockbitmapp är en struktur, vars varje bit indikerar om blocket som motsvarar den är tilldelat någon fil. Om biten är 1 är blocket upptaget. En liknande funktion utförs av inodbitmappen, som visar vilka inoder som är upptagna och vilka som inte är det. Linuxkärnan , med hjälp av antalet inoder som innehåller kataloger, försöker fördela kataloginoder jämnt i grupper och försöker flytta filinoder till gruppen med den överordnade katalogen om möjligt. Allt återstående utrymme, angivet i tabellen som data , är reserverat för lagring av filer.

Kataloger

Kataloger kan innehålla andra kataloger eller filer i dem. Fysiskt sett är en katalog en speciell fil som innehåller poster av godtycklig längd. Varje post lagrar följande data [3] :

Denna organisation av katalogen låter dig lagra långa filnamn i den utan att slösa diskutrymme.

När operativsystemet försöker hitta platsen för en fil (eller katalog) på disken, laddar det innehållet i varje katalog som anges i fil- (eller katalog)-sökvägen till minnet i sin tur för att hitta inoden för nästa katalog som anges i sökväg [3] vid namn . Katalogövergången fortsätter tills önskad fil eller katalog hittas.

Dataadresseringssystem

Dataadresseringssystemet är en av de viktigaste komponenterna i filsystemet. Det är hon som låter dig hitta den önskade filen bland de många både tomma och upptagna blocken på disken .

Ext2-filsystemet använder följande filblocksadresseringsschema. För att lagra filadressen tilldelas 15 fält, som vart och ett består av 4 byte . Om filen ryms i 12 block, listas numren på motsvarande kluster direkt i de första tolv fälten i adressen. Om filstorleken överstiger 12 block, innehåller nästa fält adressen till klustret där numren på nästa block i filen kan finnas. Således används det 13:e fältet för indirekt adressering.

Med en maximal blockstorlek på 4096 byte kan klustret som motsvarar det 13:e fältet innehålla upp till 1024 nästa blocknummer i filen. Om filstorleken överstiger 12+1024 block, används det 14:e fältet, som innehåller adressen till ett kluster som innehåller 1024 klusternummer, som vart och ett refererar till 1024 block i filen. Här används dubbel indirekt adressering. Slutligen, om filen innehåller mer än 12+1024+1048576 block, används det sista 15:e fältet för trippel inriktning.

Detta adresseringssystem tillåter, med en maximal blockstorlek på 4096 byte, att ha filer större än 2 TB .

Se även

Anteckningar

  1. En jämförelse mellan Ext2, Ext3 och Ext4 prestanda  (engelska)  (länk ej tillgänglig) . Dell TechCenter (29 mars 2010). Hämtad 7 november 2010. Arkiverad från originalet 25 augusti 2011.
  2. M. Tim Jones. Anatomi av ext4. Möt det fjärde utökade filsystemet (otillgänglig länk) . IBM developerWorks (30 juni 2009). Hämtad 6 juli 2010. Arkiverad från originalet 25 augusti 2011. 
  3. ↑ 1 2 3 4 Remy Card, Theodore Ts'o, Stephen Tweedie. Design och implementering av det andra utökade filsystemet  (engelska)  (länk ej tillgänglig) . e2fsprogs.sourceforge.net. Hämtad 8 oktober 2016. Arkiverad från originalet 4 februari 2012.

Litteratur

Länkar