Gzip

gzip

Logo
Screenshot
Hilfeanzeige in der Kommandozeile
Basisdaten

Maintainer Jim Meyering, Paul Eggert
Entwickler Jean-Loup Gailly und Mark Adler
Erscheinungsjahr 1992
Aktuelle Version 1.13[1]
(19. August 2023)
Betriebssystem plattformübergreifend verfügbar
Programmier­sprache C
Kategorie Datenkompression
Lizenz GPL (Freie Software)
gnu.org/software/gzip

gzip ist ein freies Kompressionsprogramm, das – ebenso wie das entsprechende Dateiformat gzip – praktisch für alle Computerbetriebssysteme verfügbar ist (unter den Bedingungen der GPL auch im Quelltext).

Allgemein ist gzip die Kurzform für „GNU zip“, wobei „zip“ vom englischen Wort für den Reißverschluss entlehnt wurde. OpenBSD hat eine BSD-lizenzierte Reimplementierung unter den Namen gzip(1), gunzip(1) sowie gzcat(1) vorgenommen, die völlig kompatibel zu den GNU-Werkzeugen ist.[2]

gzip bietet einen für Text zufriedenstellenden Kompressionsgrad und ist frei von patentierten Algorithmen (deflate wird verwendet). Es wurde ursprünglich von Jean-Loup Gailly entwickelt, um das unter Unix verwendete compress[3] zu ersetzen. Mark Adler schrieb das Dekompressionsprogramm gunzip.

Technik

gzip basiert auf dem Deflate-Algorithmus, der eine Kombination aus LZ77 und Huffman-Kodierung ist. Deflate wurde als Reaktion auf die Patente entwickelt, die auf LZW und anderen Kompressionsalgorithmen bestanden. Auch das ZIP-Dateiformat verwendet hauptsächlich Deflate zur Komprimierung, darf aber ansonsten nicht mit gzip verwechselt werden.

Die Fenstergröße bei gzip beträgt 32 KiB. Wenn eine Abfolge von Bytes sich in den vorherigen 32 KiB nicht wiederholt, wird sie unkomprimiert in der .gz-Datei gespeichert.[4] Diese Fenstergröße ist gegenüber modernen Kompressionsprogrammen (z. B. bzip2 mit 100 bis 900 KiB Blockgröße, rzip als Extremfall mit 900 MiB Fenstergröße) veraltet, jedoch ist gzip immer noch eines der schnellsten Kompressions-Programme und kann vielseitig eingesetzt werden, zum Beispiel in Verbindung mit einer sogenannten Pipeline – die Ausgabe („standard out“) eines Programms kann die Eingabe („standard in“) von gzip darstellen und umgekehrt.

Um die Entwicklung von Software zu vereinfachen, die Datenkompression nutzt, wurde die zlib-Bibliothek geschrieben. Sie unterstützt das gzip-Dateiformat und die Deflate-Kompression. Die Bibliothek ist weit verbreitet, da sie klein, effizient und vielseitig ist.

Aufbau

Das Archiv-Dateiformat für gzip ist gemäß RFC 1952 in Version 4.3 vom Mai 1996 spezifiziert.[5] Wenn einzelne Dateien mit gzip komprimiert werden, werden auch diverse Metadaten gespeichert, u. a. das Betriebssystem, unter dem das Archiv erstellt wurde, sowie die einzelnen Dateinamen und ihre Modifikationszeiten.

Auf modernen Betriebssystemen ergeben sich in dieser letzten Version des Archivformats bei den Metadaten folgende Einschränkungen:

  • Die Dateigröße der Quelldatei ist auf Modulo 232 (entspricht 4 GiB) begrenzt, sodass unkomprimierte Dateigrößen > 4 GiB nicht korrekt angezeigt werden können, obwohl die Dateien selbst korrekt komprimiert wurden und auch dekomprimiert werden können. Es gibt jedoch Workarounds um die korrekten unkomprimierten Dateigrößen zu ermitteln.
  • Die Modifikationszeit ist in der Zukunft auf den 7. Februar 2106, 06:28:15 UTC, beschränkt und speichert nur Sekundengenau. Moderne 64-Bit-Systeme unterstützen jedoch meist auch Mikro- und Nanosekunden – diese können in einem GZIP-Archiv weder gespeichert werden noch können sie wiederhergestellt werden. Auf einigen 32-Bit-Systemen hingegen ist das reale Limit für die Modifikationszeit in der Zukunft real niedriger, wenn diese vom Jahr-2038-Problem betroffen sind, was auf allen älteren Unix-artigen Betriebssystemen der Fall ist.[6]

