ext4
ext4 est le successeur du système de fichiers ext3, principalement destiné aux systèmes basés sur GNU/Linux.
ext4 | |
Nom anglais | Fourth extended file system |
---|---|
Introduction | Stable: Instable: (Linux 2.6.28, 2.6.19) |
Identificateur de partition | 0x83 |
Structure | |
Contenu des répertoires | liste chaînée, arbre h |
Allocation de fichiers | extent, bitmap |
Mauvais blocs | Table |
Limitations | |
Taille maximale de fichier | 16 Tio |
Nombre maximal de fichiers | 4 milliards |
Taille maximale du nom de fichiers | 255 octets |
Taille maximale de volume | 1 Eio (limité à 16Tio par e2fsprogs) |
Caractères autorisés dans les noms de fichiers | Tous les caractères Unicode sauf NUL et '/' |
Fonctionnalités | |
Dates enregistrées | Modification (mtime), modification d'attribut (ctime), accès (atime), suppression (dtime), création (crtime) |
Plage de dates | 14 décembre 1901 à 25 avril 2514 |
Attributs | extents, noextents, mballoc, nomballoc, delalloc, nodelalloc, data=journal, data=ordered, data=writeback, commit=nrsec, orlov, oldalloc, user_xattr, nouser_xattr, acl, noacl, bsddf, minixdf, bh, nobh, journal_dev |
Permissions | POSIX |
Compression intégrée | Non |
Chiffrement intégré | Oui (depuis 2015) |
Il garde une compatibilité avec son prédécesseur et est considéré par ses propres concepteurs comme une étape intermédiaire devant mener à un vrai système de fichiers de nouvelle génération tel que Btrfs[1]. Toutefois, ext4 est une étape utile et non une simple solution temporaire.
Histoire
C'est à la fin du mois de que la discussion sur le développement d'une amélioration d'ext3 apparaît [2], c'est ext3dev. Une fois stabilisé, il change de nom pour devenir ext4dev.
Il est rendu public le par Andrew Morton et est inclus à titre expérimental dans la version 2.6.19 du noyau Linux, sortie le [3].
À compter de la version 2.6.28 du noyau, le système est considéré comme stable et à cette occasion change de nom : ext4dev devient ext4 pour être adopté par les utilisateurs[4].
Deux principales raisons ont poussé les développeurs à passer de ext3 à ext4 et non de faire une évolution de ext3 [5] :
- la volonté de ne pas compliquer le code de ext3 déjà relativement complexe et changeant parfois de comportement suivant les contextes. Il a donc été jugé plus propre de partir sur une base neuve.
- faire évoluer ext3 rendait temporairement instable la définition du système de fichiers. Plusieurs intervenants, comme Linus Torvalds, ont jugé la stabilité d'ext3 trop importante pour qu'on l'expose à des anomalies.
Fonctionnalités
Outre le fait qu'il puisse gérer les volumes d'une taille allant jusqu'à un exbioctet (260 octets), la fonctionnalité majeure de ext4 est l'allocation par extent qui permettent la pré-allocation d'une zone contiguë pour un fichier, pour minimiser la fragmentation. L'option extent est active par défaut depuis le noyau Linux 2.6.23 ; avant cela, elle devait être explicitement indiquée lors du montage de la partition. Par exemple :
mount /dev/sda1 /mnt/point -t ext4dev -o extents
Le système de fichiers ext4 a une compatibilité ascendante avec ext3. C'est-à -dire qu'une partition ext3 peut toujours être montée comme ext4 (en utilisant le type de système de fichiers « ext4 » lors du montage). L'inverse est possible, à la condition que la partition ext4 n'ait jamais utilisé l'allocation par extents pour enregistrer des fichiers, mais l'allocation binaire comprise par ext3. Cette capacité de ext4 d'utiliser les formats de ext3 existe pour faciliter la conversion des partitions ext3 vers ext4.
Accès depuis Windows et Mac OS
Le contenu des partitions ou fichiers images de partitions (comme ceux utilisés par Wubi) formatés en ext4 sont accessibles en lecture seule sous Windows en utilisant le logiciel libre ext2read[6] (ext2explore) ou LinuxReader, ou encore en lecture/écriture via le logiciel libre ext2fsd[7].
Mac OS X supporte les systèmes de fichiers ext2/3/4 en lecture/écriture à travers le logiciel Paragon ExtFS, qui est un produit commercial. Le logiciel libre ext4fuse - disponible via homebrew[8] - ne les supporte qu'en lecture seule avec des fonctionnalités limitées.
Notes et références
- (en) Theodore Tso, « Btrfs mainline plans », (consulté le )
- (en) Discussion sur l'établissement d'un plan de développement d'ext3dev
- (en) Annonce du support de ext4
- (en) « ext4: Rename ext4dev to ext4 », sur Kernel.org, (consulté le )
- Matthieu Barthélemy et Éric Lacombe, « Kernel Corner : Vers l'ext4... », Linux Magazine France, no 86,‎ , p. 13
- Ext2read
- Ext2Fsd
- Homebrew