Пређи на садржај

Gzip

С Википедије, слободне енциклопедије
Гзип
Програмер(и)
  • Jean-loup Gailly
  • Mark Adler
Прво издање31. октобар 1992.; пре 32 године (1992-10-31)
Репозиторијум Уреди на Википодацима
Написан уC
Оперативни системВишеплатформски софтвер
ТипКомпресија података
ЛиценцаГНУ-ова општа јавна лиценца
Веб-сајтwww.gnu.org/software/gzip/

Гзип је формат датотеке и софтверска апликација коришћена за компресију и декомпресију датотека. Програм су креирали Жан лу Гели (фр. Jean-loup Gailly) и Марк Адлер (енгл. Mark Adler) као бесплатну замену програмима за компресију коришћеним на раним Јуникс системима, и наменили га за употребу у ГНУ пројекту („г“ у називу произилази из „ГНУ“). Верзија 0.1 издата је 31. октобра 1992. године, а верзија 1.0 у фебруару 1993. године.

Формат датотеке

[уреди | уреди извор]

Гзип је базиран на DEFLATE алгоритму, који је комбинација ЛЗ77 и Хафмановог кодирања. DEFLATE је био намењен као замена за LZW и друге алгоритме за компресију података, који су били ограничени правима о патентима, и, у дато време, ограничавали употребу компресора.

Израз „гзип“ се често користи и када се говори о гзип формату датотеке који је:

  • 10-бајтно заглавље које садржи "магични број" (1f 8b), број верзије и датум
  • опционално додатна заглавља, нпр. оригинални назив датотеке
  • тело, које садржи битне информације (енгл. payload) компресоване DEFLATE алгоритмом
  • 8-бајтно подножје, у коме се налазе CRC-32 вредност и дужина оригиналних некомпресованих података, по модулу 232.[1]

Иако формат датотеке дозвољава вишеструким улазима да се ланчају (зиповане датотеке се једноставно декомпресују уланчане као да су оригинално биле једна датотека[2]), гзип се обично користи само за компресовање појединачних датотека.[3] Компресоване архиве се обично праве скупљањем колекција датотека у једну tar архиву, која се затим компресује гзип-ом. Тако добијена датотека има екстензију .tar.gz или .tgz, и назива се "tarball".[4]

Гзип не треба мешати са ЗИП форматом архивирања, који такође користи DEFLATE. ЗИП формат може садржати колекције датотека без екстерног архиватора, али је мање компактна него компресовани tarball-ови који садрже исте податке, зато што компресује датотеке појединачно и не може да искористи сувишност међу датотекама.

Имплементације

[уреди | уреди извор]
NetBSD Гзип / FreeBSD Гзип
Програмер(и)NetBSD Фондација
Репозиторијум Уреди на Википодацима
Написан уC
Оперативни системВишеплатформски софтвер
ТипКомпресија података
ЛиценцаПоједностављена BSD Лиценца
Веб-сајтwww.gnu.org/software/gzip/

Написане су разне имплементације овог програма, а најпознатија је имплементација ГНУ пројекта која користи Лампел-Зив кодирање (ЛЗ77). OpenBSD-ова верзија гзип-а је заправо програм за компресовање коме је додата подршка за гзип формат у верзији OpenBSD 3.4. Слово 'г' у овој конкретној верзији представља реч гратис.[5] FreeBSD, ДрагонФлај BSD и NetBSD, уместо ГНУ верзије, користе BSD лиценцирану имплементацију која је заправо интерфејс командне линије који је требало да буде компатибилан са опцијама ГНУ имплементације.[6] Ове имплементације су оригинално настале од NetBSD и подржавају декомпресију бзип2 као и јуникс-ово пакет форматирање.

Деривати и остале употребе

[уреди | уреди извор]

Алатка тар, коју садржи већина Линукс дистрибуција, може екстраховати .tar.gz датотеке помоћу опције z, нпр. tar -zxf datoteka.tar.gz.

Злиб је апстракција DEFLATE алгоритма у облику библиотеке која, између осталог, укључује подршку и за гзип формат у свом АПИ-ју. Злиб, DEFLATE и гзип формати су стандардизовани редом у RFC 1950, RFC 1951, и RFC 1952.

Гзип формат се користи у HTTP компресији која се користи за брже слање HTML-а и осталих садржаја веба. То је један од три стандардна формата за HTTP компресију како је наведено у RFC 2616. Овај RFC (енгл. Request for Comments, Захтев за коментар) такође наводи и злиб формат (тзв. DEFLATE) који је једнак гзип формату осим што гзип додаје једанаест додатних бајтова. Ипак, гзип формат се понекад више препоручује од злиб-а јер Мајкрософт Интернет експлорер не имплементира стандард исправно и не може да обради злиб формат како је наведено у RFC 1950.[7]

Од краја 1990-их, бзип2 (алатка за компресију датотека заснована на блок-сортирајућем алгоритму) је стекла мало популарности као замена за гзип. Производи значајно мање датотеке (посебно за изворни код и остале структуиране текстове), али по цену меморије и времена за обраду (до фактора 4).[8]

AdvanceCOMP и 7-Зип могу да производе гзип-компатибилне датотеке, користећи уграђену DEFLATE имплементацију са бољом компресијом од самог гзип-а, али по цену већег коришћења процесорског времена у односу на реферисану имплементацију.

Референце

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

Референце

[уреди | уреди извор]
  • RFC 1952 – GZIP file format specification version 4.3

Спољашње везе

[уреди | уреди извор]