Cloop
# Cloop

cloop (compressed loop device) ist ein Modul für den Linux-Kernel. Es ist eine Art Erweiterung des Loop devices, das Unterstützung für transparent entkomprimierte Blockgeräte schafft. Es ist jedoch kein komprimiertes Dateisystem, sondern bezieht sich nur auf Loop devices, zum Beispiel Dateien, die ein Dateisystem enthalten.

cloop wurde ursprünglich von Rusty Russell für die Linuxcare Bootable Business Card geschrieben, wird heutzutage jedoch von Klaus Knopper verwaltet, der es für die Live-Linux-Distribution Knoppix verwendet. Wegen der durchschnittlichen Kompressionsrate von etwa 2,5 zu 1 (für normale Software) eignet sich das Verfahren sehr gut für LiveCDs. Das Knoppix Cloop-Abbild ist beispielsweise 700 MB groß und umfasst etwa 1,8 GB komprimierte Software.

## Aussehen eines cloop-Abbildes

Ein cloop-Abbild enthält:

* ein Shellskript (mit mount-Kommandos für das Abbild)
* einen Header mit der Größe eines unkomprimierten Blocks und der Anzahl der Blöcke des cloop-Mediums
* ein Array mit den Offsets der komprimierten Datenblöcke (Die Größe eines komprimierten Datenblockes ist die Differenz zwischen dem Offset des Nachfolgeblocks und dem Offset des aktuellen Blocks.)
* die komprimierten Datenblöcke

Die Datenblöcke sind separat komprimiert. Damit ist es möglich, einzelne Blöcke auszulesen, ohne das gesamte Abbild vorher zu dekomprimieren. Dies spart erheblich Arbeitsspeicher, geht jedoch auf Kosten der Zugriffsgeschwindigkeit sowie der Gesamtkompressionsrate. LiveCD-Abbilder haben in der Regel eine Blockgröße von 256 kB, was einen guten Kompromiss zwischen Zugriffszeit und Speichereffizienz darstellt.

Als Kompressionmethoden werden zlib (LZ77 Deflate) und 7zip (LZMA) unterstützt.