Eine Gzip-Datei besteht aus folgenden Komponenten in dieser Reihenfolge:

Größe(bytes) Optional Komponente
10 Nein Header
dynamisch Ja Zusatzinformationen
dynamisch Ja Original-Dateiname
dynamisch Ja Dateikommentar
2 Ja CRC16 Prüfsumme für Header, Zusatzinformationen, Original-Dateiname und Dateikommentar
dynamisch Nein komprimierte Nutzdaten
4 Nein CRC32 Prüfsumme für die unkomprimierte Quelldatei
4 Nein Größe der unkomprimierten Quelldatei Modulo 232
Position Länge(bytes) Kürzel Bedeutung
0 2 ID1, ID2 Magische Zahl (immer 0x1F, 0x8B)
2 1 CM Kompressionsmethode

0x00 bis 0x07 sind reserviert. 0x08 bedeutet „Deflate“.

3 1 FLG Bitfeld, siehe FLG-Bitfeld
4 4 MTIME Modifikationszeitstempel als Unixzeit, ein Nullwert bedeutet das kein Zeitstempel verfügbar ist.
8 1 XFL kompressionsmethodenspezifische Zusatzinformationen

Für Deflate sind folgende Werte definiert: 0x02 = Des Kompressionsprogramm hat den stärksten, langsamsten Algorithmus angewandt. 0x04 = Das Kompressionsprogramm hat den schnellsten Algorithmus angewandt.

9 1 OS Art des Dateisystems bzw. Betriebssystems von welchem aus die Kompression durchgeführt wurde.

Siehe Betriebssystemtabelle.

FLG-Bitfeld

Wichtig ist, dass hier immer die Bits beachtet werden. Das bedeutet, dass z. B. 00010011 (binär) = 19 (dezimal) = 0x13 (hexadezimal) folgendes aussagt: Die Datei ist wahrscheinlich ASCII-Text, eine CRC-16 Prüfsumme ist vorhanden, optionale Zusatzinformationen sind nicht vorhanden, der originale Dateiname ist nicht vorhanden und ein Dateikommentar ist vorhanden.

Bitposition Dezimalwert Kürzel Bedeutung
0 1 FTEXT Datei ist wahrscheinlich ASCII-Text
1 2 FHCRC CRC-16 Prüfsumme ist vorhanden
2 4 FEXTRA Zusatzinformationen sind vorhanden
3 8 FNAME Original-Dateiname ist vorhanden
4 16 FCOMMENT Dateikommentar ist vorhanden
5 32 Reserviert (muss 0 sein)
6 64 Reserviert (muss 0 sein)
7 128 Reserviert (muss 0 sein)

Betriebssystemtabelle

Byte Wert Bedeutung
0 FAT (Dateisystem)
1 AmigaOS
2 VMS oder OpenVMS
3 Unix
4 VM oder CMS
5 Atari TOS
6 HPFS (Dateisystem)
7 Macintosh (Plattform), Mac OS (Betriebssystem)
8 Z-System
9 CP/M
10 TOPS-20
11 NTFS (Dateisystem)
12 QDOS
13 Acorn RISC OS
255 Unbekannt

Optionale Felder

Zusatzinformationen

Wenn FEXTRA gesetzt ist, folgt ein zwei Byte großes Feld, welches die Größe der Zusatzinformationen angibt, gefolgt von den Zusatzinformationen selbst in einem speziellen Format.

Original-Dateiname

Wenn FNAME gesetzt ist, folgt der Original-Dateiname als nullterminierte Zeichenkette mit ISO 8859-1 Kodierung.

Dateikommentar

