Jump to content

gzip

(Перенаправлено с GZIP )

gzip (программное обеспечение)
Оригинальный автор(ы)
Разработчик(и) Проект GNU
Первоначальный выпуск 31 октября 1992 г .; 31 год назад ( 1992-10-31 )
Стабильная версия
1.13 [1]  Отредактируйте это в Викиданных / 19 августа 2023 г.
Репозиторий мерзавец .саванна .gnu .org /cgit /gzip .git
Написано в С
Операционная система Unix-подобные , Plan 9 , Inferno
Тип Сжатие данных
Лицензия GPL-3.0 или новее
Веб-сайт www .gnu .org /программное обеспечение /gzip /

gzip — это формат файла и программное приложение, используемое для сжатия и распаковки файлов . Программа была создана Жаном-Лу Гайи и Марком Адлером как бесплатная замена программы сжатия , используемой в ранних системах Unix , и предназначена для использования GNU (откуда происходит буква «g» в gzip). Версия 0.1 была впервые публично выпущена 31 октября 1992 года, а версия 1.0 последовала в феврале 1993 года.

Распаковка формата gzip может быть реализована как алгоритм потоковой передачи , что является важной функцией для веб-протоколов , обмена данными и ETL стандартных каналах ) приложений.

Формат файла

[ редактировать ]
gzip (формат файла)
Расширение имени файла
.gz
Тип интернет-СМИ
приложение/gzip [2]
Единый идентификатор типа (UTI) org.gnu.gnu-zip-архив
Магическое число 1f 8b
Разработано Жан-Лу Гайи и Марк Адлер
Тип формата Сжатие данных
Открытый формат ? Да
Веб-сайт gzip .org (устарело)

gzip основан на алгоритме DEFLATE , который представляет собой комбинацию LZ77 и кодирования Хаффмана . DEFLATE был задуман как замена LZW и других патентами обремененных сжатия данных алгоритмов , которые в то время ограничивали удобство использования утилиты сжатия и других популярных архиваторов.

«gzip» часто также используется для обозначения формата файла gzip, который:

  • 10-байтовый заголовок, содержащий магическое число ( 1f 8b), метод сжатия ( 08 для DEFLATE), 1 байт флагов заголовка, 4-байтовая метка времени, флаги сжатия и идентификатор операционной системы.
  • необязательные дополнительные заголовки, разрешенные флагами заголовка, включая исходное имя файла, поле комментария, «дополнительное» поле и нижнюю половину контрольной суммы CRC-32 для раздела заголовка. [3]
  • тело, содержащее полезную нагрузку , сжатую с помощью DEFLATE
  • 8-байтовый трейлер, содержащий контрольную сумму CRC-32 и длину исходных несжатых данных по модулю 2. 32 . [4]
gzip можно комбинировать с программой tar для сжатия нескольких файлов.

несколько таких потоков Хотя его формат файла также позволяет объединять (файлы, сжатые gzip, просто распаковываются и объединяются, как если бы они изначально были одним файлом), [5] gzip обычно используется для сжатия только отдельных файлов. [6] Сжатые архивы обычно создаются путем объединения коллекций файлов в один tar -архив (также называемый tarball ). [7] а затем сжимаем этот архив с помощью gzip. Окончательный сжатый файл обычно имеет расширение .tar.gz или .тгз .

gzip не следует путать с форматом архива ZIP , который также использует DEFLATE . Формат ZIP может хранить коллекции файлов без внешнего архиватора, но он менее компактен, чем сжатые архивы, содержащие те же данные, поскольку он сжимает файлы по отдельности и не может использовать преимущества избыточности между файлами ( твердое сжатие ).Формат файла gzip также не следует путать с форматом утилиты сжатия, основанной на LZW, с расширением ; однако утилита Gunzip может распаковывать файлы .Z. [8]

Реализации

