Est2
| est2 | |
|---|---|
| Sviluppatore | Carta Remy |
| File system | Secondo file system esteso |
| Data di presentazione | Gennaio 1993 ( Linux ) |
| etichetta di volume |
Apple_UNIX_SVR2 ( Mappa partizione Apple ) 0x83 ( Master Boot Record ) EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ( GPT ) |
| Struttura | |
| Contenuto della cartella | Tavolo |
| Posizionamento dei file | Bitmap (spazio libero), Tabella ( metadati ) |
| Settori danneggiati | Tabella (usa la stessa tabella dei file) |
| Restrizioni | |
| Dimensione massima del file | 16 GB - 2 TB |
| File massimi | 10 18 |
| Lunghezza massima del nome file | 255 byte |
| Dimensione massima del volume | 2-32 TB |
| Caratteri validi nei titoli | Qualsiasi byte tranne NULL e '/' |
| Capacità | |
| Proprietà | Ora di modifica (mtime), ora di modifica dei metadati (ctime), ora dell'ultimo accesso (atime) |
| Intervallo di date | 14 dicembre 1901-18 gennaio 2038 |
| Precisione di archiviazione della data | 1 secondo |
| Diritti di accesso | POSIX |
| Compressione in background | no (disponibile tramite patch) |
| Crittografia in background | No |
| Sistema operativo supportato | Linux , BSD , Mac OS X (tramite IFS ) |
Il secondo file system esteso (letteralmente: "secondo file system esteso" ), abbreviato ext2 (a volte ext2fs ) è il file system del kernel Linux . È stato sviluppato da Remy Card per sostituire l'allora esistente ext . In termini di velocità e prestazioni, può fungere da punto di riferimento nei test delle prestazioni del file system . Quindi, nei test per la velocità di lettura e scrittura sequenziale condotti da The Dell TechCenter , il file system ext2 supera ext3 ed è solo inferiore al più moderno ext4 nel test di lettura [1] .
Lo svantaggio principale di ext2 (e uno dei motivi per cui funziona così bene) è che non è un filesystem di journaling . È stato eliminato nel file system ext3 , la versione successiva di Extended File System , che è completamente compatibile con ext2. Ma per SSD, questo è piuttosto un vantaggio, poiché prolunga la vita dell'unità. Questo è il motivo principale per cui EXT2 è ancora supportato da Anaconda e Ubiquity.
Il file system ext2 è ancora utilizzato su schede flash e unità a stato solido (SSD), poiché la mancanza di journaling è un vantaggio quando si lavora con unità che hanno un limite al numero di cicli di scrittura.
Storia
All'inizio, Linux utilizzava il file system del sistema operativo Minix . Era abbastanza stabile, ma rimaneva a 16 bit e di conseguenza aveva un limite rigido di 64 MB per partizione. C'era anche una limitazione sulla lunghezza massima di un nome di file: era di 14 caratteri. Queste ed altre limitazioni furono l'impulso per lo sviluppo dell'" Extended File System " ( English Extended File System ), risolvendo due dei principali problemi di Minix. Il nuovo file system è stato introdotto nell'aprile 1992 . Ext ha esteso i limiti di dimensione del file a 2 gigabyte [2] e ha impostato un limite per il nome del file di 255 byte.
Tuttavia, c'erano ancora molti problemi irrisolti: non c'era supporto per l'accesso separato, timestamp per la modifica dei dati. Sono stati questi problemi che hanno ispirato la creazione della versione successiva del file system esteso ext2 ( inglese Second Extended File System ), sviluppato nel gennaio 1993 . ext2 ha anche implementato ACL compatibili con POSIX e attributi di file estesi .
L'organizzazione logica del filesystem ext2
Il grafico che descrive la gerarchia di directory del filesystem ext2 è una rete. Il motivo di questa organizzazione è che un file può essere incluso in più directory contemporaneamente.
Tutti i tipi di file hanno nomi simbolici. Tre tipi di nomi sono comunemente usati nei file system organizzati gerarchicamente : semplice, composto e relativo. ext2 non fa eccezione. Le restrizioni su un nome semplice sono che la sua lunghezza non deve superare i 255 byte e il nome non deve contenere un carattere NUL e una barra . Le restrizioni sul carattere NUL sono legate alla rappresentazione di stringhe nel linguaggio C , e sul carattere slash, perché viene utilizzato come carattere separatore tra le directory.
Il nome completo è una catena di semplici nomi simbolici di tutte le directory attraverso le quali passa il percorso dalla radice al file specificato . In un file system ext2 , un file può trovarsi in più directory e quindi avere più nomi completi; qui vale la corrispondenza "un file - molti nomi completi". In entrambi i casi, il nome completo identifica il file in modo univoco.
Gli attributi di un filesystem ext2 sono:
- tipo di file e permessi ,
- proprietario, gruppo di accesso,
- informazioni sulle operazioni consentite ( ACL ),
- ora di creazione, data dell'ultimo accesso, data dell'ultima modifica e ora dell'ultima eliminazione,
- dimensione del file,
- specifica del file:
- file normale,
- directory ,
- file di dispositivo orientato ai byte,
- bloccare il file del dispositivo,
- pipa denominata ,
- collegamento simbolico ,
- numero di blocchi occupati ,
- Altro.
Gli attributi dei file non sono archiviati in directory, come avviene in un certo numero di semplici file system , ma in tabelle speciali . Di conseguenza, una directory ha una struttura molto semplice composta solo da due parti: un numero di inode e un nome di file.
Organizzazione interna del filesystem ext2
Struttura della partizione del disco
Come con qualsiasi file system UNIX , i seguenti componenti possono essere distinti in ext2:
- blocchi e gruppi di blocchi;
- inode ;
- superblocco.
L'intero spazio di partizione del disco è diviso in blocchi di dimensioni fisse che sono multipli della dimensione del settore : 1024, 2048, 4096 o 8192 byte. La dimensione del blocco viene specificata durante la creazione di un file system su una partizione del disco. Una dimensione del blocco più piccola consente di risparmiare spazio sul disco rigido, ma limita anche la dimensione massima del file system. Tutti i blocchi hanno numeri di serie. Per ridurre la frammentazione e il numero di movimenti della testina del disco rigido durante la lettura di array di dati di grandi dimensioni, i blocchi vengono combinati in gruppi di blocchi.
Il concetto di base di un file system è un inode, o inode ( nodo di informazioni ) . Questa è una struttura speciale che contiene informazioni sugli attributi e sulla posizione fisica di un file. Gli inode sono organizzati in una tabella contenuta all'inizio di ogni gruppo di blocchi.
Superblocco
Il superblocco è l'elemento principale del file system ext2 . Contiene informazioni generali sul file system:
- il numero totale di blocchi e inode nel file system,
- il numero di blocchi e inode liberi nel file system,
- dimensione del blocco del file system,
- il numero di blocchi e inode in un gruppo di blocchi,
- dimensione dell'inodo,
- identificatore del file system (numero magico 0xEF53 per la famiglia ext di file system),
- data dell'ultimo controllo del file system,
- il numero di montature fatte,
- flag di stato del file system [3] .
Il superblocco è a 1024 byte dall'inizio della sezione. Il blocco successivo dopo il superblocco contiene la tabella del descrittore globale, una descrizione dei gruppi di blocchi, che è un array contenente informazioni generali su tutti i gruppi di blocchi nella sezione.
L'integrità del file system dipende direttamente dall'integrità del superblocco. Il sistema operativo crea diverse copie di backup del superblocco nel caso in cui la partizione sia danneggiata . Il flag di stato viene utilizzato dal sistema operativo per determinare lo stato corrente del file system. Se il filesystem è montato in lettura, il flag di stato indicherà che il filesystem è pulito (stato "pulito"). Se il file system è montato per la lettura e la scrittura, il flag di stato viene riempito con le informazioni che il file system è in uso (stato "non pulito") e, dopo aver smontato il file system, il flag di stato dovrebbe nuovamente indicare l'integrità di il file system [3] . Il flag di stato aiuta a identificare il possibile danneggiamento del file system. Ad esempio, se il computer è stato spento in modo imprevisto, il flag di stato indicherebbe un arresto errato del file system. Al successivo avvio del computer, il sistema operativo dovrà verificare la presenza di errori nel file system se il flag di stato non indica l'integrità del file system.
Blocca gruppi
Tutti i blocchi su una partizione ext2 vengono combinati in gruppi di blocchi. Per ogni gruppo viene creata una voce separata nella tabella del descrittore globale, che memorizza i parametri principali:
- numero di blocco nella bitmap del blocco,
- il numero di blocco nella bitmap dell'inode ,
- il numero di blocco nella tabella degli inode ,
- il numero di blocchi liberi nel gruppo,
- il numero di inode contenenti directory.
Una bitmap di blocco è una struttura, ogni bit della quale indica se il blocco corrispondente è assegnato a qualsiasi file. Se il bit è 1, il blocco è occupato. Una funzione simile è svolta dall'inode bitmap, che mostra quali inode sono occupati e quali no. Il kernel Linux , utilizzando il numero di inode contenenti directory, tenta di distribuire uniformemente gli inode di directory in gruppi e, se possibile, tenta di spostare gli inode di file nel gruppo con la directory padre. Tutto lo spazio rimanente, indicato nella tabella come data , è riservato alla memorizzazione dei file.
Cataloghi
Le directory possono contenere altre directory o file al loro interno. Fisicamente, una directory è un file speciale contenente voci di lunghezza arbitraria. Ogni voce memorizza i seguenti dati [3] :
- numero di file inode ,
- dimensione del record,
- lunghezza del nome file,
- Nome del file.
Questa organizzazione della directory consente di memorizzare in essa nomi di file lunghi senza sprecare spazio su disco.
Quando il sistema operativo tenta di trovare la posizione di un file (o directory) su disco, carica in memoria il contenuto di ciascuna directory specificata nel percorso del file (o directory) per trovare l'inode della directory successiva specificata nel percorso [3] per nome . L'esplorazione della directory continua finché non viene trovato il file o la directory desiderati.
Sistema di indirizzamento dati
Il sistema di indirizzamento dei dati è uno dei componenti più importanti del file system. È lei che ti permette di trovare il file desiderato tra i tanti blocchi sia vuoti che occupati sul disco .
Il filesystem ext2 utilizza il seguente schema di indirizzamento dei blocchi di file. Per memorizzare l'indirizzo del file vengono allocati 15 campi, ognuno dei quali è composto da 4 byte . Se il file è contenuto in 12 blocchi, i numeri dei cluster corrispondenti vengono elencati direttamente nei primi dodici campi dell'indirizzo. Se la dimensione del file supera i 12 blocchi, il campo successivo contiene l'indirizzo del cluster in cui si possono trovare i numeri dei blocchi successivi del file. Pertanto, il 13° campo viene utilizzato per l'indirizzamento indiretto.
Con una dimensione massima del blocco di 4096 byte, il cluster corrispondente al 13° campo può contenere fino a 1024 numeri di blocco successivi nel file. Se la dimensione del file supera 12+1024 blocchi, viene utilizzato il 14° campo, che contiene l'indirizzo di un cluster contenente 1024 numeri di cluster, ognuno dei quali fa riferimento a 1024 blocchi del file. Qui viene utilizzato il doppio indirizzamento indiretto. Infine, se il file contiene più di 12+1024+1048576 blocchi, l'ultimo 15° campo viene utilizzato per il triplo indiretto.
Questo sistema di indirizzamento consente, con una dimensione massima del blocco di 4096 byte, di avere file di dimensioni superiori a 2 TB .
Vedi anche
- Elenco dei file system
- Confronto di file system
- File system esteso
- file system ext3
- file system ext4
- R.saver - programma per accedere a ext2 da Windows
Note
- ↑ Un confronto tra prestazioni Ext2, Ext3 ed Ext4 (inglese) (link non disponibile) . Dell TechCenter (29 marzo 2010). Estratto il 7 novembre 2010. Archiviato dall'originale il 25 agosto 2011.
- ^ M. Tim Jones. Anatomia di ext4. Incontra il quarto file system esteso (link inaccessibile) . Sviluppatore IBMWorks (30 giugno 2009). Estratto il 6 luglio 2010 . Archiviato dall'originale il 25 agosto 2011.
- ^ 1 2 3 4 Carta di Remy, Theodore Ts'o, Stephen Tweedie. Design and Implementation of the Second Extended Filesystem (inglese) (link non disponibile) . e2fsprogs.sourceforge.net. Estratto l'8 ottobre 2016 Archiviata dall'originale il 4 febbraio 2012.
Letteratura
- Chris Kaspersky. "La guerra dei mondi: ext2 vs ext3" // Hacker: diario. - 2006. - N. 86 . - S. 108 .
Collegamenti
- Documentazione per ext2 (inglese) (link non disponibile) . Archiviato dall'originale il 25 agosto 2011.
- Strumenti utente per ext2 (inglese) (link non disponibile) . Archiviato dall'originale il 25 agosto 2011.
- Driver per MS Windows NT/2000/XP (ext2fsd) (inglese) (link non disponibile) . Archiviato dall'originale il 25 agosto 2011.
- Driver per Mac OS X (inglese) (link non disponibile) . Archiviato dall'originale il 25 agosto 2011.
- Dispositivo di basso livello del file system EXT2 (russo)