gzip

A Wikipédiából, a szabad enciklopédiából
GNU Gzip
Gzip-screenshot.png

Fejlesztő GNU Projekt
Első kiadás 0.1, 1992. október 30.
Legfrissebb stabil
kiadás
1.5 [1]
Legfrissebb fejlesztői kiadás ismeretlen +/-
Programozási nyelv C
Operációs rendszer platformfüggetlen
Kategória adattömörítés
Licenc GNU GPL
A GNU Gzip weboldala
NetBSD Gzip / FreeBSD Gzip
Gzip-screenshot.png

Fejlesztő The NetBSD Foundation
Legfrissebb stabil kiadás ismeretlen +/-
Legfrissebb fejlesztői kiadás ismeretlen +/-
Programozási nyelv C
Operációs rendszer platformfüggetlen
Kategória adattömörítés
Licenc egyszerűsített BSD licenc
A NetBSD Gzip / FreeBSD Gzip weboldala

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.

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.[2]

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

A fájlformátum[szerkesztés | forrásszöveg szerkesztése]

gzip
MIME-típus application/x-gzip
Formátum típusa adattömörítés
Uniform org.gnu.gnu-zip-archive
Bűvös szám 0x1f8b
Weboldal http://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.[4] 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.[5]

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 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 | forrásszöveg szerkesztése]

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. [6]

Példák[szerkesztés | forrásszöveg szerkesztése]

  • 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ó.[7]

  • 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 | forrásszöveg szerkesztése]

A HTTP protokolban a "Content-Encoding" header használata lehetővé teszi gzip formátumú tömörített adatátvitelt.[8] 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.

Az 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 a támogatás hibás proxy használata esetén.

Jegyzetek[szerkesztés | forrásszöveg szerkesztése]

  1. [1]
  2. OpenBSD gzip(1) manual page (angol nyelven). OpenBSD. (Hozzáférés: 2007. július 23.)
  3. http://man.freebsd.org/gzip
  4. Can gzip compress several files into a single archive? (angol nyelven). (Hozzáférés: 2010. január 27.)
  5. tarball, The Jargon File, version 4.4.7 (angol nyelven). (Hozzáférés: 2010. január 27.)
  6. [2] zcat manual page in FreeBSD 7.0
  7. gzip dokumentáció (angolul)
  8. rfc2616

Fordítás[szerkesztés | forrásszöveg szerkesztése]

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.

További információk[szerkesztés | forrásszöveg szerkesztése]