Gzip
Програмер(и) |
|
---|---|
Прво издање | 31. октобар 1992. |
Репозиторијум | |
Написан у | C |
Оперативни систем | Вишеплатформски софтвер |
Тип | Компресија података |
Лиценца | ГНУ-ова општа јавна лиценца |
Веб-сајт | www |
Гзип је формат датотеке и софтверска апликација коришћена за компресију и декомпресију датотека. Програм су креирали Жан лу Гели (фр. 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 Фондација |
---|---|
Репозиторијум | |
Написан у | C |
Оперативни систем | Вишеплатформски софтвер |
Тип | Компресија података |
Лиценца | Поједностављена BSD Лиценца |
Веб-сајт | www |
Написане су разне имплементације овог програма, а најпознатија је имплементација ГНУ пројекта која користи Лампел-Зив кодирање (ЛЗ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 имплементацију са бољом компресијом од самог гзип-а, али по цену већег коришћења процесорског времена у односу на реферисану имплементацију.
Референце
[уреди | уреди извор]- ^ Jean-loup Gailly. „GNU Gzip”. Приступљено 11. 10. 2015.
- ^ „GNU Gzip: Advanced usage”. Приступљено 28. 11. 2012.
- ^ „Can gzip compress several files into a single archive?”. Приступљено 27. 1. 2010.
- ^ „tarball, The Jargon File, version 4.4.7”. Приступљено 27. 1. 2010.
- ^ „OpenBSD gzip(1) manual page”. OpenBSD. Приступљено 23. 7. 2007.
- ^ „gzip”. Man.freebsd.org. 9. 10. 2011. Приступљено 1. 3. 2014.
- ^ Lawrence, Eric (21. 10. 2014). „Compressing the Web”. MSDN Blogs > IEInternals. Microsoft.
- ^ 7-zip vs bzip2 vs gzip