Открыть сервис

PKZIP

PKZIP — это условно-бесплатная утилита для сжатия (архивации) данных, разработанная американским программистом Филом Кацем (Philip Katz) и впервые выпущенная в 1989 году. PKZIP стала одной из первых широко распространённых программ для создания ZIP-архивов на платформе DOS, определив стандарт сжатия данных в индустрии персональных компьютеров на рубеже 1980-х и 1990-х годов. Название программы является аббревиатурой от имени разработчика (Phil Katz) и слова «ZIP», обозначающего формат архива.

История

Предпосылки и создание

До появления PKZIP основным стандартом сжатия на платформе IBM PC были программы ARC, разработанные Томом Хендерсоном (System Enhancement Associates, SEA). Однако ARC был коммерческим продуктом. Фил Кац, будучи программистом-любителем, создал в 1988 году программу PKARC, которая могла работать с архивами ARC, но распространялась как условно-бесплатное ПО (shareware). Компания SEA подала на Каца в суд за нарушение авторских прав на формат ARC, и в 1988 году Кац проиграл процесс, обязавшись прекратить выпуск PKARC.

В ответ на это Кац разработал собственный, более эффективный алгоритм сжатия и новый формат архива — ZIP. В 1989 году он выпустил программу PKZIP (версия 0.9) и сопутствующую утилиту для распаковки PKUNZIP. Формат ZIP был спроектирован как открытый и документированный, что позволило другим разработчикам создавать совместимые программы.

Расцвет и распространение

PKZIP быстро завоевала популярность благодаря нескольким факторам:

  • Высокая степень сжатия: по сравнению с ARC и другими программами того времени PKZIP обеспечивала лучшее сжатие текстовых и бинарных файлов.
  • Скорость работы: алгоритмы Каца были оптимизированы для процессоров Intel 8086/80286.
  • Модель shareware: пользователи могли бесплатно скачать и опробовать программу, а затем зарегистрировать её за небольшую плату (обычно 25–50 долларов США). Это способствовало массовому распространению через BBS и дискеты.
  • Открытость формата: публикация спецификаций формата ZIP стимулировала создание альтернативных архиваторов (например, Info-ZIP) и встраивание поддержки ZIP в другие программы.

К середине 1990-х годов PKZIP стала де-факто стандартом архивации в среде DOS и ранних версиях Windows. Архивы в формате ZIP начали активно использоваться для распространения программного обеспечения, документации и игр. Файлы с расширением .zip стали ассоциироваться с PKZIP.

Упадок и наследие

С развитием графических интерфейсов (Windows 95) и появлением конкурирующих архиваторов (WinZip, WinRAR, 7-Zip), а также встроенной поддержки ZIP в операционных системах (начиная с Windows XP), популярность консольной версии PKZIP пошла на спад. Компания PKWARE, основанная Кацем, продолжала выпускать обновления, но доля рынка сократилась.

Фил Кац, страдавший от алкоголизма, умер в 2000 году. Несмотря на это, формат ZIP, созданный им, остаётся одним из самых распространённых форматов сжатия данных в мире. PKZIP как продукт продолжал существовать в корпоративном сегменте (PKZIP for Windows, PKZIP for z/OS), где используется для автоматизации задач резервного копирования и сжатия больших объёмов данных.

Алгоритмы и характеристики

Метод сжатия

PKZIP использует гибридный алгоритм сжатия, основанный на двух методах:

  1. LZ77 (Lempel-Ziv 1977): алгоритм словарного сжатия, который находит повторяющиеся последовательности байтов и заменяет их ссылками на предыдущие вхождения. Это эффективно для текстов и данных с повторениями.
  2. Алгоритм Хаффмана: метод статистического кодирования, который присваивает более короткие коды часто встречающимся символам и более длинные — редким. В PKZIP используется фиксированный или адаптивный вариант.

Сочетание этих методов (так называемый «Deflate») было реализовано Кацем и стало основой для формата ZIP. В более поздних версиях PKZIP были добавлены дополнительные методы: Shrink (упрощённый LZW), Reduce, Implode (предшественник Deflate) и BZip2 (блочное сжатие).

Параметры сжатия

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

Поддерживаемые форматы

PKZIP работала исключительно с форматом ZIP. В состав пакета входили:

  • PKZIP.EXE — программа для создания архивов.
  • PKUNZIP.EXE — программа для извлечения файлов из архивов.
  • ZIP2EXE.EXE — утилита для создания самораспаковывающихся архивов (SFX) с расширением .exe.
  • PKZIPFIX.EXE — инструмент для восстановления повреждённых архивов.

Использование

Командная строка

PKZIP была консольной программой. Типичный синтаксис команды выглядел так:

`` PKZIP -a archive.zip file1.txt file2.doc ``

Ключи:

  • -a — добавить файлы в архив.
  • -m — переместить файлы (удалить оригиналы после архивации).
  • -d — удалить файлы из архива.
  • -p — сохранить пути к файлам.
  • -s — задать пароль (шифрование).
  • -r — рекурсивно обрабатывать подкаталоги.

Для распаковки использовалась команда:

`` PKUNZIP archive.zip ``

Шифрование

PKZIP поддерживала защиту паролем на основе симметричного шифрования. В ранних версиях использовался слабый алгоритм (на основе псевдослучайного генератора), который был подвержен атакам. В более поздних версиях (PKZIP 2.0 и выше) был внедрён более стойкий метод шифрования с использованием алгоритма AES (256 бит) в корпоративных редакциях.

Значение и влияние

Вклад в индустрию

PKZIP сыграла ключевую роль в становлении shareware-модели распространения ПО. Фил Кац доказал, что качественная программа может распространяться бесплатно с возможностью добровольной оплаты, что стало прообразом современных моделей freemium и условно-бесплатного ПО.

Формат ZIP как стандарт

Открытость формата ZIP привела к его повсеместному принятию. Сегодня ZIP-архивы поддерживаются всеми основными операционными системами (Windows, macOS, Linux) без установки дополнительных программ. Многие веб-браузеры, почтовые клиенты и облачные сервисы (Google Drive, Dropbox) используют ZIP для упаковки файлов.

Наследие в программировании

Алгоритм Deflate, реализованный в PKZIP, лёг в основу многих других форматов сжатия, включая PNG (изображения), gzip (сжатие данных в Unix/Linux) и HTTP-сжатие (Content-Encoding: deflate). Библиотека zlib, реализующая Deflate, является одной из самых распространённых библиотек сжатия в мире.

Критика

Судебные иски

Основная критика в адрес PKZIP связана с судебным процессом против SEA. Хотя Кац формально проиграл дело, его решение создать собственный формат и алгоритм было воспринято многими как акт независимости от монополии коммерческих продуктов. Однако в сообществе BBS и среди разработчиков shareware отношение к Кацу было неоднозначным: одни восхищались его техническим гением, другие осуждали за агрессивный маркетинг и нарушение этики.

Проблемы с безопасностью

Ранние версии PKZIP использовали слабое шифрование, которое было взломано в 1994 году. Это привело к тому, что многие пользователи считали ZIP-архивы с паролями ненадёжными. Впоследствии PKWARE внедрила AES-шифрование, но репутационный ущерб остался.

Совместимость

В некоторых случаях PKZIP создавала архивы, которые не могли быть прочитаны другими программами из-за использования проприетарных расширений (например, шифрование AES или сжатие BZip2). Это вызывало неудобства при обмене файлами между пользователями разных архиваторов.

Интересные факты

  • Фил Кац написал первую версию PKZIP на языке ассемблера для процессора Intel 8086, что обеспечило исключительную производительность.
  • Название «ZIP» было выбрано Кацем как отсылка к идее «молниеносного» сжатия (zip — «молния» на английском).
  • PKZIP стала одной из первых программ, которая использовала технологию «самораспаковывающихся архивов» (SFX), позволяющую распаковывать файлы без установки архиватора.
  • В 1990-х годах PKZIP часто входила в состав дистрибутивов операционных систем и комплектов утилит для DOS.
  • На момент смерти Каца его компания PKWARE оценивалась в несколько миллионов долларов, но он не смог воспользоваться этим из-за проблем со здоровьем.

Источники

  • Katz, P. (1989). PKZIP User’s Manual. PKWARE Inc.
  • Storer, J. A. (1993). Data Compression: Methods and Theory. Computer Science Press.
  • Salomon, D. (2007). Data Compression: The Complete Reference. Springer.
  • История развития архиваторов на платформе IBM PC (статья в журнале «Мир ПК», 1995).
  • Документация PKWARE по формату ZIP (версия 6.3.2, 2004).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →