Was ist eine GZ-Datei?
Eine GZ-Datei ist ein komprimiertes Archiv, das mit dem standardmäßigen Komprimierungsalgorithmus gzip (GNU zip) erstellt wird. Es kann mehrere komprimierte Dateien, Verzeichnisse und Datei-Stubs enthalten. Dieses Format wurde ursprünglich entwickelt, um Komprimierungsformate auf UNIX-Systemen zu ersetzen. und ist immer noch einer der häufigsten Archivtypen auf Linux-Systemen. Anwendungen wie WinZip können GZ-Dateien öffnen, um ihren Inhalt sowohl unter Windows als auch unter MacOS anzuzeigen.
GZ-Dateiformat - Weitere Informationen
Gzip verwendet den DEFLATE-Algorithmus zur Komprimierung von Archiven und unterscheidet sich vom ZIP-Archivformat durch die Anwendung des Komprimierungsalgorithmus auf das vollständige Archiv statt einzelner Dateien. Die von der Internet Engineering Task Force (IETF) veröffentlichte GZIP-Dateiformatspezifikation Version 4.3 enthält detaillierte Informationen zum Dateiformat. Das Dateiformat besteht aus:
- Dateikopf
- Optionale Header
- Komprimierte Daten
- Datei-Fußzeile
Header der GZ-Datei
Der Header der GZ-Datei besteht aus 10 Bytes wie folgt:
| Offset | Größe | Wert | Beschreibung |
|---|---|---|---|
| 0 | 2 | 0x1f 0x8b | Magische Nummer zur Identifizierung des Dateityps |
| 2 | 1 | Kompressionsmethode * 0-7 (Reserviert) * 8 (Entleeren) | |
| 3 | 1 | Datei-Flags | |
| 4 | 4 | 32-Bit-Zeitstempel | |
| 8 | 1 | Komprimierungs-Flags | |
| 9 | 1 | Betriebssystem-ID |
Datei-Flags
| Wert | Bezeichner | Beschreibung |
|---|---|---|
| 0x01 | FTEXT | Wenn gesetzt, müssen die unkomprimierten Daten als Text statt als Binärdaten behandelt werden. Dieses Flag weist auf die Konvertierung am Zeilenende für plattformübergreifende Textdateien hin, erzwingt sie jedoch nicht. |
| 0x02 | FHRCC | Die Datei enthält eine Header-Prüfsumme (CRC-16) |
| 0x04 | FEXTRA | Die Datei enthält zusätzliche Felder |
| 0x08 | FNAME | Die Datei enthält einen ursprünglichen Dateinamen-String |
| 0x10 | FCOMMENT | Die Datei enthält einen Kommentar |
| 0x20 | Reserviert | |
| 0x40 | Reserviert | |
| 0x80 | Reserviert |
Betriebssystem
| Wert | Beschreibung |
|---|---|
| 0 | FAT-Dateisystem (MS-DOS, OS/2, NT/Win32) |
| 1 | Amiga |
| 2 | VMS (oder OpenVMS) |
| 3 | Unix |
| 4 | VM/CMS |
| 5 | Atari-Nutzungsbedingungen |
| 6 | HPFS-Dateisystem (OS/2, NT) |
| 7 | Macintosh |
| 8 | Z-System |
| 9 | CP/M |
| 10 | TOPS-20 |
| 11 | NTFS-Dateisystem (NT) |
| 12 | QDOS |
| 13 | Eichel RISCOS |
| 255 | unbekannt |
Optionale GZ-Header
Die optionalen zusätzlichen Header sind diejenigen, die durch die Datei-Flags gekennzeichnet sind, und enthalten Informationen wie den ursprünglichen Dateinamen, zusätzliche Felder, Kommentare und Header-Prüfsumme.
Komprimierte Daten
Dieser Abschnitt enthält die komprimierten Daten unter Verwendung des DEFLATE-Komprimierungsalgorithmus.
Fußzeile der GZ-Datei
Der Dateifuß ist 8 Bytes groß und enthält folgende Informationen.
| Offset | Größe | Beschreibung |
|---|---|---|
| 0 | 4 | Prüfsumme (CRC-32) |
| 4 | 4 | Unkomprimierter Datengrößenwert in Byte |