ext2

file system
Versione del 2 apr 2008 alle 20:34 di Hellis (discussione | contributi) (Annullate le modifiche di Freepenguin (discussione), riportata alla versione precedente di Giancarlodessi)

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

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

Benché le sue caratteristiche tecniche lo rendano obsoleto, il suo uso è ancora diffuso per via delle sue buone prestazioni e alla 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.

Attualmente Ext2 è stato sostituito da una versione più recente Ext3 che introduce delle importanti caratteristiche mantenendo la compatibilità completa.

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 dei 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

Vedere anche

Bibliografia

Articoli

Collegamenti esterni