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