gzip
GNU Gzip | |
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 |
Platform | platformfüggetlen |
Kategória | adattömörítés |
Licenc | GNU GPL |
A GNU Gzip weboldala |
NetBSD Gzip / FreeBSD Gzip | |
Fejlesztő | The NetBSD Foundation |
Legfrissebb stabil kiadás | 1.10 (stabil verzió, 2018. december 30.)[2] |
Legfrissebb fejlesztői kiadás | ismeretlen +/- |
Programozási nyelv | C |
Operációs rendszer | platformfüggetlen |
Platform | 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.[3]
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.[4] 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.
Tartalomjegyzék
A fájlformátum[szerkesztés]
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.[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 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.
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]
- ↑ [1]
- ↑ gzip-1.10 released [stable] (angol nyelven), 2018. december 30. (Hozzáférés: 2018. december 30.)
- ↑ OpenBSD gzip(1) manual page (angol nyelven). OpenBSD. (Hozzáférés: 2007. július 23.)
- ↑ http://man.freebsd.org/gzip
- ↑ Can gzip compress several files into a single archive? (angol nyelven). (Hozzáférés: 2010. január 27.)
- ↑ tarball, The Jargon File, version 4.4.7 (angol nyelven). (Hozzáférés: 2010. január 27.)
- ↑ [2] zcat manual page in FreeBSD 7.0
- ↑ gzip dokumentáció (angolul)
- ↑ 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.