Wenn FCOMMENT gesetzt ist, folgt der Dateikommentar als nullterminierte Zeichenkette mit ISO 8859-1 Kodierung. Der Dateikommentar ist nicht programmatisch zu interpretieren und dient nur dazu vom Endbenutzer gelesen zu werden.

CRC-16 Prüfsumme

Wenn FHCRC gesetzt ist, folgt die CRC-16 Prüfsumme, bestehend aus den zwei niedrigen Bytes der CRC-32 Prüfsumme des Headers inklusive der optionalen Felder(mit Ausnahme der Prüfsumme selbst).

CRC-32 Prüfsumme und Dateigröße

Es folgen eine CRC-32 Prüfsumme und die Größe der unkomprimierten Originaldatei. Die Dateigröße wird Modulo 232 gespeichert, was zur Folge hat, dass das Dateigrößenfeld bei Dateigrößen > 4 GiB nicht aussagekräftig ist.

Beispielaufrufe

Eine Datei packen:

gzip <Dateiname>

Eine gepackte Datei entpacken:

gzip -d <Dateiname>

oder

gunzip <Dateiname>

Rekursiv alle Dateien in einem Verzeichnis packen und die Kompressionsrate angeben:

gzip -rv <Verzeichnis>

Eine komprimierte Text-Datei ausgeben:

zcat <Dateiname>

Eine defekte komprimierte Datei bis zur Fehlerstelle entpacken:

zcat <gzip-Datei> > <Ziel-Datei>

Ermittlung der unkomprimierten Dateigröße bei archivierten Dateien, die größer als 4 GiB sind:[7]

zcat <gzip-Datei> | wc -c

gzip-komprimierte Dateien

gzip
Dateiendung: .gz
MIME-Type: application/gzip[8]
Magische Zahl: \x1F\x8B\x08

(ASCII-C-Notation)

Entwickelt von: Jean-Loup Gailly und Mark Adler
Aktuelle Version 1.13[1]
(19. August 2023)
Art: Datenkompression
Container für: eine beliebige Datei
Erweitert von: compress
Standard(s): RFC 1952[5]
gzip.org

Die übliche Dateiendung für gzip-komprimierte Dateien ist heute .gz, früher auch .z.

Da gzip nur einzelne Dateien komprimieren kann, werden mehrere Dateien bzw. Verzeichnisbäume üblicherweise zunächst mit tar zu einer Tarball genannten Archivdatei zusammengefasst, welche anschließend mit gzip komprimiert wird.

Zunächst werden Dateien (Kreise) mit tar gepackt, anschließend wird dieses Archiv mit gzip komprimiert.

Solche komprimierten Archivdateien tragen dann meist die doppelte Endung .tar.gz oder auch einfach .tgz. Diese Methode ermöglicht insgesamt bessere Komprimierung, da so Redundanzen zwischen den einzelnen Dateien ausgenutzt werden können (progressive Kompression), erschwert aber den Zugriff auf die einzelnen Bestandteile.

Verbreitung

Unter Unix ist die Komprimierung mit gzip heute Standard, weil sie für viele Aufgaben einen guten Kompromiss aus hoher Geschwindigkeit und guter Datenreduktion ermöglicht. Wo es weniger auf Geschwindigkeit als auf minimale Dateigrößen ankommt (etwa bei der breiten Verteilung von Daten über relativ langsame Netze), werden allerdings zunehmend bzip2 und LZMA verwendet (ebenso wie bei gzip in Kombination mit tar).

Das zlib-komprimierte Dateiformat, der Deflate-Algorithmus und das gzip-Dateiformat wurden 1996 als Request for Comments RFC 1950,[9] RFC 1951[10] und RFC 1952[5] standardisiert.

Siehe auch

  • Brotli ist ein Datenkompressions-Algorithmus auf Basis von LZ77 und Huffman-Kodierung, der von Zoltán Szabadka und Jyrki Alakuijala entwickelt wurde
  • Zopfli wird als der dateigrößeneffizienteste verfügbare Deflate-Kodierer angesehen
  • pigz ist eine von Mark Adler programmierte Version von gzip, welche sämtliche verfügbaren Prozessorkerne und -threads benutzt, und so die Kompression merklich beschleunigt
  • Liste von Datenkompressionsprogrammen
  • gzip.org – ursprüngliche Projektseite (englisch)
  • P. Deutsch: RFC: 1952 – GZIP File Format Specification version 4.3. Mai 1996 (englisch).
  • gzip(1): gzip, gunzip, zcat – Dateien komprimieren und expandieren – Debian GNU/Linux Ausführbare Programme oder Shell-Befehle Handbuchseite
  • goethe.ira.uka.de (Memento vom 8. September 2012 im Internet Archive) ira.uka.de – gut verständliche Beschreibung der verschiedenen Komprimiermöglichkeiten

Einzelnachweise

  1. a b Jim Meyering: gzip-1.13 released [stable]. 19. August 2023 (abgerufen am 20. August 2023).
  2. gzip(1): compress and expand data (deflate mode) – OpenBSD General Commands Manual
  3. compress: compress data – Open Group Base Specification
  4. Jean-loup Gailly, Mark Adler: Compression algorithm (deflate) (Memento vom 16. Februar 2014 im Internet Archive) gzip.org. 1. September 1997 (Last-Modified).
  5. a b c P. Deutsch: RFC: 1952 – GZIP File Format Specification version 4.3. Mai 1996 (englisch).
  6. GNU Gzip Documentation. Free Software Foundation, abgerufen am 15. September 2020 (englisch).
  7. GNU Gzip Documentation. Free Software Foundation, abgerufen am 15. September 2020 (englisch).The gzip format represents the input size modulo 2^32, so the uncompressed size and compression ratio are listed incorrectly for uncompressed files 4 GiB and larger. To work around this problem, you can use the following command to discover a large uncompressed file’s true size: zcat file.gz | wc -c
  8. RFC: 6713 – The ‘application/zlib’ and ‘application/gzip’ Media Types. August 2012 (englisch).
  9. RFC: 1950 – ZLIB Compressed Data Format Specification version 3.3. Mai 1996 (englisch).
  10. RFC: 1951 – DEFLATE Compressed Data Format Specification version 1.3. Mai 1996 (englisch).

Read other articles:

Kolkata Municipal Corporation in West Bengal, IndiaWard No. 79Kolkata Municipal CorporationInteractive Map Outlining Ward No. 79Ward No. 79Location in KolkataCoordinates: 22°32′00″N 88°18′38″E / 22.53325°N 88.310611°E / 22.53325; 88.310611Country IndiaStateWest BengalCityKolkataNeighbourhoodsKidderpore (Babu Bazar), Mominpur, Majherhat, TikiaparaReservationOpenParliamentary constituencyKolkata DakshinAssembly constituencyKolkata PortBorough9Population...

 

Kepala Staf KostradLambang KostradPetahanaMayor Jenderal TNI Farid Makrufsejak 29 November 2023KantorMarkas Kostrad, Gambir, Jakarta PusatDibentuk6 Maret 1961Pejabat pertamaBrigjen TNI Achmad WiranatakusumahSitus webwww.kostrad.mil.id Daftar Pejabat Komando Cadangan Strategis Angkatan Darat dipimpin oleh seorang Panglima Kostrad (Pangkostrad) yang berpangkat Letnan Jenderal TNI dan Wakil berpangkat Mayor Jenderal TNI. Berikut ini adalah nama-nama Kepala Staf Komando Cadangan Strategis An...

 

Lillehammer University CollegeHøgskolen i LillehammerHøgskolen i LillehammerActive1994–2017LocationLillehammer, Norway Lillehammer University College (Norwegian: Høgskolen i Lillehammer) was a state university college located at Storhove in Lillehammer, Norway. It was merged with Hedmark University College to become the Inland Norway University of Applied Sciences in 2017. History In 1970, Oppland College (Norwegian: Oppland distriktshøgskole) was established in Lillehammer, at the site...

For other uses, see Charter (disambiguation). Grant of authority or rights An example of a charter (Magna Carta). A charter is the grant of authority or rights, stating that the granter formally recognizes the prerogative of the recipient to exercise the rights specified. It is implicit that the granter retains superiority (or sovereignty), and that the recipient admits a limited (or inferior) status within the relationship, and it is within that sense that charters were historically granted,...

 

Károlos PapoúliasΚάρολος Παπούλιας Presiden Republik Helenik III ke-9Masa jabatan12 Maret 2005 – 13 Maret 2015Perdana MenteriKostas Karamanlis PendahuluCostis StephanopoulosPenggantiProkopis PavlopoulosMenteri Luar NegeriMasa jabatan26 Juli 1985 – 2 Juli 1989 PendahuluIoannis CharalambopoulosPenggantiTzannis TzannetakisMasa jabatan13 Oktober 1993 – 2 Januari 1996 PendahuluMichalis PapakonstantinouPenggantiTheodoros Pangalos Informasi pribadiL...

 

Синелобый амазон Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеНадкласс:ЧетвероногиеКлада:АмниотыКлада:ЗавропсидыКласс:Пт�...

A city in Himachal Pradesh, India This article is about the city in India. For its namesake district, see Mandi district. City in Himachal Pradesh, IndiaMandi Choti KashiCity[[File:Natural ട്രീസ 280|99px]]From top, left to right: Victoria Bridge, Mandi town, Panchvaktra Temple & Prashar lakeNickname(s): Choti Kashi, Varanasi of HillsMandiShow map of Himachal PradeshMandiShow map of IndiaCoordinates: 31°42′25″N 76°55′54″E / 31.70694°N 76.93167°E&...

 

City in Wyoming, United StatesSheridan, WyomingCitySheridan looking west towards the Bighorn MountainsLocation of Sheridan in Sheridan County, Wyoming.Sheridan, WyomingLocation of Sheridan, WyomingShow map of WyomingSheridan, WyomingSheridan, Wyoming (the United States)Show map of the United StatesCoordinates: 44°47′48″N 106°57′32″W / 44.79667°N 106.95889°W / 44.79667; -106.95889Country United StatesState WyomingCounty SheridanGovernment •...

 

Captura de pantalla de SUDOC en 2013 El Système universitaire de documentation, SUDOC, (en español «Sistema universitario de documentación») es un catálogo unificado de documentos de las bibliotecas universitarias francesas que se inició en 1999. Se mantiene y actualiza por distintos centros de documentación de universidades y centros de investigación. La administración central está a cargo de la Agence bibliographique de l'enseignement supérieur (ABES). Se trata de un registro de...

土库曼斯坦总统土库曼斯坦国徽土库曼斯坦总统旗現任谢尔达尔·别尔德穆哈梅多夫自2022年3月19日官邸阿什哈巴德总统府(Oguzkhan Presidential Palace)機關所在地阿什哈巴德任命者直接选举任期7年,可连选连任首任萨帕尔穆拉特·尼亚佐夫设立1991年10月27日 土库曼斯坦土库曼斯坦政府与政治 国家政府 土库曼斯坦宪法 国旗 国徽 国歌 立法機關(英语:National Council of Turkmenistan) ...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Senecan tragedy – news · newspapers · books · scholar · JSTOR (July 2008) (Learn how and when to remove this message) Double Herm of Socrates and Seneca (Antikensammlung Berlin) Senecan tragedy refers to a set of ten ancient Roman tragedies, eight of which were...

 

Lokasi Milton Keynes Milton Keynesdengarkanⓘ ialah sebuah kota di Inggris, Britania Raya yang berpenduduk sekitar 210.000 jiwa. Kota ini terletak sekitar 80 kilometer di utara London, tak jauh antara Oxford dan Cambridge. Kota ini mulai dibangun pada tahun 1967. Daerah seluas 89 mil² ini menggabungkan kota-kota seperti Bletchey, Wolverton, dan Stony Stratford bersama dengan 15 desa dan pertanian lainnya. Kota ini direncanakan berpenduduk sekitar 320.000 juta pada tahun 2030. Sebagai unsur ...