[ редактировать ]
NetBSD Gzip / FreeBSD Gzip
Разработчик(и) Фонд NetBSD
Репозиторий cvsweb .netbsd .org /bsdweb .cgi /источник /usr .bin /gzip /
Написано в С
Тип Сжатие данных
Лицензия Упрощенная лицензия BSD

Написаны различные реализации программы. Наиболее известной является реализация проекта GNU с использованием кодирования Лемпеля-Зива (LZ77). OpenBSD Версия gzip для на самом деле является программой сжатия , в которую поддержка формата gzip была добавлена ​​в OpenBSD 3.4. Буква «g» в этой конкретной версии означает « бесплатно » . [9] FreeBSD , DragonFly BSD и NetBSD используют реализацию под лицензией BSD вместо версии GNU; на самом деле это интерфейс командной строки для zlib, предназначенный для совместимости с опциями реализаций GNU. [10] Эти реализации изначально взяты из NetBSD и поддерживают распаковку bzip2 Unix и формата пакета .

Альтернативная программа сжатия, обеспечивающая сжатие на 3-8% лучше, — Zopfli . Он обеспечивает сжатие, совместимое с gzip, с использованием более исчерпывающих алгоритмов за счет требуемого времени сжатия. Это не влияет на время декомпрессии.

pigz, написанный Марком Адлером, совместим с gzip и ускоряет сжатие за счет использования всех доступных ядер и потоков ЦП. [11]

Возмещение ущерба

[ редактировать ]

Данные в блоках до первой поврежденной части архива обычно полностью читабельны. Данные из блоков, не разрушенных в результате повреждения и обнаруженных впоследствии, могут быть восстановлены с помощью сложных обходных путей. [12]

Производные и другое использование

[ редактировать ]

Утилита tar , включенная в большинство дистрибутивов Linux, может извлекать файлы .tar.gz, передав вариант z , например, tar -zxf file.tar.gz , где -z инструктирует о декомпрессии, -x означает добычу, и -f указывает имя сжатого архивного файла, из которого требуется извлечь. Опционально, -v ( verbose ) перечисляет файлы по мере их извлечения. [13]

zlib — это абстракция алгоритма DEFLATE в форме библиотеки, которая включает в себя поддержку как формата файла gzip, так и упрощенного формата потока данных в своем API. Формат потока zlib, DEFLATE и формат файла gzip были стандартизированы соответственно как RFC 1950, RFC 1951 и RFC 1952.

Формат gzip используется при HTTP-сжатии — методе, используемом для ускорения отправки HTML и другого контента во Всемирной паутине . Это один из трех стандартных форматов сжатия HTTP, как указано в RFC 2616. Этот RFC также определяет формат zlib (называемый «DEFLATE»), который равен формату gzip, за исключением того, что gzip добавляет одиннадцать байтов служебных данных в виде заголовки и трейлеры. Тем не менее, формат gzip иногда рекомендуется вместо zlib, поскольку Internet Explorer неправильно реализует стандарт и не может обрабатывать формат zlib, как указано в RFC 1950. [14]

zlib DEFLATE используется внутри формата Portable Network Graphics (PNG).

С конца 1990-х годов bzip2 , утилита сжатия файлов, основанная на алгоритме сортировки блоков, приобрела некоторую популярность в качестве замены gzip. Он создает файлы значительно меньшего размера (особенно для исходного кода и другого структурированного текста), но за счет памяти и времени обработки (до 4 раз). [15]

AdvanceCOMP, Zopfli , libdeflate и 7-Zip могут создавать файлы, совместимые с gzip, используя внутреннюю реализацию DEFLATE с лучшими коэффициентами сжатия, чем сам gzip, — за счет большего процессорного времени по сравнению с эталонной реализацией. [ нужна ссылка ]

