Aus EasyLinux 04/2015

Zip-, Tar-, Rar- und andere Archive

© Maxim Kazmin; 123RF

Gut verpackt

Dateien zu kompromieren, ist nützlich, um Ressourcen wie Plattenplatz oder Internetbandbreite zu schonen. Wir erklären, wie Kompression funktioniert, und vergleichen die gängigen Archivformate.

Sicher haben Sie Begriffe wie „Tarball“ oder „komprimiertes Archiv“ schonmal gehört: Im Linux-Alltag begegnen Ihnen solche Dateien häufig. Auch wenn es auf den ersten Blick nicht so aussieht: Selbst die RPM- oder Deb-Pakete, die OpenSuse- und Ubuntu-Systeme für die Paketverwaltung nutzen, sind komprimierte Software-Archive – wenn auch in einer besonderen Variante. Andere Hersteller verteilen Treiberupdates oder ihre Programme in komprimierten Tar-Archiven. Der Grund für die Nutzung komprimierter Archive ist immer derselbe: Datenkompression ermöglicht es, vorhandene Ressourcen deutlich effizienter zu nutzen. Auf dieselbe Platte passen also mehr komprimierte als unkomprimierte Daten, und auch der Datentransfer über eine Internetverbindung ist schneller, wenn sie komprimierte Daten übertragen.

Die Idee, vorhandene Daten durch geschickte Kompression zu verkleinern, ist dabei so alt wie die Informatik selbst, die Kompressionsformate der Gegenwart haben mit ihren historischen Vorgängern allerdings nicht mehr viel zu tun. Ein Blick auf die Kompressionsurgesteine hilft jedoch dabei, den inneren Mechanismus zu verstehen: Algorithmus-basierte Datenkompression funktioniert nach dem immer gleichen Prinzip, nur die Algorithmen haben sich in den vergangenen Jahren stetig weiter entwickelt. In diesem Artikel erklären wir, welche Kompressionsverfahren es gibt, wie diese funktionieren und welche Algorithmen unter Linux für bestimmte Dateitypen ideal sind. Dabei treten Gzip, Bzip2, Zip, Rar und LZMA gegeneinander an.

Verlustbehaftete und verlustfreie Kompression

Die Frage, wie Kompression eigentlich funktioniert, verlangt nach einer differenzierten Antwort – zwei fundamental unterschiedliche Prinzipien treten gegeneinander an: Auf der einen Seite steht die verlustbehaftete Kompression und auf der anderen die verlustfreie. Beide Kompressionsarten sind Ihnen garantiert schon untergekommen.

Verlustbehaftete Kompression kommt gerne bei Bild- oder Tondokumenten zum Einsatz. Die Idee dabei ist, dass aus dem vorhandenen Rohmaterial solche Sequenzen entfernt werden, die für das menschliche Auge oder das menschliche Ohr nicht erkennbar wären. Typisches Beispiel: Auf eine simple Audio-CD passen im Normalfall 700 MByte Daten, was je nach Liedlänge etwa zehn bis 14 Songs entspricht. Wenn Sie die Lieder der CD per Ripper auf Ihren Computer übertragen und beispielsweise das MP3-Format wählen, sind die einzelnen Lieddateien selbst bei hoher Qualität in der Regel nicht größer als 8 MByte. Selbst geübte Ohren erkennen keinen Unterschied.

Ähnliches gilt für Fotos und Videos: Die RAW-Version eines Fotos, das mit einer digitalen Kamera aufgenommen worden ist, ist unkomprimiert und dadurch schnell mehrere Dutzend Megabyte groß. Nach der üblichen Kompression mit dem JPEG-Algorithmus [1] schrumpft die Datei erheblich, im Schnitt auf 3 MByte bis 6 MByte. Wer mit einer schlechteren Bildqualität leben kann, erreicht auch noch deutlich stärkere Kompression (Abbildung 1). Video-Formate wie MPEG2 oder H.265 [2] arbeiten nach dem gleichen Prinzip.

Abbildung 1: Wie stark der Informationsverlust ist, kann man beim JPEG-Format wählen. Das Bild links oben hat nur ca. ein Zehntel der Größe des Originalbilds (rechts), sieht aber deutlich schlechter aus.
Abbildung 1: Wie stark der Informationsverlust ist, kann man beim JPEG-Format wählen. Das Bild links oben hat nur ca. ein Zehntel der Größe des Originalbilds (rechts), sieht aber deutlich schlechter aus.

Würden Sie allerdings die MP3-Songs aus dem Musikbeispiel wieder auf CD brennen und dabei eine Audio-CD erstellen, wäre die gebrannte CD nicht identisch mit dem Original, von dem Sie die Lieder ursprünglich kopiert haben. Durch die Komprimierung sind Informationen aus den Liedern unwiderruflich verloren gegangen.

