Info-ZIP
Info-ZIP — это набор свободных программ с открытым исходным кодом для сжатия и архивации данных в форматах ZIP и UnZip, а также название проекта, разрабатывающего и поддерживающего эти программы. Проект является одним из старейших и наиболее распространённых инструментов для работы с ZIP-архивами в операционных системах семейства Unix, а также на платформах DOS, Windows, OS/2 и многих других.
История
Проект Info-ZIP был основан в 1990 году группой разработчиков, стремившихся создать свободную, переносимую и совместимую с существующими стандартами реализацию алгоритмов сжатия, используемых в формате ZIP. На тот момент формат ZIP уже был широко распространён в среде MS-DOS благодаря программе PKZIP от компании PKWARE, но его исходный код был закрыт, а версии для других операционных систем отсутствовали.
Первая публичная версия Info-ZIP (v1.0) была выпущена в 1991 году. Она включала в себя утилиты zip и unzip, которые могли создавать и распаковывать ZIP-архивы. С самого начала проект придерживался принципов открытости: исходный код распространялся под лицензией, близкой к BSD, что позволяло использовать его в любых, в том числе коммерческих, проектах.
В 1990-е годы Info-ZIP стал стандартом де-факто для работы с ZIP-архивами в Unix-подобных системах (Linux, BSD, Solaris). Разработчики активно портировали код на новые платформы, добавляли поддержку новых алгоритмов сжатия (например, Deflate64) и улучшали совместимость с архивами, созданными другими программами (PKZIP, WinZip). Последний стабильный релиз (v3.0) был выпущен в 2008 году, после чего проект перешёл в режим поддержки, хотя отдельные исправления и обновления продолжают выходить.
Состав пакета
Основными компонентами Info-ZIP являются две утилиты командной строки:
- zip — программа для создания и обновления ZIP-архивов. Она принимает список файлов и каталогов, сжимает их с использованием алгоритма Deflate (или других, в зависимости от версии) и упаковывает в один файл с расширением
.zip. - unzip — программа для распаковки ZIP-архивов. Она извлекает файлы из архива, восстанавливая их структуру каталогов, атрибуты и временные метки. Поддерживает просмотр содержимого архива без распаковки, тестирование целостности и выборочное извлечение.
Помимо основных утилит, в состав пакета входят вспомогательные инструменты:
- zipcloak — утилита для шифрования и дешифрования ZIP-архивов с использованием традиционного (слабого) алгоритма шифрования PKZIP.
- zipnote — программа для просмотра и редактирования комментариев, хранящихся в ZIP-архиве.
- zipsplit — утилита для разбиения большого ZIP-архива на несколько томов (томов фиксированного размера).
Функциональные возможности
Info-ZIP поддерживает все основные возможности формата ZIP, включая:
- Сжатие данных: Основной алгоритм — Deflate (RFC 1951). В некоторых версиях доступна поддержка Deflate64 (Enhanced Deflate) и BZip2.
- Сжатие без потерь: Все алгоритмы, используемые в Info-ZIP, являются алгоритмами сжатия без потерь, то есть исходные данные после распаковки полностью восстанавливаются.
- Поддержка многотомных архивов: Архив может быть разбит на несколько файлов (томов) для записи на сменные носители (дискеты, CD-R) или для передачи по сети.
- Шифрование: Поддерживается традиционное шифрование на основе пароля (алгоритм PKZIP 2.0). Важно: этот метод шифрования считается устаревшим и небезопасным; для защиты данных рекомендуется использовать современные инструменты (например, 7-Zip с AES-256).
- Хранение атрибутов файлов: Сохраняются права доступа (в Unix-системах), временные метки, информация о владельце файла.
- Поддержка длинных имён файлов: В архивах могут храниться файлы с именами длиной до 65535 символов (в кодировке UTF-8 или CP437).
- Работа с потоками: Утилиты могут читать данные из стандартного ввода (
stdin) и выводить в стандартный вывод (stdout), что позволяет использовать их в конвейерах командной строки. - Совместимость: Архивы, созданные Info-ZIP, полностью совместимы с архиваторами PKZIP, WinZip, 7-Zip, а также со встроенными средствами работы с ZIP в операционных системах (например, «Проводник» в Windows).
Применение
Info-ZIP является стандартным инструментом для работы с ZIP-архивами в большинстве дистрибутивов Linux и Unix-подобных систем. Он используется:
- В системном администрировании: для резервного копирования, распространения конфигурационных файлов, создания дистрибутивов программного обеспечения.
- В разработке ПО: для упаковки исходных кодов, бинарных файлов и документации в архивы для распространения (например, на GitHub или SourceForge).
- В скриптах автоматизации: благодаря своей простоте и поддержке конвейеров, утилиты
zipиunzipчасто используются в shell-скриптах для обработки файлов. - В веб-разработке: для создания архивов с файлами сайтов, резервного копирования баз данных (в связке с другими утилитами).
- В повседневной работе: для сжатия и распаковки файлов, отправки по электронной почте, хранения на внешних носителях.
Лицензия и распространение
Исходный код Info-ZIP распространяется под лицензией Info-ZIP License, которая является разрешительной (permissive) и близка по духу к лицензиям BSD и MIT. Она позволяет использовать, модифицировать и распространять код как в открытых, так и в закрытых коммерческих проектах без выплаты роялти. Единственным требованием является сохранение уведомления об авторских правах.
Благодаря этой лицензии, код Info-ZIP был включён во многие другие проекты, включая библиотеки для работы с ZIP-архивами (например, libzip), а также в состав операционных систем (например, в Windows 10 и 11 встроенная поддержка ZIP-архивов частично основана на коде Info-ZIP).
Критика и ограничения
Несмотря на свою широкую распространённость, Info-ZIP имеет ряд ограничений:
- Устаревшее шифрование: Как уже упоминалось, используемый алгоритм шифрования (PKZIP 2.0) является слабым и может быть взломан за короткое время. Для защиты конфиденциальных данных его использовать не рекомендуется.
- Отсутствие поддержки современных алгоритмов сжатия: Info-ZIP не поддерживает алгоритмы LZMA, PPMd или WavPack, которые обеспечивают более высокую степень сжатия, особенно для определённых типов данных (например, текстов или аудио).
- Ограниченная поддержка Unicode: Хотя Info-ZIP поддерживает длинные имена файлов, работа с именами, содержащими символы, отличные от ASCII (например, кириллицу), может быть проблематичной в некоторых системах, особенно при использовании старых версий.
- Отсутствие графического интерфейса: Программа является исключительно консольной, что может быть неудобно для пользователей, привыкших к графическим архиваторам (например, 7-Zip, WinRAR).
- Прекращение активной разработки: Последний стабильный релиз (v3.0) был выпущен в 2008 году, и новые функции добавляются крайне редко. Проект поддерживается сообществом, но не развивается активно.
Интересные факты
- Название «Info-ZIP» происходит от слов «Information» и «ZIP», подчёркивая цель проекта — предоставить информацию и свободный инструмент для работы с форматом ZIP.
- Исходный код Info-ZIP был использован при создании многих других популярных архиваторов, включая
unzipв составе GNU Coreutils (в некоторых дистрибутивах) и библиотекуlibzip, которая лежит в основе архиватора KDE Ark. - В 1990-е годы, когда интернет был медленным, Info-ZIP активно использовался для сжатия дистрибутивов программного обеспечения, что позволяло значительно сократить время загрузки.
Источники
- Официальный сайт проекта Info-ZIP (info-zip.org)
- Документация к утилитам
zipиunzip(man-страницы) - RFC 1951 (Deflate Compressed Data Format Specification)
- Статья «Info-ZIP» в англоязычной Википедии
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →