WikiDer > Gzip
Оригинальный автор (ы) | |
---|---|
Разработчики) | Проект GNU |
изначальный выпуск | 31 октября 1992 г. |
Стабильный выпуск | 1.10 (GNU Gzip)[1] / 29 декабря 2018 |
Репозиторий | мерзавец |
Написано в | C |
Операционная система | Unix-подобный, План 9, Inferno |
Тип | Сжатие данных |
Лицензия | GPLv3 |
Интернет сайт | www |
gzip это формат файла и программное обеспечение используется для сжатие и распаковка файлов. Программа была создана Жан-Лу Гейли и Марк Адлер как бесплатно программное обеспечение замена для компресс программа, использованная в начале Unix системы и предназначены для использования GNU («g» от «GNU»). Версия 0.1 была впервые публично выпущена 31 октября 1992 года, а версия 1.0 последовала за ней в феврале 1993 года.
Декомпрессия gzip формат может быть реализован как алгоритм потоковой передачи, важная функция для Веб-протоколы, обмен данными и ETL (в стандартные трубы) Приложения.
Формат файла
Расширение имени файла | .gz |
---|---|
Тип интернет-СМИ | приложение / gzip[2] |
Единый идентификатор типа (UTI) | org.gnu.gnu-zip-архив |
Магическое число | 1f 8b |
Разработан | Жан-лу Гейли и Марк Адлер |
Тип формата | Сжатие данных |
Открытый формат? | да |
Интернет сайт | gzip |
gzip основан на ВЫПУСКАТЬ алгоритм, который представляет собой комбинацию LZ77 и Кодирование Хаффмана. DEFLATE был задуман как замена LZW и другие патент-обремененный Сжатие данных алгоритмы что в то время ограничивало удобство использования компресс и другие популярные архиваторы.
"gzip" также часто используется для обозначения формата файла gzip, а именно:
- 10-байтовый заголовок, содержащий магическое число (
1f 8b
), метод сжатия (08
для DEFLATE), 1 байт флагов заголовка, 4-байтовая отметка времени, флаги сжатия и идентификатор операционной системы. - необязательные дополнительные заголовки, разрешенные флагами заголовков, включая исходное имя файла, поле комментария, «дополнительное» поле и нижнюю половину CRC-32 контрольная сумма для раздела заголовка.[3]
- тело, содержащее сжатый DEFLATE полезная нагрузка
- 8-байтовый нижний колонтитул, содержащий CRC-32 контрольная сумма и длина исходных несжатых данных по модулю 232.[4]
Хотя его формат файла также позволяет использовать несколько таких потоков. соединенный (сжатые файлы просто распаковываются и объединяются, как если бы они были изначально одним файлом),[5] gzip обычно используется для сжатия отдельных файлов.[6] Сжатые архивы обычно создаются путем объединения коллекций файлов в один деготь архив (также называемый tarball),[7] а затем сжать этот архив с помощью gzip. Конечный сжатый файл обычно имеет расширение .tar.gz или же .tgz.
gzip не следует путать с ZIP формат архива, который также использует DEFLATE. Формат ZIP может содержать коллекции файлов без внешнего архиватора, но он менее компактен, чем сжатый. архивы хранит одни и те же данные, поскольку сжимает файлы по отдельности и не может использовать преимущества избыточности между файлами (твердое сжатие).
Реализации
Разработчики) | Фонд NetBSD |
---|---|
Репозиторий | cvsweb |
Написано в | C |
Тип | Сжатие данных |
Лицензия | Упрощенная лицензия BSD |
Написаны различные реализации программы. Наиболее широко известна реализация проекта GNU с использованием Лемпель-Зив кодирование (LZ77). OpenBSDверсия gzip на самом деле компресс программа, в которую в OpenBSD 3.4 была добавлена поддержка формата gzip. Буква "g" в этой конкретной версии означает бесплатно.[8] FreeBSD, DragonFly BSD и NetBSD используйте реализацию под лицензией BSD вместо версии GNU; это на самом деле Интерфейс командной строки за zlib предназначен для совместимости с вариантами реализации GNU.[9] Эти реализации изначально взяты из NetBSD, и поддерживать декомпрессию bzip2 и Unix пакет формат.
Альтернативная программа сжатия, обеспечивающая лучшее сжатие на 3-8%, - Zopfli. Он обеспечивает сжатие, совместимое с gzip, с использованием более исчерпывающих алгоритмов за счет необходимого времени сжатия. Это не влияет на время декомпрессии.
свинья
, написанный Марком Адлером, совместим с gzip и ускоряет сжатие за счет использования всех доступных ядер и потоков ЦП.[10]
Деривативы и другое использование
В деготь утилита, включенная в большинство дистрибутивов Linux, может извлекать файлы .tar.gz, передавая z вариант, например, tar -zxf file.tar.gz.
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.[11]
zlib DEFLATE используется внутри Переносимая сетевая графика (PNG) формат.
С конца 1990-х гг. bzip2Утилита сжатия файлов, основанная на алгоритме сортировки блоков, приобрела некоторую популярность в качестве замены gzip. Он создает файлы значительно меньшего размера (особенно для исходного кода и другого структурированного текста), но за счет памяти и времени обработки (до 4 раз).[12]
AdvanceCOMP и 7-молния может создавать файлы, совместимые с gzip, используя внутреннюю реализацию DEFLATE с лучшими степенями сжатия, чем сам gzip, за счет большего времени процессора по сравнению с эталонной реализацией.[нужна цитата]
Смотрите также
Примечания
- ^ Мейеринг, Джим (29 декабря 2018 г.). "gzip-1.10 выпущен [стабильный]". Фонд свободного программного обеспечения. Получено 31 декабря 2018.
- ^ Типы носителей 'application / zlib' и 'application / gzip'. Tools.ietf.org. Дои:10.17487 / RFC6713. RFC 6713. Получено 1 марта 2014.
- ^ Дойч
, Л. Питер. "Спецификация формата файла GZIP версии 4.3". tools.ietf.org. Получено 23 июля 2019. - ^ Жан-Лу Гейли. "GNU Gzip". Gnu.org. Получено 11 октября 2015.
- ^ «GNU Gzip: расширенное использование». Gnu.org. Получено 28 ноября 2012.
- ^ "Может ли gzip сжать несколько файлов в один архив?". Gnu.org. Получено 27 января 2010.
- ^ "tarball, Файл жаргона, версия 4.4.7". Catb.org. Получено 27 января 2010.
- ^ "Страница руководства OpenBSD gzip (1)". Openbsd.org. OpenBSD. Получено 4 февраля 2018.
- ^ "gzip". Man.freebsd.org. 9 октября 2011 г.. Получено 1 марта 2014.
- ^ Марк Адлер (2017). "pigz: параллельная реализация gzip для современных многопроцессорных многоядерных машин". zlib.net.
- ^ Лоуренс, Эрик (21 ноября 2014 г.). «Сжатие Интернета». Блоги MSDN> IEInternals. Microsoft.
- ^ "Инструмент сравнения: 7-zip vs bzip2 vs gzip". сжатиеratings.com. Архивировано из оригинал 1 ноября 2014 г.. Получено 1 ноября 2014.
Рекомендации
- RFC 1952 г. - Спецификация формата файла GZIP версии 4.3