Zip, архив и контейнер

Zip стал универсальным форматом сжатого архива, часто не использующим программное обеспечение как средство хранения.

Формат был размещен в открытом доступе, что позволяет таким операционным системам, как Windows, Linux, Mac интегрировать его в свои средства управления файлами и авторам распространять их программное обеспечение в этом формате. Таким образом, JAR-файл, содержащий байткод Java, представляет собой только ZIP-файл с расширением JAR.
Это также позволило увидеть распространение ПО для управления архивами с графическим интерфейсом, например, WinZip, IZArc, PeaZip и т. Д.

Le format zip et son histoire Если

мы не запрыгнем, мы в конце концов будем заперты!

При использовании исходного кода свободно доступной программы для сжатия ARC для создания собственной версии, которую он назвал PKARC, Фил Кац предстал перед судом. В то время как ARC была полностью C, PKARC была сочетанием Assembler и C, поэтому значительно быстрее. ARC в то время широко использовался для распространения программного обеспечения, а для обозначения создания архива использовался term «ARCing». Но PKARC (Фил Кац АРК) быстро стал популярнее с 1986 года, что не понравилось автору оригинала.

В основу иска легло использование слова ARC, являющегося зарегистрированным товарным знаком SEA, а также сходство между исходными кодами, подтвержденное на слушании экспертом. Наконец в 1988 году оба автора пришли к взаимопониманию. Фил Кац должен был заплатить 62 500 долл. США и обязался больше не использовать термин «ARC», а также выплатить SEA 6,5% от продаж своего программного обеспечения.

Тогда Филу Кацу стало лучше написать собственный код сжатия, который он назвал DEFLATE, и реализовать в архиваторе PKZIP, распространенном на shareware. Теперь архив имел расширение ZIP, слово, символизирующее скорость. ПКЗИП не только был эффективнее АРК, но за ним у автора было все сообщество пользователей, которые мало ценят, что проблемы конкуренции решаются через судебные разбирательства.
В самом деле, второй иск был подан SEA, потому что в руководстве PKZIP использовался термин «arcing», чтобы сказать «архивировать»... Это похоже на упорство! Иск, кстати, проиграл SEA.
В качестве протеста расширение «.arc» часто заменялось на «.sue», что приводит к «судебному преследованию».
Также ZIP быстро стал самым используемым форматом, а ARC ушел в небытие! А теперь используется термин «зиппинг» для обозначения создания архива...

Компания Фила Каца принесла миллионы. Однако с 90-х автор столкнулся с трудностями из-за пристрастия к алкоголю. Его много раз арестовывают за вождение в нетрезвом виде. Умер в апреле 2000 года, через двадцать лет после дебюта ПКЗИП в гостиничном номере, из-за потери внутренней крови от его хронического алкоголизма. Ему было 37 лет.

Зип, Гзип и так далее ...

ARC (1985) был основан на алгоритме LZW (Lempel-Ziv-Welsh). Поскольку исходный код был доступен в начале, его можно было переносить на несколько платформ и при случае добавилось второе кодирование - кодирование Хуфмана.

PKZIP 1.0 (1989) использовал тот же алгоритм, что и ARC. В версии 2.0 он принял новый алгоритм DEFLATE всегда на основе первого сжатия LZW, а затем второй с кодированием Хаффмана. PKZIP с тех пор использует несколько режимов сжатия с несколькими другими алгоритмами.

МГФ (1987). В этом графическом формате используется LZW. Интересно, что компания Unisys, обладающая патентом на формат LZ78 и LZW (в США), запустила серию судебных исков с целью заставить пользователей платить, что привело к созданию конкурирующего формата PNG.

PNG (1995, «Переносная сетевая графика»). Основываясь на zlib, использует более эффективный и не эмкомбрированный патентный алгоритм DEFLATE.

Тар (Tape Archive, 1975, Bell Labs). Контейнер для хранения списка файлов в одном архиве, который можно извлечь индивидуально. Сжатия нет, но затем можно сжать архив в блок. Чаще всего с Gzip, что производит архив .tar.gz.

Гзип (1992). На основе DEFLATE, в отличие от PKZIP, планируется сжать уникальный файл.

Зип (1992). Один из инструментов Info-Zip с unzip, совместимый с форматом ZIP и использующий DEFLATE, является открытым исходным кодом и переносится на многие платформы. В архиве также есть расширение .zip. Info-zip использует библиотеку zlib от Gzip.

Злиб (1995). Созданный в качестве отдельного модуля gzip для использования PNG и библиотекой libpng, теперь используется во многих языках программирования для создания архивов и доступа к содержанию. Таким образом, эта библиотека используется Zip, Gzip, PNG, Git и другими. Также используется для сжатия файлов между сервером и браузером и ускорения передачи.

Формат Zip

Формат всегда был публичным и описан в файле APPNOTE.TXT включает в архив то, что позволяет стороннему ПО быть совместимым. Файл содержит упоминание о том, что эту спецификацию можно реализовать.

В zip-архиве каталог со списком файлов помещается в конец. Это позволяет добавить другие файлы. В этом случае в конец добавляется новый каталог, который добавляет их в список.

Для каждого файла есть:

Центральный каталог состоит из списка заголовков, по одному на файл, а затем из записи конца каталога.

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

Запись в конце каталога включает такую информацию, как количество файлов, номер диска для архивов, распределенных по нескольким дискам (он разработан во время дискет), положение центрального каталога и т. Д.

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

Ссылки

Дополнительные сведения см. в файле APPNOTE.TXT.

РФС 1951. Описание алгоритма сжатия DEFLATE, основанного на объединении LZW и кодировании Хаффмана.