Accueil🇫🇷Chercher

SquashFS

SquashFS est un système de fichiers compressé en lecture seule sous Linux.

SquashFS
Introduction 2002
(Linux)
Limitations
Taille maximale de fichier 16 Eio (264) octets
Taille maximale de volume 16 Eio (264) octets
Fonctionnalités
Compression intégrée gzip LZMA LZO LZMA2 LZ4 Zstd

Il peut être utilisé sur des supports de mémoire flash, CD-ROM ou disque dur pour des systèmes de fichiers disponible en lecture seulement.

Il est notamment employé pour la création de nombreux live CD ainsi qu’en informatique embarquée, en remplacement de cramfs.

Historique

SquashFS a été initialement maintenu comme un jeu de patchs 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 que Btrfs)[2] - [3]. Depuis cet instant, le code noyau de SquashFS est maintenu dans le code source du noyau Linux, tandis que l’outillage dans l’espace utilisateur reste disponible sur la page Sourceforge du projet[4]. Depuis le , le code a migré de Sourceforge vers Github[5].

La version originale de SquashFS utilisait l’algorithme de compression de données « deflate » de gzip. À partir de la version 2.6.34 du noyau Linux, les méthodes LZMA et LZO furent ajoutées[6]. À la venue du noyau Linux 2.6.38, c’est la méthode LZMA2 (également utilisée dans XZ) qui devient disponible[7]. À la venue du noyau Linux 3.19, la méthode LZ4[8]. Enfin, Zstandard fut ajouté dans la version 4.14 du noyau Linux[9].

Fonctionnalités

Le système de fichier a une taille maximale de 16 Eio (264) octets.

Les fichiers peuvent avoir une taille maximale de 16 Eio (264) octets, avant compression. Les doublons sont automatiquement détectés et regroupés à un seul endroit.

SquashFS est capable de compresser les fichiers, les inodes et les rĂ©pertoires (ces deux derniers Ă©tant alignĂ©s sur 8 bits[note 1]). Il supporte une taille de bloc allant de KiB Ă  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 KiB et Ă  un faible taux de compression dĂ» au support de la zlib uniquement.

Les UID et GID 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 un boutisme 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.

Performances

En comparaison avec Zisofs (format ISO 9660 avec l'extension Rock Ridge et une définition des fichiers compressés, généré par le programme "mkzftree"[10]), cloop (en), cramfs et ext3, 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'un CD-ROM ou d'un disque dur[11].

Utilisation

Des logiciels tels que mksquashfs[12] ou gensquashfs[13] permet de générer une image au format SquashFS. Il est ensuite possible de monter l’image à l’aide de la commande mount.

Notes et références

Notes

  1. En moyenne un inode prend 8 octets, mais cela dĂ©pend de la nature du fichier (normal, rĂ©pertoire, lien symbolique, pĂ©riphĂ©rique bloc ou caractère).

Références

  1. (en) « SquashFS CHANGES file », sur github.com (consulté le )
  2. (en) « Linux 2.6.29 », sur kernelnewbies.org, Linux Kernel Newbies (consulté le )
  3. (en) « Btrfs and Squashfs merged into Linux kernel », sur h-online.com, The H Open, (consulté le )
  4. (en) « SquashFS README file », sur sourceforge.net (consulté le )
  5. (en) « Update README regarding GitHub », sur github.com, (consulté le )
  6. (en) « Linux 2.6.34 », sur kernelnewbies.org, Kernel Newbies, (consulté le )
  7. (en) « Linux 2.6.38 », sur kernelnewbies.org, Kernel Newbies, (consulté le )
  8. (en) « Merge of LZ4 compression support to SquashFS », sur git.kernel.org, (consulté le )
  9. (en) « squashfs: Add zstd support », sur git.kernel.org, (consulté le )
  10. (en) « Mkzftree(1) - Linux man page », sur die.net (consulté le ).
  11. http://www.las.ic.unicamp.br/pub/imagineos/imagineos-current/source/k/squashfs-lzma-tools/docs/PERFORMANCE.README
  12. (en) Phillip Lougher, « squashfs-tools: tools to create and extract SquashFS filesystems », sur github.com (consulté le )
  13. (en) David Oberhollenzer, « squashfs-tools-ng: A new set of tools and libraries for working with SquashFS images », sur github.com (consulté le )

Annexes

Articles connexes

  • cramfs, le système de fichiers compressĂ© en lecture seule historique qui a inspirĂ© SquashFS
  • ramfs, le système de fichiers temporaire du noyau Linux

Lien externe

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.