7-Zip — это бесплатный и открытый архиватор файлов , утилита, используемая для размещения групп файлов в сжатых контейнерах, известных как «архивы». Он разработан Игорем Павловым и впервые выпущен в 1999 году. [2] 7-Zip имеет свой собственный формат архива, называемый 7z , но может читать и записывать несколько других.
Программу можно использовать из графического пользовательского интерфейса Windows , который также имеет интеграцию с оболочкой, из интерфейса командной строки Windows как команду 7za
или 7za.exe
, а из систем POSIXp7zip
как . [12] Большая часть исходного кода 7-Zip находится под лицензией LGPL-2.1 или более поздней версии ; однако код unRAR находится под лицензией LGPL-2.1 или более поздней версии с «ограничением unRAR», которое гласит, что разработчикам не разрешается использовать код для обратного проектирования алгоритма сжатия RAR . [13] [14]
Начиная с версии 21.01 alpha предварительная поддержка Linux была добавлена в апстрим вместо проекта p7zip. [7]
По умолчанию 7-Zip создает архивы формата 7z с .7z
расширением файла . Каждый архив может содержать несколько каталогов и файлов. Как формат контейнера , безопасность или уменьшение размера достигаются путем поиска сходств во всех данных с использованием стекированной комбинации фильтров. Они могут состоять из препроцессоров, алгоритмов сжатия и фильтров шифрования .
Сжатие ядра 7z использует различные алгоритмы , наиболее распространенными из которых являются bzip2 , PPMd , LZMA2 и LZMA . Разработанная Павловым, LZMA является относительно новой системой, дебютировавшей как часть формата 7z. LZMA использует скользящий словарь на основе LZ размером до 3840 МБ, поддерживаемый кодером диапазона . [15]
Формат файла 7z является открытым и модульным . Имена файлов хранятся в формате Unicode . [16]
В 2011 году TopTenReviews обнаружил, что сжатие 7z было по крайней мере на 17% лучше, чем ZIP , [17] а собственный сайт 7-Zip с 2002 года сообщал, что, хотя результаты степени сжатия очень зависят от данных, используемых для тестов, «Обычно 7-Zip сжимает в формат 7z на 30–70% лучше, чем в формат zip, а 7-Zip сжимает в формат zip на 2–10% лучше, чем большинство других программ, совместимых с zip». [18]
Спецификация формата файла 7z распространяется вместе с исходным кодом программы в подкаталоге «doc».
7-Zip поддерживает ряд других форматов архивов со сжатием и без сжатия (как для упаковки, так и для распаковки), включая ZIP , gzip , bzip2 , xz , tar и WIM . Утилита также поддерживает распаковку архивов APM , ar , ARJ , chm , cpio , deb , FLV , JAR , LHA/LZH , LZMA , MSLZ, Office Open XML , onepkg , RAR , RPM , smzip, SWF , XAR и Z , а также образов дисков cramfs , DMG , FAT , HFS , ISO , MBR , NTFS , SquashFS , UDF и VHD . 7-Zip поддерживает формат ZIPX только для распаковки. Эта поддержка появилась как минимум с версии 9.20, выпущенной в конце 2010 года. 7-Zip добавил поддержку RAR5 в 2015 году. [19]
7-Zip может открывать некоторые файлы MSI , предоставляя доступ к метафайлам внутри вместе с основным содержимым. Некоторые форматы установщиков Microsoft CAB (сжатие LZX ) и NSIS (LZMA) могут быть открыты. Аналогично, некоторые исполняемые программы Microsoft (. EXE ), которые являются самораспаковывающимися архивами или иным образом содержат архивированное содержимое (например, некоторые файлы установки), могут быть открыты как архивы.
При сжатии файлов ZIP или gzip 7-Zip использует собственный кодировщик DEFLATE , который может достигать более высокого сжатия, но с меньшей скоростью, чем более распространенная реализация zlib DEFLATE. Реализация кодировщика deflate 7-Zip доступна отдельно как часть набора инструментов AdvanceCOMP.
Механизм распаковки архивов RAR был разработан с использованием свободно доступного исходного кода программы unRAR, которая имеет лицензионное ограничение на создание компрессора RAR. 7-Zip v15.06 и более поздние версии поддерживают извлечение файлов в формате RAR5. [20] Некоторые системы резервного копирования используют форматы, поддерживаемые программами архивации, такими как 7-Zip; например, некоторые резервные копии Android находятся в tar
формате и могут быть извлечены архиваторами, такими как 7-Zip. [21]
Некоторые форки добавляют больше форматов.
7-Zip поставляется с файловым менеджером вместе со стандартными инструментами архиватора. Файловый менеджер имеет панель инструментов с опциями создания архива, извлечения архива, проверки архива для обнаружения ошибок, копирования, перемещения и удаления файлов, а также открытия меню свойств файла, эксклюзивного для 7-Zip. Файловый менеджер по умолчанию отображает скрытые файлы, поскольку он не следует политикам Windows Explorer . Вкладки показывают имя, время изменения, исходный и сжатый размеры, атрибуты и комментарии ( формат 4DOS descript.ion
).
При переходе на один каталог вверх в корне, появляются все диски, съемные или внутренние. При повторном переходе вверх отображается список с четырьмя вариантами:
%UserProfile%\My Documents
7-Zip поддерживает:
tc
) и дат последнего доступа ( ta
) в архивах (в дополнение к датам изменения). [26]Предоставляются две версии командной строки : 7z (7z.exe), использующая внешние библиотеки; и 7za (7za.exe), которая является автономным исполняемым файлом, содержащим встроенные модули, но с поддержкой сжатия/распаковки, ограниченной форматами 7z , ZIP , gzip , bzip2 , Z и tar . Доступна 64-битная версия с поддержкой больших карт памяти, что обеспечивает более быстрое сжатие. Все версии поддерживают многопоточность.
7-zip поставляется с системой плагинов для расширения. Официальная страница "Ссылки" указывает на множество плагинов, написанных TC4Shell, которые обеспечивают дополнительную поддержку файлов. [30]
7-Zip имеет LZMA SDK , который изначально имел двойную лицензию GNU LGPL и Common Public License , [31] с дополнительным специальным исключением для связанных двоичных файлов. 2 декабря 2008 года SDK был размещен Игорем Павловым в общественном достоянии . [11]
В более старых версиях самораспаковывающиеся архивы были уязвимы для выполнения произвольного кода посредством перехвата DLL : они загружают и запускают DLL с именем UXTheme.dll, если он находится в той же папке, что и исполняемый файл. [32] [33] [34] В примечаниях к выпуску 7-Zip 16.03 говорится, что в установщике и модулях SFX добавлена защита от атаки предварительной загрузки DLL. [2]
Версии 7-Zip до 18.05 содержат уязвимость выполнения произвольного кода в модуле извлечения файлов из архивов RAR ( CVE - 2018-10115), уязвимость, которая была исправлена 30 апреля 2018 года. [35]
Версии до 23.0 также содержали уязвимость выполнения произвольного кода , исправленную 7 мая 2023 года. [36]
Snapfiles.com в 2012 году оценил 7-Zip на 4,5 звезды из 5, отметив, что «[его] интерфейс и дополнительные функции довольно базовые, но степень сжатия выдающаяся». [37]
В 2009 году Джастин Джеймс на TechRepublic обнаружил, что подробные настройки для интеграции с Windows File Manager были «оценены» и назвал утилиту для тестирования сжатия-распаковки «отличной». И хотя диалоговое окно архива имеет настройки, которые «собьют с толку большинство пользователей», он пришел к выводу: «7-Zip занимает хорошую нишу между встроенными возможностями Windows и функциями платных продуктов, и он способен обрабатывать большое количество форматов файлов в процессе». [38]
В период с 2002 по 2024 год 7-Zip был загружен 428 миллионов раз только с SourceForge . [39]
Программное обеспечение получило награды. В 2007 году SourceForge присудил ему награды Community Choice Awards за «Технический дизайн» и «Лучший проект». [40] В 2013 году Tom's Hardware провела тест скорости сжатия, сравнив 7-ZIP, MagicRAR, WinRAR , WinZip; они пришли к выводу, что 7-ZIP превзошел все остальные по скорости сжатия, коэффициенту и размеру, и наградила программное обеспечение наградой Tom's Hardware Elite 2013 года. [41]