Ext2
ext2 | |
---|---|
Dati generali | |
Sviluppatore | Rémy Card |
Nome completo | Second extended file system |
Introduzione | gennaio 1993 Linux |
Identificatore della partizione | Apple_UNIX_SVR2 (Apple Partition Map)0x83 (MBR)EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
|
Struttura | |
Allocazione dei file | I-nodes |
Limiti | |
Dimensione massima di un file | 2 TiB |
Numero massimo di file | 1018 |
Dimensione massima del nome di un file | 255 caratteri |
Dimensione massima del volume | 16 TiB |
Caratteri permessi nel nome di un file | Ogni byte tranne NUL e '/' |
Caratteristiche | |
Fork | Si |
Permessi file system | POSIX |
Compressione trasparente | Si (opzionale) |
Crittografia trasparente | No |
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.
Attualmente è supportato da tutti i sistemi operativi open source ed esistono programmi per utilizzare i volumi ext2 anche da sistemi proprietari come Microsoft Windows, come Explore2fs, (senza supporto Microsoft) e macOS.
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. Questa superiorità in termini di prestazioni la deve anche al fatto che i più moderni filesystem di questo tipo come ext3 implementano una funzionalità chiamata journaling che aumenta la loro integrità ma a discapito dell'efficienza.
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 per lo più 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 distribuito 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 |
Bibliografia
- (EN) Card, Rémy. & Ts'o, Theodore. & Tweedie, Stephen, Design and implementation of the second extended filesystem, in Proceedings of the First Dutch International Symposium on Linux., 1994, ISBN 90-367-0385-9.
Voci correlate
Articoli
- (EN) John Newbigin, John's spec of the second extended filesystem (archiviato dall'url originale il 16 febbraio 2007).
- (EN) Dave Poirier, The Second Extended File System: Internal Layout, 2001.
- (EN) Theodore Ts'o and Stephen Tweedie, Planned Extensions to the Linux Ext2/Ext3 Filesystem, USENIX 2002 Annual Technical Conference, giugno 2002.
Collegamenti esterni
- (EN) ext2fs user-space tools, su e2fsprogs.sourceforge.net.
- (EN) ext2 driver for Mac OS X
- (EN) ext2fsd for Win2000 & greater (read/write), su ext2fsd.sourceforge.net.
- (EN) Win2fs An open source ext2 File-system driver for Windows. Lets you mount and access (read, write) ext2 file-systems under Windows (NT/2000/XP).
- (EN) Ext2 Installable File System For Windows ext2/ext3 file system driver for MS Windows NT/2000/XP/Vista/7/8/8.1/2003/2008/2008R2/2012/2012R2 (supports read & write). Freeware.
- (EN) WinExt2Fsd ext2 file system driver for MS Windows NT/2000/XP (x86 and x86_64, supports read & write)
- (EN) EXT2 IFS ext2/ext3 file system driver for MS Windows NT/2000/XP (open source, doesn't support writing)
- (EN) Explore2fs An explorer-like GUI tool for accessing ext2/ext3 filesystems under MS Windows. Free software (GNU License).
- (EN) e2compr transparent compression for the ext2 filesystem