GZIP-Archivformat
GZIP ist ein beliebtes Dateiformat und eine beliebte Softwareanwendung zur Dateikomprimierung und -dekomprimierung. Es wurde Anfang der 1990er Jahre von Jean-Loup Gailly und Mark Adler als kostenloser Open-Source-Komprimierungsalgorithmus entwickelt. Der Name „GZIP“ steht für GNU ZIP und weist auf die Verbindung zum GNU-Projekt hin.
Durch die GZIP-Komprimierung wird die Größe von Dateien reduziert, sodass sie einfacher über Netzwerke übertragen oder auf der Festplatte gespeichert werden können. Die Komprimierung wird dadurch erreicht, dass wiederholte Datenzeichenfolgen durch Referenzen ersetzt werden, wodurch Redundanz und Gesamtdateigröße reduziert werden. GZIP ist besonders effizient zum Komprimieren textbasierter Dateien wie HTML, CSS, JavaScript, XML und JSON, kann aber auch zum Komprimieren anderer Dateitypen verwendet werden.
Informationen zu GZIP-Archivinformationen
GZIP-Archivinformationen beziehen sich auf die Metadaten und Daten, die in einer mit dem GZIP-Komprimierungsalgorithmus komprimierten Datei enthalten sind. GZIP-Archive enthalten normalerweise Informationen wie Dateiattribute, Zeitstempel, Komprimierungsmethode und andere relevante Daten, die für die Dekomprimierung und Dateiwiederherstellung erforderlich sind. Diese Metadaten sind entscheidend für die ordnungsgemäße Identifizierung und Verarbeitung der komprimierten Dateien.
Darüber hinaus können die GZIP-Archivinformationen auch Details zum Komprimierungsprozess selbst enthalten, z. B. Komprimierungsstufe, Prüfsummen und alle zusätzlichen Flags oder Optionen, die während der Komprimierung verwendet werden. Diese Informationen sind wichtig, um die Integrität und Korrektheit der komprimierten Daten beim Dekomprimieren sicherzustellen. Insgesamt ist das Verständnis der GZIP-Archivinformationen von entscheidender Bedeutung für die effektive Verwaltung und Arbeit mit komprimierten Dateien, sei es zur Datenspeicherung, Übertragung über Netzwerke oder zu Archivierungszwecken.
Entwicklung des GZIP-Archivformats
Das GZIP-Archivformat hat seine Wurzeln in den späten 1980er Jahren, als Jean-loup Gailly und Mark Adler im Rahmen des GNU-Projekts den GZIP-Komprimierungsalgorithmus entwickelten. GZIP steht für GNU ZIP und spiegelt seinen Ursprung im GNU-Projekt wider. Ziel war es, ein Komprimierungstool zu entwickeln, das die Größe von Dateien effizient reduzieren und gleichzeitig die Kompatibilität zwischen verschiedenen Computersystemen gewährleisten kann.
Jean-loup Gailly und Mark Adler entwickelten das Programm als kostenlose Alternative zum Komprimierungsprogramm, das in frühen Unix-Systemen zu finden war. Es wurde als Teil des GNU-Projekts konzipiert, daher das „g“ in gzip. Die erste Version, Version 0.1, wurde am 31. Oktober 1992 der Öffentlichkeit zugänglich gemacht, gefolgt von Version 1.0 im Februar 1993.
GZIP-Struktur
GZIP nutzt den DEFLATE-Algorithmus, der LZ77- und Huffman-Codierungstechniken kombiniert. DEFLATE wurde entwickelt, um LZW und andere durch Patente belastete Komprimierungsalgorithmen zu ersetzen, die die Wirksamkeit der damals vorherrschenden Komprimierungs- und ähnlichen Archivierungsprogramme einschränkten. Das GZIP-Dateiformat folgt einer klar definierten Struktur, die aus drei Hauptteilen besteht:
- Header (10 Bytes): Dieser Abschnitt enthält wichtige Informationen über das Archiv und seinen Inhalt. Hier ist eine Aufschlüsselung der Header-Daten
- Magische Zahl (4 Bytes): Dies identifiziert die Datei als GZIP-Archiv. Es hat einen bestimmten Hexadezimalwert (1f 8b), den Dekomprimierungstools erkennen.
- Komprimierungsmethode (1 Byte): Dieses Byte enthält normalerweise den Wert 8, was den von GZIP verwendeten DEFLATE-Komprimierungsalgorithmus angibt.
- Header-Flags (1 Byte): Diese Flags steuern bestimmte Aspekte der Dekomprimierung, wie z. B. die Codierung des Dateinamens oder das Vorhandensein eines Kommentars.
- Erstellungszeit (4 Bytes): In diesem Abschnitt wird ein Unix-Zeitstempel gespeichert, der den Zeitpunkt angibt, zu dem das Archiv erstellt wurde.
- CRC-32 (4 Bytes): Dieser Wert der zyklischen Redundanzprüfung wird zur Fehlererkennung während der Dekomprimierung verwendet. Sie wird auf Grundlage der unkomprimierten Daten berechnet und ermöglicht der Dekomprimierungssoftware, die Integrität der extrahierten Dateien zu überprüfen.
Vorteile dieses Formats
- Verlustfreie Komprimierung: GZIP komprimiert Daten ohne Informationsverlust. Im Gegensatz zu einigen Komprimierungstechniken können die Originaldateien nach der Dekomprimierung perfekt wiederhergestellt werden. Dies ist von entscheidender Bedeutung für wichtige Dokumente, Bilder oder Code, bei denen die Aufrechterhaltung der Datenintegrität von entscheidender Bedeutung ist.
- Umfassende Kompatibilität: Eine der größten Stärken von GZIP ist seine weit verbreitete Akzeptanz. Es wird von den meisten Betriebssystemen, Archivdienstprogrammen (WinRAR, 7-Zip) und Webservern unterstützt. Dadurch wird sichergestellt, dass Sie GZIP-Dateien problemlos auf verschiedenen Plattformen öffnen können, ohne dass spezielle Software erforderlich ist. Außerdem wird GZIP von verschiedenen Betriebssystemen umfassend unterstützt, darunter Unix-basierte Systeme, Linux, Windows und macOS. Diese plattformübergreifende Kompatibilität stellt sicher, dass GZIP-komprimierte Dateien nahtlos in verschiedenen Umgebungen erstellt und dekomprimiert werden können.
- Streambare Komprimierung: GZIP unterstützt die Stream-Komprimierung, sodass Dateien im laufenden Betrieb komprimiert oder dekomprimiert werden können, ohne auf die Verarbeitung der gesamten Datei warten zu müssen. Dadurch eignet es sich für Szenarien, in denen kontinuierlich Daten generiert oder übertragen werden, wie z. B. Netzwerkkommunikation und Datensicherungsvorgänge.
- Offener Standard: GZIP ist ein offener und weit verbreiteter Standard für die Dateikomprimierung, dessen Spezifikationen öffentlich verfügbar sind. Diese Offenheit fördert die Interoperabilität und Kompatibilität zwischen verschiedenen Softwareanwendungen und -systemen und fördert ein lebendiges Ökosystem von Tools und Bibliotheken für die Arbeit mit GZIP-komprimierten Dateien. Die Verwendung von GZIP ist im Allgemeinen unkompliziert. Viele Tools und Software komprimieren oder dekomprimieren Dateien in diesem Format automatisch. Darüber hinaus ist der Dekomprimierungsprozess effizient und erfordert nur minimale Ressourcen.
Vom GZIP-Archiv unterstützte Vorgänge
Aspose.ZIP ermöglicht dem Benutzer das Extrahieren eines bestimmten Eintrags oder eines gesamten Archivs. Für Aspose.ZIP für .NET können Sie die GzipArchiveClass verwenden, um die .gz-Datei zu öffnen und dann ihre Einträge zu durchlaufen und sie an einen gewünschten Speicherort zu extrahieren. Für Aspose.ZIP für Java. Ähnlicher Ansatz mit GzipArchive zum Öffnen der .gz-Datei und Extrahieren von Einträgen.
GZIP-Datei – Interne Struktur
Das GZIP-Archiv ist wie ein ordentlich verpacktes Paket. Es beginnt mit einem 10-Byte-Header, der das Format und die Komprimierungsmethode vorstellt. Das Herzstück liegt im komprimierten Datenbereich, der mithilfe cleverer Algorithmen verkleinert wird. Schließlich überprüft eine 8-Byte-Fußzeile die Datenintegrität mit Prüfsummen und stellt so sicher, dass Ihre Dateien nach der Dekomprimierung sicher ankommen.
Innere Archivstruktur
- Dateimetadaten – Ähnlich wie bei einem TAR-Archiv speichert jede Datei grundlegende Informationen wie Änderungszeit und Berechtigungen. Dieser Abschnitt ist jedoch flexibel und ermöglicht je nach Bedarf das Weglassen oder Einfügen zusätzlicher Details wie Zugriffskontrolllisten (ACLs) oder erweiterter Attribute (EAs). Es wird empfohlen, eine starke Hash-Funktion (wie SHA1) für reguläre Dateien einzuschließen, um die Datenintegrität sicherzustellen.
- Mehrere Inhaltsströme – Im Gegensatz zu herkömmlichen Archiven können Dateien mehr als einen Datenstrom innerhalb der inneren Datendatei haben. Dies ist nützlich zum Speichern erweiterter Attribute oder Ressourcenzweige, die mit der Datei verknüpft sind.
- Header – Die innere Indexdatei enthält Dateiheader und spiegelt die in der inneren Datendatei verstreuten Header wider. Bei separater Speicherung müssen die Indexheader jedoch auf die Startposition der entsprechenden Daten innerhalb der Datendatei verweisen. Darüber hinaus listen Verzeichniseinträge im Index ihre enthaltenen Dateien und ihre entsprechenden Offsets innerhalb des inneren Dateiindex auf.
- Begründung für doppelte Metadaten – Diese Designwahl gewährleistet sowohl effizientes Daten-Streaming/-Dekodierung als auch zufälligen Dateizugriff. Darüber hinaus lassen sich Metadaten gut komprimieren, was zu einem minimalen Speicheraufwand führt. Tests zeigen, dass Metadaten normalerweise weniger als 0,3 % des Speicherplatzes belegen, sodass sich der Kompromiss lohnt.
- Blockheader – Blockheader enthalten, ähnlich wie die äußere Datei, Informationen zur Blockgröße und eine eindeutige Kennungssequenz.
Beispiele für die Verwendung von GZIP
Mit der Aspose.ZIP-API können Sie Archive in Ihren Anwendungen extrahieren, ohne dass andere Anwendungen von Drittanbietern erforderlich sind. Die Aspose.ZIP-API stellt die GzipArchive-Klasse für die Arbeit mit GZIP-Archiven bereit.
GZIP with compress only single source via C#
Such archives like GZIP, LZ, BZIP2, XZ, Z do not support entries and can compress only single source. See samples with such a compression.
using (FileStream source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
using (GzipArchive archive = new GzipArchive())
{
archive.SetSource(source);
archive.Save(«archive.gz”);
}
}
Zusätzliche Informationen zu GZIP-Archiven
Die Leute haben gefragt
1. Was ist GZIP?
GZIP (GNU ZIP-Archiv) ist ein beliebtes Dateiformat, das die Größe von Dateien verkleinert, um die Speicherung und Übertragung zu erleichtern.
2. Wie ist die GZIP-Komprimierung im Vergleich zu anderen Formaten wie ZIP?
GZIP bietet im Vergleich zu ZIP typischerweise höhere Komprimierungsraten, insbesondere beim Komprimieren textbasierter Dateien. ZIP -Archive bieten jedoch häufig Unterstützung für mehrere Dateien und Verzeichnisse, was sie vielseitiger für das Zusammenpacken mehrerer Dateien macht .
3. Kann GZIP mehrere Dateien in ein einziges Archiv komprimieren?
GZIP ist darauf ausgelegt, eine einzelne Datei zu komprimieren, nicht mehrere Dateien oder Verzeichnisse. Es ist jedoch üblich, Tools wie tar in Kombination mit GZIP zu verwenden, um ein Tarball- Tar-Archiv zu erstellen und dann Komprimieren Sie es mit GZIP, um eine einzelne komprimierte Datei zu erstellen.