gzip

tömörítő szoftver

A gzip egy számítógépes alkalmazás adatok tömörítésére és kibontására. A kifejezés legtöbbször a GNU Projekt implementációra utal, ahol a gzip a GNU zip rövidítése. Alapja a DEFLATE algoritmus, mely a Lempel-Ziv (LZ77) és a Huffman-kódolás kombinációja. A programot Jean-Loup Gailly és Mark Adler készítette, mint a korai Unix rendszereken használt compress algoritmus szabad szoftveres helyettesítése, a GNU projektben való használat céljára. A 0.1-es verziót nyilvánosan először 1992 október 30-án adták ki, míg az 1.0-sat 1993 februárjában.

GNU Gzip

FejlesztőGNU Projekt
Első kiadás0.1, 1992. október 30.
Legfrissebb stabil kiadás1.11[1]
Programozási nyelvC
Operációs rendszerplatformfüggetlen
Platformplatformfüggetlen
Kategóriaadattömörítés
LicencGNU GPL
A GNU Gzip weboldala
NetBSD Gzip / FreeBSD Gzip

FejlesztőThe NetBSD Foundation
Legfrissebb stabil kiadás1.13 (stabil verzió, 2023. augusztus 19., https://ftpmirror.gnu.org/gzip/gzip-1.13.tar.gz)[2]
Programozási nyelvC
Operációs rendszerplatformfüggetlen
Platformplatformfüggetlen
Kategóriaadattömörítés
Licencegyszerűsített BSD licenc
A NetBSD Gzip / FreeBSD Gzip weboldala

A gzip OpenBSD verziója igazából a compress program, amelyhez a gzip formátum támogatását az OpenBSD 3.4-ben adták hozzá. A "g" ebben a verzióban a gratis-t jelöli.[3]

A FreeBSD, a DragonFlyBSD és a NetBSD a GNU verzió egy BSD licencű implementációját használják; ez valójában a zlib parancssori interfésze, melynek célja a GNU implementációs lehetőségeivel való kompatibilitás.[4] Ezek az implementációk eredetileg a NetBSD-ről érkeztek, támogatják a bzip2 kitömörítését és az Unix pack(1) formátumot.

A fájlformátum szerkesztés

gzip
 
 
MIME-típusapplication/x-gzip
FejlesztőGNU Project
Formátum típusaadattömörítés
Uniformorg.gnu.gnu-zip-archive
Bűvös szám0x1f8b
Weboldalhttp://www.gzip.org/

A gzip alapja a DEFLATE algoritmus, mely az LZ77 és a Huffman-kódolás kombinációja. A DEFLATE célja az LZW és más szabadalommal védett adattömörítő eljárások helyettesítése volt, melyek akkor limitálták a compress és más népszerű archiválók használatát.

A "gzip" kifejezést gyakran használják a fájlformátumra is, amely:

  • egy 10 bájtos fejrész (header), melyben van egy mágikus szám (magic number), egy verziószám és egy időbélyeg
  • opcionális extra fejrészek, benne például az eredeti fájlnév,
  • egy belső rész (body), benne egy DEFLATE-tel tömörített felhasználói adat (payload)
  • egy 8 bájtos lábrész (footer), benne egy CRC-32 checksum és az eredeti tömörítetlen adat hossza

Habár az eredeti formátum engedélyezi több adat összefűzését (a zippelt fájlok kitömörítéskor ezen esetben úgy jelennek meg, mintha eredetileg egy fájlban lettek volna), a gzipet általánosságban csak egy fájlra használják.[5] A tömörített archívumokat általánosságban a fájlokat egy tar archívumba fűzik össze, melyet aztán gzippel tömörítenek. A végső .tar.gz vagy .tgz fájlt általánosan "tarball"-nak hívják.[6]

A gzip nem egyezik meg a zip fájlformátummal, mely szintén használja a DEFLATE-et. Egy ZIP formátumú fájl egyszerre több fájlt is tartalmazhat külön archiváló használata nélkül, ám kevésbé kompakt, mint az ugyanazon adatot tartalmazó tarball, mivel a fájlokat külön-külön tömöríti és ezáltal nem tudja kihasználni a fájlok közti esetleges redundanciát.

A Zlib egy elvonás a DEFLATE algoritmusból könyvtárformátumban, mely egyaránt tartalmazza a gzip fájlformátumot és egy kisméretű stream formátumot az API-jában. A zlib stream formátum, a DEFLATE és a gzip formátumokat sorban az RFC 1950, az RFC 1951, és az RFC 1952 írják le.

A gzippelt fájlok kitömörítésére szolgáló program a gunzip. Mindkét program egyazon binárist hívja meg, a gunzip ugyanazt a hatást éri el, mint a gzip -d.

A gunzip és a zcat szerkesztés

A gzip eszköz az UNIX rendszereken több néven is fut.

Amikor a gzipre mint gunzip hivatkoznak, akkor az adatokat kitömöríti (egy fájlt vagy a standard bemenetet). A gunzip a gzip -d megfelelője.

Amikor a gzipre mint zcat hivatkoznak, szintén kitömöríti az adatot, ám a cat parancshoz hasonlóan viselkedik. Külön fájlokat tömörít ki és összefűzi őket a standard bemeneten.

A zcat a gzip -d -c megfelelője.[7]

Példák szerkesztés

  • Egy fájl gzippel való tömörítésénél a fájlnevet kell paraméterként megadni:
gzip file.txt

A parancs az új fájlt egy kisebbel helyettesíti, általában file.txt.gz néven. Az eredeti file.txt megtartásához szükségeltetik a -c opció használata és az új fájl más névre való átirányítása. A jobb tömörítéshez a -9, míg a gyorsabbhoz a -1 opció használható.[8]

  • A kitömörítéshez a gunzip használható gunzip:
gunzip file.txt.gz
  • Általánosságban több fájlt tömöríteni a tarballok segítségével lehet:
tar -czf files.tar.gz *.txt

Egyéb használat szerkesztés

A HTTP protokollban a Content-Encoding header használata lehetővé teszi a gzip formátumú tömörített adatátvitelt.[9] Több HTTP-szerver támogatja a tartalom tömörítését, köztük az Apache Httpd és a Microsoft ISS is.

A böngészők között szintén elterjedt a gzip tömörítés támogatása. A Firefox, a Chrome, a Safari és az Opera is támogatja. Az Internet Explorer újabb verziói is adnak támogatást a gzip tömörítés használatára, bár a népszerű, Windows XP-vel szállított 6-os verzióban proxy használata esetén a támogatás hibás.

Jegyzetek szerkesztés

  1. [1]
  2. Jim Meyering: gzip-1.13 released [stable], 2023. augusztus 19. (Hozzáférés: 2023. augusztus 20.)
  3. OpenBSD gzip(1) manual page (angol nyelven). OpenBSD. (Hozzáférés: 2007. július 23.)
  4. http://man.freebsd.org/gzip
  5. Can gzip compress several files into a single archive? (angol nyelven). (Hozzáférés: 2010. január 27.)
  6. tarball, The Jargon File, version 4.4.7 (angol nyelven). (Hozzáférés: 2010. január 27.)
  7. [2] Archiválva 2014. február 9-i dátummal a Wayback Machine-ben zcat manual page in FreeBSD 7.0
  8. gzip dokumentáció (angolul)
  9. rfc2616

Fordítás szerkesztés

Ez a szócikk részben vagy egészben a Gzip című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

További információk szerkesztés