Pređi na sadržaj

Gzip

S Vikipedije, slobodne enciklopedije
Gzip
Programer(i)
  • Jean-loup Gailly
  • Mark Adler
Prvo izdanje31. oktobar 1992.; pre 31 godine (1992-10-31)
Repozitorijum Uredi na Vikipodacima
Napisan uC
Operativni sistemVišeplatformski softver
TipKompresija podataka
LicencaGNU-ova opšta javna licenca
Veb-sajtwww.gnu.org/software/gzip/

Gzip je format datoteke i softverska aplikacija korišćena za kompresiju i dekompresiju datoteka. Program su kreirali Žan lu Geli (fr. Jean-loup Gailly) i Mark Adler (engl. Mark Adler) kao besplatnu zamenu programima za kompresiju korišćenim na ranim Juniks sistemima, i namenili ga za upotrebu u GNU projektu („g“ u nazivu proizilazi iz „GNU“). Verzija 0.1 izdata je 31. oktobra 1992. godine, a verzija 1.0 u februaru 1993. godine.

Format datoteke[uredi | uredi izvor]

Gzip je baziran na DEFLATE algoritmu, koji je kombinacija LZ77 i Hafmanovog kodiranja. DEFLATE je bio namenjen kao zamena za LZW i druge algoritme za kompresiju podataka, koji su bili ograničeni pravima o patentima, i, u dato vreme, ograničavali upotrebu kompresora.

Izraz „gzip“ se često koristi i kada se govori o gzip formatu datoteke koji je:

  • 10-bajtno zaglavlje koje sadrži "magični broj" (1f 8b), broj verzije i datum
  • opcionalno dodatna zaglavlja, npr. originalni naziv datoteke
  • telo, koje sadrži bitne informacije (engl. payload) kompresovane DEFLATE algoritmom
  • 8-bajtno podnožje, u kome se nalaze CRC-32 vrednost i dužina originalnih nekompresovanih podataka, po modulu 232.[1]

Iako format datoteke dozvoljava višestrukim ulazima da se lančaju (zipovane datoteke se jednostavno dekompresuju ulančane kao da su originalno bile jedna datoteka[2]), gzip se obično koristi samo za kompresovanje pojedinačnih datoteka.[3] Kompresovane arhive se obično prave skupljanjem kolekcija datoteka u jednu tar arhivu, koja se zatim kompresuje gzip-om. Tako dobijena datoteka ima ekstenziju .tar.gz ili .tgz, i naziva se "tarball".[4]

Gzip ne treba mešati sa ZIP formatom arhiviranja, koji takođe koristi DEFLATE. ZIP format može sadržati kolekcije datoteka bez eksternog arhivatora, ali je manje kompaktna nego kompresovani tarball-ovi koji sadrže iste podatke, zato što kompresuje datoteke pojedinačno i ne može da iskoristi suvišnost među datotekama.

Implementacije[uredi | uredi izvor]

NetBSD Гзип / FreeBSD Гзип
Programer(i)NetBSD Fondacija
Repozitorijum Uredi na Vikipodacima
Napisan uC
Operativni sistemVišeplatformski softver
TipKompresija podataka
LicencaPojednostavljena BSD Licenca
Veb-sajtwww.gnu.org/software/gzip/

Napisane su razne implementacije ovog programa, a najpoznatija je implementacija GNU projekta koja koristi Lampel-Ziv kodiranje (LZ77). OpenBSD-ova verzija gzip-a je zapravo program za kompresovanje kome je dodata podrška za gzip format u verziji OpenBSD 3.4. Slovo 'g' u ovoj konkretnoj verziji predstavlja reč gratis.[5] FreeBSD, DragonFlaj BSD i NetBSD, umesto GNU verzije, koriste BSD licenciranu implementaciju koja je zapravo interfejs komandne linije koji je trebalo da bude kompatibilan sa opcijama GNU implementacije.[6] Ove implementacije su originalno nastale od NetBSD i podržavaju dekompresiju bzip2 kao i juniks-ovo paket formatiranje.

Derivati i ostale upotrebe[uredi | uredi izvor]

Alatka tar, koju sadrži većina Linuks distribucija, može ekstrahovati .tar.gz datoteke pomoću opcije z, npr. tar -zxf datoteka.tar.gz.

Zlib je apstrakcija DEFLATE algoritma u obliku biblioteke koja, između ostalog, uključuje podršku i za gzip format u svom API-ju. Zlib, DEFLATE i gzip formati su standardizovani redom u RFC 1950, RFC 1951, i RFC 1952.

Gzip format se koristi u HTTP kompresiji koja se koristi za brže slanje HTML-a i ostalih sadržaja veba. To je jedan od tri standardna formata za HTTP kompresiju kako je navedeno u RFC 2616. Ovaj RFC (engl. Request for Comments, Zahtev za komentar) takođe navodi i zlib format (tzv. DEFLATE) koji je jednak gzip formatu osim što gzip dodaje jedanaest dodatnih bajtova. Ipak, gzip format se ponekad više preporučuje od zlib-a jer Majkrosoft Internet eksplorer ne implementira standard ispravno i ne može da obradi zlib format kako je navedeno u RFC 1950.[7]

Od kraja 1990-ih, bzip2 (alatka za kompresiju datoteka zasnovana na blok-sortirajućem algoritmu) je stekla malo popularnosti kao zamena za gzip. Proizvodi značajno manje datoteke (posebno za izvorni kod i ostale struktuirane tekstove), ali po cenu memorije i vremena za obradu (do faktora 4).[8]

AdvanceCOMP i 7-Zip mogu da proizvode gzip-kompatibilne datoteke, koristeći ugrađenu DEFLATE implementaciju sa boljom kompresijom od samog gzip-a, ali po cenu većeg korišćenja procesorskog vremena u odnosu na referisanu implementaciju.

Reference[uredi | uredi izvor]

  1. ^ Jean-loup Gailly. „GNU Gzip”. Pristupljeno 11. 10. 2015. 
  2. ^ „GNU Gzip: Advanced usage”. Pristupljeno 28. 11. 2012. 
  3. ^ „Can gzip compress several files into a single archive?”. Pristupljeno 27. 1. 2010. 
  4. ^ „tarball, The Jargon File, version 4.4.7”. Pristupljeno 27. 1. 2010. 
  5. ^ „OpenBSD gzip(1) manual page”. OpenBSD. Pristupljeno 23. 7. 2007. 
  6. ^ „gzip”. Man.freebsd.org. 9. 10. 2011. Pristupljeno 1. 3. 2014. 
  7. ^ Lawrence, Eric (21. 10. 2014). „Compressing the Web”. MSDN Blogs > IEInternals. Microsoft. 
  8. ^ 7-zip vs bzip2 vs gzip

Reference[uredi | uredi izvor]

  • RFC 1952 – GZIP file format specification version 4.3

Spoljašnje veze[uredi | uredi izvor]