Введение

Программа сжатия для Unix shell, основанная на алгоритме сжатия LZW.

`compress` – это программа для сжатия Unix shell, основанная на алгоритме сжатия LZW. По сравнению с самой быстрой настройкой `gzip`, `compress` немного медленнее при сжатии, немного быстрее при распаковке и имеет значительно более низкую степень сжатия. Для сжатия данных Hutter Prize требуется 1,8 Мбайт памяти, что немного больше, чем при самой медленной настройке `gzip`. Утилита `uncompress` восстанавливает файлы в их исходное состояние после сжатия с помощью утилиты `compress`. Если файлы не указаны, стандартный ввод будет распакован в стандартный вывод. В будущих редакциях спецификаций POSIX и Single Unix планируется поддержка алгоритма DEFLATE, используемого в формате `gzip`, в этих утилитах.

Описание

Файлы, сжатые программой compress, обычно имеют расширение ".Z" (по аналогии с более ранней программой pack, которая использовала расширение ".z"). Большинство программ tar передают свои данные через compress при использовании опции командной строки "Z". (Сама по себе программа tar не выполняет сжатие; она просто хранит несколько файлов в одном архивном файле.) Файлы можно восстановить в исходное состояние с помощью uncompress. Обычно uncompress не только создает несжатую копию файла, но и восстанавливает метку времени и другие атрибуты сжатого файла. Для файлов, созданных compress на других системах, uncompress поддерживает сжатие с глубиной от 9 до 16 бит.

История

Алгоритм LZW, использованный в [укажите, в чем использован], был запатентован Исследовательским центром Сперри в 1983 году. Терри Уэлч опубликовал статью в IEEE об этом алгоритме в 1984 году, но не упомянул, что подал заявку на патент. Спенсер Томас из Университета Юты, не зная о pending патенте на алгоритм LZW, взял эту статью и реализовал [укажите, что реализовал] в 1984 году. Формат изображения GIF также использовал сжатие LZW таким образом, и впоследствии Unisys потребовала выплату роялти за реализации GIF. Джозеф М. Орост возглавил команду и вместе с Томасом и другими разработал "окончательную" версию (4.0) [укажите, что разработали] и опубликовал её как свободное программное обеспечение в группе новостей USENET "net.sources" в 1985 году. Патент на [укажите, на что получен патент] был выдан в 1985 году, и именно поэтому для использования [укажите, чего нельзя было использовать] без выплаты роялти компании Sperry Research (позднее вошедшей в Unisys) было невозможно. [Укажите, что] потеряло популярность в определенных кругах пользователей из-за использования алгоритма LZW, защищенного патентом Unisys. В связи с этим, gzip и bzip2 стали более популярными в операционных системах на базе Linux благодаря альтернативным алгоритмам и лучшей степени сжатия. Однако, compress сохранил свое присутствие в системах Unix и BSD, а команды [укажите, какие команды] также были портированы на операционную систему IBM i. Патент LZW в США истек в 2003 году, и теперь он находится в общественном достоянии в Соединенных Штатах. Все патенты на LZW во всем мире также истекли (см. Graphics Interchange Format#Unisys и патентное правоприменение LZW). В предстоящих редакциях спецификаций POSIX и Single Unix планируется поддержка алгоритма DEFLATE, используемого в формате gzip, в этих утилитах.

Стандартизация и доступность

Компресс был стандартизирован в спецификации X/Open CAE в 1994 году, а затем в спецификациях The Open Group Base, выпуски 6 и 7. Linux Standard Base не требует использования компресса. Компресс часто не устанавливается по умолчанию в дистрибутивах Linux, но может быть установлен из дополнительного пакета. Компресс доступен для FreeBSD, OpenBSD, MINIX, Solaris и AIX. Использование компресса разрешено в протоколе Point to Point и в HTTP/1.1, хотя в современных реализациях он используется редко, поскольку существуют более эффективные алгоритмы deflate/gzip. Утилита gunzip способна распаковывать Z-файлы.