Il file system ext2 (Second Extended Filesystem) è uno dei file system più diffusi nei vari sistemi operativi open source, in quanto è stato per lungo tempo quello usato dai sistemi GNU/Linux.

ext2
Dati generali
SviluppatoreRémy Card
Nome completoSecond extended file system
Introduzionegennaio 1993 Linux
Identificatore della partizioneApple_UNIX_SVR2 (Apple Partition Map)
0x83 (MBR)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
Struttura
Allocazione dei fileI-nodes
Limiti
Dimensione massima di un file2 TiB
Numero massimo di file1018
Dimensione massima del nome di un file255 caratteri
Dimensione massima del volume16 TiB
Caratteri permessi nel nome di un fileOgni byte tranne NUL e '/'
Caratteristiche
ForkSi
Permessi file systemPOSIX
Compressione trasparenteSi (opzionale)
Crittografia trasparenteNo

Attualmente è supportato da tutti i sistemi operativi open source e esistono programmi per utilizzare i volumi ext2 anche da sistemi proprietari come Microsoft Windows (senza supporto Microsoft) e Mac OS X.

Benché le sue caratteristiche tecniche lo rendano obsoleto, il suo uso è ancora diffuso per via delle sue buone prestazioni e della grande stabilità che ha dimostrato negli anni. Ext2 non è dotato di nessun tipo di journaling.

Inoltre, sebbene nel momento della sua prima scrittura la dimensione massima di un volume fosse di 2GB, ora ext2 supporta volumi di 4TB.

Ext2 è stato sostituito da una versione più recente, Ext3 che introduce delle importanti caratteristiche mantenendo la compatibilità completa. L'ultima evoluzione del filesystem (Ext4) introduce modifiche più sostanziali che possono rendere un filesystem Ext4 incompatibile con un filesystem Ext2.

Storia

Agli inizi dello sviluppo del Kernel di Linux, veniva usato il file system Minix. Il file system Minix era privo di bug, ma usava offset a 16 bit e per questo era limitato a soli 64 megabytes. Aveva pure una lunghezza massima dei nomi di file di 14 caratteri. A causa di queste limitazioni, si iniziò a progettare un file system nativo per Linux.

Per facilitare l'aggiunta di nuovi file system e fornire una API, fu aggiunto al kernel un layer per file system virtuali: VFS. Un file system, extended file system (ext), fu rilasciato nell'aprile 1992 come il primo file system che utilizzava l'API VFS ed era compreso nel Kernel 0.96c. Il file system ext risolveva i due maggiori problemi del file system Minix, la massima dimensione della partizione e la lunghezza massima dei nomi di file, permettendo partizioni grandi 2 gigabytes e nomi di file lunghi fino a 255 caratteri. Aveva alcuni difetti: non aveva il supporto ad accessi separati, non permetteva modifiche agli inode e ai timestamp dei file.

Questi problemi vennero risolti introducendo due nuovi file system, usciti nel gennaio 1993: xiafs ed il second extended file system (ext2), che era un potenziamento dell'extended file system, prendendo alcune idee dal Berkeley Fast File System. Ext2 è stato progettato in modo da essere estendibile.

Da allora ext2 è stato esteso varie volte:ACLs POSIX ed attributi estesi.

Il file system ext2 permette partizioni grandi 4 terabytes, lunghezza di nomi fino a 255 caratteri e blocchi di dimensioni variabili.

I file

Lo spazio è suddiviso in blocchi e organizzato in gruppi di blocchi. Ciò doveva servire a ridurre la frammentazione interna e minimizzare i movimenti della testina del disco durante la lettura di molti dati consecutivi.

All'interno di ogni gruppo di blocchi ci sono i superblock, group descriptor, block bitmap, inode bitmap, infine seguiti dai blocchi dei dati.

Il superblock contiene informazioni importanti per l'avvio del sistema operativo, per cui vengono fatte copie di backup in ogni gruppo dei blocchi. Solo la prima copia viene utilizzata per l'avvio.

Il descrittore del gruppo memorizza il valore del block bitmap, inode bitmap e l'inizio della tabella degli inode per ogni gruppo dei blocchi.

Limiti del file system

Dimensione del blocco: 1 KiB 2 KiB 4 KiB 8 KiB
Dimensione massima del file: 16 GiB 256 GiB 2 TiB 2 TiB
Dimensione massima del filesystem: 2 TiB 8 TiB 16 TiB 32 TiB
Limiti sotto Linux

Bibliografia

Voci correlate

Articoli

Collegamenti esterni

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica