gzip
gzip (výslovnost [džiː'zip]; akronym z GNU zip) je aplikační software užívaný pro kompresi dat. Program je svobodnou alternativou za kompresní program používaný již v raném Unixovém systému, určený pro projekt GNU.
Vývojář | Projekt GNU |
---|---|
První vydání | 31. října 1992 |
Aktuální verze | 1.12 (7. dubna 2022) |
Operační systém | Unix-like |
Platforma | multiplatformní software |
Vyvíjeno v | C |
Typ softwaru | kompresní software |
Licence | GNU GPLv3 |
Web | www.gnu.org/gzip |
Některá data mohou pocházet z datové položky. |
Přípona souboru | .gz |
---|---|
Typ internetového média | application/gzip |
Uniform Type Identifier | org.gnu.gnu-zip-archive |
Tvůrce | Jean-Loup Gailly a Mark Adler |
Otevřený formát | ano |
Gzip byl vytvořen Jean-loup Gaillyem a Markem Adlerem. Verze 0.1 byla poprvé veřejně představena 31. října 1992. Verze 1.0 následovala v únoru 1993.
Souborový formát
Gzip je založený na algoritmu DEFLATE [di'fleit], který je kombinací LZ77 a Huffmanova kódování. DEFLATE byl určený k nahrazení LZW a dalších patenty zatížených algoritmů pro kompresi dat, který měl v té době omezenou použitelnost komprese a dalších populárních archivátorů.
Dále se termínem gzip rozumí souborový formát, jehož obsahem je:
- 10bajtová hlavička, obsahující magic number, číslo verze a datum poslední změny
- nepovinné extra hlavičky, jako například originální jméno souboru
- tělo obsahující DEFLATE kompresi
- 8bajtové zápatí, obsahující CRC-32 součet a délku originálních nekomprimovaných dat
Ačkoliv formát souboru také povoluje společné vícenásobné proudové kaskády (jsou jednoduše dekomprimovány, jako kdyby šlo o jednu), gzip je normálně používán ke kompresi jednotlivých souborů. Komprimované archivy jsou typicky tvořeny kompletací sbírek souborů do jednotlivých tar archivů a potom jsou komprimovány do archivu pomocí gzipu. Výsledný .tar.gz nebo .tgz soubor se nazývá tarball ['taːˌboːl].
Gzip by se neměl zaměňovat s formátem archivů ZIP, vyvinutým společností PKWARE, Inc., byť i ten používá metodu DEFLATE (ZIP jich umí více, tato je z nich nejrozšířenější). Formát ZIP může držet sbírky souborů bez externího archivátoru, ale je to méně kompaktní než komprimované tarbally držící stejná data, protože komprimuje soubory individuálně a nemůže využít nadbytečnost mezi soubory (pevná (SOLID) komprese).
Zlib je DEFLATE algoritmus ve formě knihovny, která zahrnuje podporu formátu souboru gzip a lehkou kategorii formátu v jeho API. Proudový formát zlib, DEFLATE a formát souboru gzip byly standardizovány jako RFC 1950, RFC 1951 a RFC 1952.
Odpovídajíci program pro dekomprimaci zagzipovaných souborů je gunzip ['ganˌzip]. Oba příkazy, gunzip
a gzip -d
, vykonají to samé.
Ostatní použití
Protokol HTTP/1.1 povoluje klientům, aby volitelně žádali o kompresi obsahu ze serveru. Standardně sám specifikuje dvě kompresní metody: „gzip“ (obsah zabalený v gzip proudu) a „deflate“ (obsah v syrovém, bezhlavičkovém DEFLATE proudu). Oba jsou podporovány mnoha HTTP klientskými knihovnami a většinou moderních prohlížečů. Komprimace musí být povolena v hlavičce HTTP_ACCEPT_ENCODING, kterou vysílá server.
Počínaje 90. let začal získávat nad gzipem větší popularitu bzip2, souborová kompresní utilita založená na Burrows-Wheelerově transformaci. Ta produkuje značně menší soubory (zvláště pro zdrojový kód a další uspořádaný text), byť za cenu zvýšené spotřeby paměti a času na zpracování (až do faktoru 4). Soubory komprimované pomocí bzip2 mají standardně příponu .bz2, často se pak vyskytují v kombinaci s utilitou tar [taː(r)] jako .tar.bz2 či .tbz nebo .tb2.
AdvanceCOMP a 7-Zip užívá implementaci DEFLATE, která produkuje .gzip soubory kompatibilní s lepšími stupni komprese než gzip sám, za cenu větší spotřeby procesorového času.
Reference
V tomto článku byl použit překlad textu z článku Gzip na anglické Wikipedii.
Externí odkazy
- Obrázky, zvuky či videa k tématu gzip na Wikimedia Commons
- (anglicky) 1952 – GZIP file format specification version 4.3
- (česky) gzip www.root.cz
- (česky) gzip www.tomaserlich.cz