Bei der verlustfreien Kompression ist das anders. Sie kommt in der Regel dort zum Einsatz, wo es unerlässlich ist, aus einer komprimierten Datei genau die Daten wiederherzustellen, die vor der Kompression vorhanden waren. Ein Tarball ist ein gutes Beispiel: Wenn Sie auf einem Rechner Dateien in ein Tar-Archiv packen und dieses danach mit gzip komprimieren, können Sie die kleinere Datei auf einen anderen Rechner kopieren und erwarten, dass dort nach dem Dekomprimieren und dem Entpacken des Tarballs exakt die gleichen Daten vorhanden sind, die Sie auf dem ersten Rechner in das Archiv gepackt haben. Verlustfreie Kompression kommt also immer dann zum Einsatz, wenn sich die originalen Daten nicht verändern dürfen.

Von Vergleichen und Algorithmen

Verlustfreie Kompression funktioniert im Grunde recht simpel: Der Kompressionsalgorithmus durchsucht die vorhandenen Daten und überprüft sie auf verschiedene Merkmale hin. Ein solches Merkmal könnte etwa ein Wort sein, das mehrere Male vorkommt: Der Kompressionsalgorithmus könnte dieses lange Wort zum Beispiel durch eine kürzere Zeichenkette ersetzen und sich merken, dass die kürzere Zeichenkette beim Dekomprimieren später wieder durch das eigentliche Wort zu ersetzen ist. Weil dieses Merken in Form eines Wörterbuchs passiert, spricht man von der „Wörterbuchmethode“. Diese Methode liegt fast allen modernen Kompressionsalgorithmen zugrunde.

Dabei gibt es eine direkte Korrelation zwischen der Effizienz des Algorithmus‘ und dem Aufwand, den der jeweilige Algorithmus verursacht. Besonders gute Algorithmen sorgen auf der einen Seite für eine beachtliche Reduktion der Größe der ursprünglichen Datei, müssen im Gegenzug aber diese auch besonders gründlich untersuchen und ein entsprechend großes Wörterbuch anlegen. Das schlägt sich unmittelbar auf die Zeit nieder, die für das Komprimieren nötig ist. Grundsätzlich gilt: Je effizienter der Algorithmus, desto länger dauert die Kompression und desto CPU-intensiver ist der Vorgang. Gerade auf langsamen Systemen brauchen Bzip2 oder LZMA bei großen Dateien eine ganze Weile für ihr Werk. Auch auf modernen Computern mit viel CPU-Leistung sind die Unterschiede noch zu bemerken.

Algorithmen und Archive

Bevor wir uns mit den einzelnen Kompressionsalgorithmen und ihrer Wirksamkeit beschäftigen, geben wir noch einen praktischen Hinweis: Die Bezeichnungen der einzelnen Lösungen wie Gzip, Bzip2, Zip oder 7z begegnen Ihnen im Alltag regelmäßig und kommen wild durcheinander zum Einsatz. Tatsächlich gibt es aber einen wichtigen Unterschied: Manche Bezeichnungen beziehen sich auf reine Kompressionsformate (wie Gzip, Bzip2 oder LZMA) während andere Begriffe Archivformate mit oder ohne integrierte Kompression bezeichnen (Tar, Zip, Rar). Der Teufel steckt im Detail: Ein Archivformat dient lediglich dazu, mehrere Dateien in ein einzelnes Archiv zu packen. Dieses ist aber nicht zwangsläufig komprimiert. Der Unix-Allrounder tar legt etwa nicht automatisch ein Archiv mit Kompression an; über Optionen (etwa -z, -j oder -J) aktivieren Sie die Kompression bei Bedarf händisch. Archivformate mit integrierter Kompression sind hingegen automatisch ab Werk komprimiert, das gilt z. B. für Zip, Rar und 7z.

Es kann übrigens durchaus vorkommen, dass Archivformate mit integrierter Kompression dieselben Algorithmen nutzen, die auch in Form eigenständiger Programme verfügbar sind. Das 7z-Archivformat setzt etwa auf den LZMA-Algorithmus, für den auch das Kommandozeilenwerkzeug xz existiert. Mit letzterem lassen sich einzelne Dateien komprimieren, ohne diese vorher in ein Archiv zu stecken.

Gzip: Der Veteran

Grau ist alle Theorie, los geht es mit der Praxis. Am Anfang der Liste von gängigen Kompressionsformaten muss zwangsläufig Gzip stehen, denn das Programm ist ein echter Veteran. Der Name „Gzip“ [3] steht für „GNU Zip“, es handelt sich also um eine Software des GNU-Projekts. Das Licht der Welt erblickte Gzip im Jahr 1992; gedacht war es als Ersatz für das compress-Format früherer Unix-Varianten, weil jenes patentrechtlich geschützt war und für die Nutzung Gebühren anfielen.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
KAUFEN
EasyLinux 04/2015 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: