| SquashFS | |
| Introduction | 2002 (Linux) |
|---|---|
| Limitations | |
| Taille maximale de fichier | 16Eio (264) octets |
| Taille maximale de volume | 16Eio (264) octets |
| Fonctionnalités | |
| Compression intégrée | gzipLZMALZOLZMA2LZ4Zstd |
| modifier | |
SquashFS est unsystème de fichierscompressé en lecture seule sousLinux.
Il peut être utilisé sur des supports demémoire flash,CD-ROM oudisque dur pour des systèmes de fichiers disponible en lecture seulement.
Il est notamment employé pour la création de nombreuxlive CD ainsi qu’eninformatique embarquée, en remplacement decramfs.
SquashFS a été initialement maintenu comme un jeu depatchs en dehors du noyau Linux (out-of-tree). La première version de SquashFS est publiée le[1].
En 2009, SquashFS a été fusionné dans le noyau Linux dans sa version 2.6.29 (en même temps queBtrfs)[2],[3]. Depuis cet instant, le code noyau de SquashFS est maintenu dans lecode source du noyau Linux, tandis que l’outillage dans l’espace utilisateur reste disponible sur la pageSourceforge du projet[4]. Depuis le, le code a migré de Sourceforge versGithub[5].
La version originale de SquashFS utilisait l’algorithme decompression de données « deflate » degzip. À partir de la version 2.6.34 du noyau Linux, les méthodesLZMA etLZO furent ajoutées[6]. À la venue du noyau Linux 2.6.38, c’est la méthodeLZMA2 (également utilisée dansXZ) qui devient disponible[7]. À la venue du noyau Linux 3.19, la méthodeLZ4[8]. Enfin,Zstandard fut ajouté dans la version 4.14 du noyau Linux[9].
Le système de fichier a une taille maximale de 16Eio (264) octets.
Les fichiers peuvent avoir une taille maximale de 16Eio (264) octets, avant compression. Les doublons sont automatiquement détectés et regroupés à un seul endroit.
SquashFS est capable de compresser lesfichiers, lesinodes et lesrépertoires (ces deux derniers étant alignés sur 8 bits[note 1]). Il supporte une taille de bloc allant de 4 KiB à 1 MiB (par défaut 128 Kio) afin d’améliorer le taux de compression. De nombreux algorithmes de compression sont supportés. Cela permet d’atteindre des taux de compression bien meilleurs que son ancêtre cramfs — limité à des blocs de 4 KiB et à un faible taux de compression dû au support de lazlib uniquement.
LesUID etGID sont stockés dans leur forme complète (sur 32 bits) et les dates de création des fichiers sont préservées (là où cramfs tronque le GID aux 8 bits de poids faible et ne stocke aucune date).
Tout comme cramfs, les images au format SquashFS possède unboutisme déterminé lors de leur création : petit-boutisme (little-endian) ou gros-boutisme (big-endian). Ce boutisme doit être choisi pour correspondre à l’architecture ciblée.
En comparaison avec Zisofs (formatISO 9660 avec l'extensionRock Ridge et une définition des fichiers compressés, généré par le programme "mkzftree"[10]),cloop (en),cramfs etext3, SquashFS permet d'occuper moins de place et est plus rapide pour tout type de lecture (contenu des répertoires, lecture séquentielle de fichiers, lecture aléatoire) à partir d'unCD-ROM ou d'undisque dur[11].
Des logiciels tels que mksquashfs[12] ou gensquashfs[13] permettent de générer une image au format SquashFS. Il est ensuite possible de monter l’image à l’aide de la commandemount.