Исследования, опубликованные в 2023 году, показали, что простые методы сжатия без потерь, такие как gzip, можно объединить с классификатором k-ближайших соседей , чтобы создать привлекательную альтернативу глубоким нейронным сетям для классификации текста при обработке естественного языка . Было показано, что этот подход равен, а в некоторых случаях превосходит традиционные подходы, такие как BERT , из-за низких требований к ресурсам, например, отсутствия требований к аппаратному обеспечению графического процессора . [16]

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Джим Мейеринг (19 августа 2023 г.). «выпущен gzip-1.13 [стабильный]» . Проверено 20 августа 2023 г.
  2. ^ Типы носителей «application/zlib» и «application/gzip» . Рабочая группа по интернет-инжинирингу. дои : 10.17487/RFC6713 . RFC 6713 . Проверено 1 марта 2014 г.
  3. ^ Дойч, Л. Питер (май 1996 г.). «Спецификация формата файла GZIP версии 4.3» . Рабочая группа по интернет-инжинирингу. дои : 10.17487/RFC1952 . Проверено 23 июля 2019 г.
  4. ^ Жан-Лу Гайи. «GNU Gzip» . Gnu.org . Архивировано из оригинала 15 октября 2015 года . Проверено 11 октября 2015 г.
  5. ^ «GNU Gzip: расширенное использование» . Gnu.org . Архивировано из оригинала 24 декабря 2012 года . Проверено 28 ноября 2012 г.
  6. ^ «Может ли gzip сжать несколько файлов в один архив?» . Gnu.org . Архивировано из оригинала 22 июля 2010 года . Проверено 27 января 2010 г.
  7. ^ "tarball, The Jargon File, версия 4.4.7" . Catb.org . Архивировано из оригинала 20 марта 2017 года . Проверено 27 января 2010 г.
  8. ^ «GNU Gzip» . Операционная система GNU и движение за свободное программное обеспечение . 5 февраля 2023 г. Проверено 3 апреля 2024 г. Gunzip в настоящее время может распаковывать файлы, созданные с помощью gzip, zip, сжатия или упаковки. Определение входного формата происходит автоматически.
  9. ^ «Страница руководства OpenBSD gzip(1)» . Openbsd.org . OpenBSD . Проверено 4 февраля 2018 г.
  10. ^ "гзип" . Man.freebsd.org. 9 октября 2011 г. Архивировано из оригинала 17 декабря 2019 г. . Проверено 1 марта 2014 г.
  11. ^ Марк Адлер (2017). «pigz: параллельная реализация gzip для современных многопроцессорных многоядерных машин» . zlib.net . Архивировано из оригинала 18 декабря 2018 года . Проверено 23 декабря 2018 г.
  12. ^ Восстановление поврежденного файла .gz - Жан-Лу Гайи, GZip.org
  13. ^ «Как извлечь/разархивировать файлы tar.gz из командной строки Linux» . База знаний от phoenixNAP . 14 ноября 2019 года . Проверено 12 января 2022 г.
  14. ^ Лоуренс, Эрик (21 ноября 2014 г.). «Сжатие Интернета» . Блоги MSDN > IEInternals . Майкрософт . Архивировано из оригинала 28 октября 2015 года . Проверено 2 ноября 2015 г.
  15. ^ «Инструмент сравнения: 7-zip, bzip2 и gzip» . www.compressratings.com . Архивировано из оригинала 1 ноября 2014 года . Проверено 1 ноября 2014 г.
  16. ^ Цзян, Чжиин; Ян, Мэтью; Цирлин Михаил; Тан, Рафаэль; Дай, Ицинь; Лин, Джимми (июль 2023 г.). « Текстовая классификация с низкими ресурсами: метод классификации без параметров с компрессорами» . Выводы Ассоциации компьютерной лингвистики: ACL 2023 . Торонто, Канада: Ассоциация компьютерной лингвистики: 6810–6828. doi : 10.18653/v1/2023.findings-acl.426 . S2CID   260668487 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 98847e9971bd61ce5521c2c2e3e37278__1720654620
URL1:https://arc.ask3.ru/arc/aa/98/78/98847e9971bd61ce5521c2c2e3e37278.html
Заголовок, (Title) документа по адресу, URL1:
gzip - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)