SquashFS

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

SquashFS (.sfs) ist ein von Phillip Lougher entwickeltes, freies (GPL), komprimiertes Dateisystem für GNU/Linux-Betriebssysteme, welches nur lesbar ist. SquashFS komprimiert Dateien, Inodes und Verzeichnisse, und unterstützt zur besseren Komprimierung Blockgrößen bis zu 1 MiB. Der Zugriff darauf erfolgt über ein Kernel-Modul, als Virtuelles Dateisystem.

SquashFS ist als universelles, nur lesbares Dateisystem gedacht, z. B. als Alternative zu komprimierten Verzeichnisstrukturen (z. B. .tar.gz-Archiven), oder in Anwendungen, in denen nur eine geringe Speicherkapazität vorhanden ist (z. B. in eingebetteten Systemen).

Zur Datenkompression wird standardmäßig Deflate (zlib) verwendet, wobei auch Unterstützung für den Lempel-Ziv-Markow-Algorithmus (LZMA) vorhanden ist[1], der wesentlich bessere Komprimierungsverhältnisse erlaubt.

  • Squashfs speichert die komplette Benutzer- und Gruppenkennung (UID/GID) und die Zeit der Dateierstellung.
  • Theoretisch werden Dateien bis zu 16 Exabyte (2^{64} Bytes) unterstützt.
  • Inode- und Verzeichnisdaten sind stark komprimiert. Jeder Inode hat dabei durchschnittlich eine Länge von 8 Byte. Die exakte Länge variiert mit dem Dateityp, z. B. Verzeichnis, symbolische Verknüpfung etc.
  • SquashFS kann mit Blockgrößen bis zu 1 MiB benutzt werden (Standardwert 128KiB).[2] Je größer die Blockgröße gewählt wird, desto höher sind die Kompressionsraten.
  • Dateien, die mehrfach vorhanden sind, werden nur einmal gespeichert.
  • Es werden Big- und Little-Endian-Architekturen unterstützt.

Zu SquashFS gibt es einen Satz Werkzeuge, die squashfs-tools, die unter anderen mksquashfs (zur Erzeugung eines Dateisystems) und unsquashfs enthalten.

SquashFS wird häufig zusammen mit UnionFS verwendet, um temporär auch Schreibzugriff auf Dateien zu erhalten.

openSUSE verwendet ab der Beta-Version 1 von openSUSE 10.3 squashfs als Dateisystem für das Installationssystem.

Geschichte[Bearbeiten]

Am 23. Oktober 2002 wurde die erste Version (1.0) veröffentlicht. Mit Version 3.3 wurde die effiziente Behandlung von Sparse-Dateien hinzugefügt.[2] Nachdem sich die SquashFS-Entwickler bereits mehrfach um die Aufnahme des Dateisystems in den Linux-Kernel bemüht hatten, hielt Version 4 des SquashFS-Codes schließlich in die am 23. März 2009 veröffentlichte Version 2.6.29 des Kernels Einzug, nachdem sich Linus Torvalds aufgrund der verbreiteten Nutzung dafür aussprach.[3] Aktuell ist Version 4.2 vom 28. Februar 2011 und ab Version 2.6.29 im Linux-Kernel integriert.

Siehe auch[Bearbeiten]

  • CramFS, ein älteres, einfacheres vergleichbares Dateisystem

Einzelnachweise[Bearbeiten]

  1. Official Squashfs LZMA. Abgerufen am 21. November 2011 (englisch).
  2. a b Phillip Lougher: [ANN] Squashfs 3.3 released. 1.2. Sparse files are now supported. 5. November 2007, abgerufen am 21. November 2011 (englisch).
  3. Thorsten Leemhuis: Kernel-Log – Was 2.6.29 bringt: Btrfs, SquashFS, Ext4 ohne Journal und neue Storage-Treiber. Kürbis-Dateisystem. In: heise online. 10. März 2009, S. 2, abgerufen am 21. November 2011.

Weblinks[Bearbeiten]