Ext2

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

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
Limiti sotto Linux

Bibliografia

Voci correlate

Articoli

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
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica