gzip

aplikační software užívaný pro kompresi dat projektu GNU

gzip (výslovnost [džiː'zip]; akronymGNU 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.

Gzip
Logo
VývojářProjekt GNU
První vydání31. října 1992
Aktuální verze1.13 (19. srpna 2023)
Operační systémUnix-like
Platformamultiplatformní software
Vyvíjeno vC
Typ softwarukompresní software
LicenceGNU GPLv3
Webwww.gnu.org/gzip
Některá data mohou pocházet z datové položky.
gzip
Přípona souboru.gz
Typ internetového médiaapplication/gzip
Uniform Type Identifierorg.gnu.gnu-zip-archive
TvůrceJean-Loup Gailly
a Mark Adler
Otevřený formátano

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

editovat

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í

editovat

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 Burrowsově-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

editovat

V tomto článku byl použit překlad textu z článku Gzip na anglické Wikipedii.

Externí odkazy

editovat