Peta menunjukan lokasi Matalom Matalom adalah munisipalitas yang terletak di provinsi Leyte, Filipina. Pada tahun 2010, munisipalitas ini memiliki populasi sebesar 37.156 jiwa atau 7.219 rumah tangga. Pembagian wilayah Secara administratif Matalom terbagi atas 30 barangay, yaitu: Agbanga Altavista Cahagnaan Calumpang Caningag Caridad Norte Caridad Sur Elevado Esperanza Hitoog Itum Lowan Monte Alegre Punong San Isidro (Pob.) San Pedro (Pob.) San Roque (Pob.) Santo Niño (Pob.) Sta. Fe (Tab-Ang...

 

 本表是動態列表,或許永遠不會完結。歡迎您參考可靠來源來查漏補缺。 潛伏於中華民國國軍中的中共間諜列表收錄根據公開資料來源,曾潛伏於中華民國國軍、被中國共產黨聲稱或承認,或者遭中華民國政府調查審判,為中華人民共和國和中國人民解放軍進行間諜行為的人物。以下列表以現今可查知時間為準,正確的間諜活動或洩漏機密時間可能早於或晚於以下所歸�...

 

RamtekcityPeta India. BenderaNegaraIndiaNegara bagianMaharashtraDistrikNagpurBandar banciRamtekKetinggian1,132 ft (345 m)Populasi (2001) • Total22.517Zona waktuGMT • Musim panas (DST)GMT Ramtek adalah sebuah bandar kota (kerajaan tempatan) yang terletak di Distrik Nagpur di negara bagian Maharashtra, India. Demografi 2001 Menurut sensus India pada tahun 2001, Ramtek memiliki jumlah penduduk sebesar 22.517. Dari jumlah tersebut, kaum lelaki membentuk 51% ...

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (يوليو 2011) الشك العلمي هو ممارسة للتشكيك في صحة ادعاءات تفتقر إلى الأدلة التجريبية أو استنساخ، كجزء من قاعدة السعي المنهجي «توسيع المعرفة المعتمدة». على سبيل المثال، ر...

 

Osservatorio astronomico di BreraLa specola di Brera, come appariva a fine Ottocento vista dall'orto botanicoOrganizzazioneINAF Codice027 Stato Italia Coordinate45°28′19.17″N 9°11′15.74″E45°28′19.17″N, 9°11′15.74″E Fondazione1764 SitoSito ufficiale Telescopi-riflettore Zeiss da 102 cm[1][2]Ruthsriflettore da 137 cm-telescopio Marcon da 50 cm Mappa di localizzazioneOsservatorio astronomico di Brera Modifica dati su Wikidata · Manual...

 

Susan Sarandon Susan Sarandon 2016.FöddSusan Abigail Tomalin4 oktober 1946 (77 år)New York, New York, USAUtbildad vidCatholic University of America och Edison High SchoolAktiva år1970–MakeChris Sarandon (1967–1979)PartnerFranco Amurri (1980-talet) Tim Robbins (1988–2009) Jonathan Bricklin (2010–2015)Betydande rollerLouise Sawyer i Thelma & Louise Syster Helen Prejean i Dead Man WalkingOscar Bästa kvinnliga huvudroll1996 Dead Man WalkingBAFTA Awards Bästa kvinnl...

Matteo PessinaPessina nel 2018Nazionalità Italia Altezza183 cm Peso75 kg Calcio RuoloCentrocampista Squadra Monza CarrieraGiovanili 2002-2007 La Dominante2007-2014 Monza Squadre di club1 2013-2015 Monza20 (3)[1]2015 Milan0 (0)2015-2016→  Lecce3 (0)2016→  Catania1 (0)2016-2017→  Como35 (9)[2]2017 Atalanta0 (0)2017-2018→  Spezia38 (2)2018-2019 Atalanta12 (0)2019-2020→  Verona35 (7)2020-2022 Atalanta55 (3...

 

LilydaleInformasi umumJenis layananLayanan suburban MelbourneTeknis sarana dan prasarana Jalur kereta api Lilydale adalah jalur kereta api komuter Public Transport Victoria (PTV) di Melbourne, Victoria. Jalur ini melewati daerah timur Melbourne, seperti Richmond, Cremorne, Burnley, Hawthorn, Hawthorn East, Camberwell, Canterbury, Surrey Hills, Mont Albert, Box Hill, Blackburn, Nunawading, Mitcham, Ringwood, Ringwood East, Croydon, Mooroolbark, dan Lilydale. Peta Lilydale railway line Legenda ...