Гзип

Из Википедије, слободне енциклопедије
Гзип
Gzip-Logo.png
Првобитни
аутор(и)
  • Jean-loup Gailly
  • Mark Adler
Прва верзија 31. октобар 1992. год.; пре 24 године (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.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

Спољашње везе[уреди]