Zum Inhalt springen

ZIP-Dateiformat

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 25. Januar 2007 um 14:49 Uhr durch 217.10.60.85 (Diskussion) (multivolume). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Das ZIP-Dateiformat ist ein offenes Format zur komprimierten Archivierung von Dateien. Die Archivdateien tragen üblicherweise die Endung .zip. Der MIME-Typ ist application/zip.

Geschichte

Es wurde ursprünglich 1989 mit den Programmen PKZIP (komprimieren) und PKUNZIP (dekomprimieren) vom US-Amerikaner Phil Katz eingeführt und hat in der Zwischenzeit einige Erweiterungen erfahren. Katz hatte ursprünglich ein anderes Dateiformat (ARC) benutzt. Dieses Format war von Software Enhancements Associates (SEA) entwickelt worden und wurde als Shareware vertrieben. Katz schrieb eine eigene, deutlich schnellere Version dieser Software und verbreitete sie als PKARC. Als ihn daraufhin SEA verklagte, zog er PKARC zurück und entwickelte stattdessen PKZIP, das einen effizienteren Algorithmus benutzte. Durch die schnelle Verbreitung von PKZIP wurde ARC bedeutungslos, und SEA hörte auf zu existieren.

Merkmale

Container

Das ZIP-Format ist zunächst ein Datencontainer, in den mehrere Dateien nach verschiedenen Methoden komprimiert oder direkt (store) gespeichert werden können. Es ermöglicht daher, mehrere Dateien in einer Archivdatei zu speichern, sowie die Extraktion auch einzelner Dateien aus der Archiv-(Container-)Datei. Darüber hinaus ermöglicht das Format auch das Mitspeichern von Pfadinformationen.

kein solid

Im ZIP-Format sind die Dateien einzeln komprimiert. Das ermöglicht einerseits eine flexible Handhabung (Löschen/Hinzufügen von Dateien aus dem Archiv, ohne alles neu komprimieren zu müssen; Extraktion einzelner Dateien ohne vorangehende Dateien dekomprimieren zu müssen), hat aber den Nachteil, dass Redundanzen zwischen den Dateien bei der Komprimierung nicht berücksichtigt werden können. Dieser Nachteil kann umgangen werden, indem die Dateien zunächst unkomprimiert archiviert werden und die so erzeugte Zip-Datei in eine weitere komprimiert gespeichert wird. (Meist nur bei extrem vielen gleichartigen Dateien sinnvoll.)

multivolume

Es ist weiterhin möglich, das Archiv auf mehrere Dateien zu verteilen (z. B., um große Dateien in Stücke zu teilen, die jeweils auf eine Diskette passen) oder selbstextrahierende Dateien anzulegen (die aber nur auf Systemen mit DOS-Unterstützung funktionieren; auf anderen Systemen kann man sie aber wie eine normale ZIP-Datei behandeln).

Packalgorithmen

Neben der bis zur PKZip-Version 2.x am besten packenden Methode Deflate unterstützt ZIP noch eine Reihe weiterer Kompressionsalgorithmen:

  • 0: Store (Speichern, unkomprimiert)
  • 1: Shrink (obsolet, PKZIP 1.xx)
  • 2:
  • 3:
  • 4:
  • 5:
  • 6: Implode (obsolet, PKZIP 1.xx)
  • 7:
  • 8: Deflate (besteht aus LZ77 und Huffman-Entropiekodierung)
  • 9: Deflate64
  • 10:
  • 11:
  • 12: Bzip2

Erweiterungen

Es existieren mittlerweile nachträglich eingeführte Erweiterungen wie die Zip64-Erweiterung.

Verbreitung, Bedeutung

Das Dateiformat und das Kompressionsverfahren Deflate sind Public Domain und erlangten unter anderem dadurch eine weltweite Verbreitung und Bedeutung. Die Deflate-Methode findet sich als Quasi-Standard in zahlreichen weiteren Formaten (die Bilddateiformate Portable Network Graphics und Tagged Image File Format, das OpenDocument-Format der OpenOffice.org-Bürosuite, und Programmbibliotheken wieder.

Programme

Neben PKZIP existieren zahlreiche andere Programme, die dieses Dateiformat bearbeiten können. Dazu zählen kommerzielle Programme wie die graphische Windows-Shareware WinZip oder freie Programme wie Info-ZIP oder 7-Zip, dessen optimierter Deflate-Algorithmus obendrein geringfügig kleinere PKZIP-2.xx-kompatible Dateien erzeugen kann.

Programm- und Klassenbibliotheken für den Zugriff auf ZIP-Dateien stehen für zahlreiche Programmiersprachen zur Verfügung. So enthält beispielsweise die Java Plattform Standard Edition seit 1997 (Version 1.1) das Paket „java.util.zip“ mit entsprechenden Klassen für Kompression und Dekompression.

Name, Namensverwirrung

Nach Auskunft der Firma PKWare bezieht sich der Name zip = Reißverschluss auf dieses Verpacken von vielen Einzeldateien in einen größeren "Container" und nicht auf die Komprimierungsfunktion des Programms.

Nicht jedes Kompressionsprogramm, dessen Name die Zeichenkette "ZIP" enthält, arbeitet mit dem ZIP-Dateiformat. Die wichtigsten Beispiele sind gzip vom GNU-Projekt und bzip2, die jeweils in einem eigenständigen Format nur eine einzelne Datei komprimieren. Zum Archivieren mehrerer Dateien muss in diesem Fall vor der Komprimierung ein anderes Programm verwendet werden (im Zusammenhang mit gzip und bzip2 meist tar). Auch bei 7-ZIP wird zwar das ZIP-Dateiformat voll unterstuetzt, aber sein eigenes Archivformat 7-ZIP ist nicht mit ZIP kompatibel.

Das Wort "zippen" wird gelegentlich ungeschickt als Synonym für "komprimiert archivieren" verwendet, jedoch muss dabei nicht zwangsläufig das Packen als ZIP-Datei gemeint sein.

Siehe auch