[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
{{Перевести|en|7z}} {{Compu-file-format-stub}}
Переведено с английской версии.
Строка 13:
}}
 
'''7z''' — это свободный<ref name="History"- /> формат [[Сжатие данных|сжатия данных]]файлов в архив, поддерживающий несколько различных алгоритмов [[Сжатие данных|сжатия]], шифрования и [[Шифрование|шифрования]]предварительной обработки данных. Формат 7z изначально был реализованвыпущен вкак архиваторе [[архиватор 7-Zip]] . АрхиваторПрограмма 7-Zip публичнообщедоступна доступенв длясоответствии использованияс подусловиями лицензией"Стандартной общественной лицензии [[GNU Lesser" General. PublicLZMA License]]SDK 4.62 был размещен в открытом доступе в декабре 2008 года. Последняя стабильная версия 7-Zip и LZMA SDK - это версия 19.00.
 
Спецификация формата файла 7z распространяется с исходным кодом 7-Zip. Спецификацию можно найти в текстовом формате в подкаталоге 'doc' дистрибутива исходного кода.
[[Internet media type|MIME-тип]] файлов, заархивированных с помощью 7z — <code>application/x-7z-compressed</code>.
 
==Особенности и улучшения==
Официальная спецификация формата 7z распространяется совместно с исходным кодом архиватора 7-Zip. Спецификация в текстовом виде находится в папке 'doc' исходного кода поставки.
Формат 7z обеспечивает следующие основные функции:
 
* Открытая модульная архитектура, которая позволяет использовать любой метод сжатия, преобразования или шифрования.
== Примечания ==
* Высокие коэффициенты сжатия (в зависимости от используемого метода сжатия)
{{примечания}}
* AES- 256 шифрование .
* Поддержка больших файлов (примерно до 16 exbibytes , или 2 <sup>64</sup> байта).
* [https://en.wikipedia.org/wiki/Unicode]Имена файлов Unicode .
* Поддержка сплошного сжатия , при котором несколько файлов одинакового типа сжимаются в одном потоке, чтобы использовать объединенную избыточность, присущую аналогичным файлам.
* Сжатие и шифрование заголовков архива .
* Поддержка архивов, состоящих из нескольких частей: например, xxx.7z.001, xxx.7z.002, ... (см. Пункты контекстного меню « ''Разделить файл ...»,'' чтобы создать их, и « ''Объединить файлы ...»,'' чтобы повторно собрать архив из набор многокомпонентных файлов компонентов)
* Поддержка пользовательских библиотек плагинов кодеков.
 
Открытая архитектура формата позволяет добавлять в стандарт дополнительные будущие методы сжатия.
 
==Методы сжатия==
В настоящее время определены следующие методы сжатия:
 
* LZMA  - вариант алгоритма , использующий словарь объёмом до 4 ГБ. За этапом LZ следует энтропийное кодирование с использованием кодера дальности на основе цепей Маркова и двоичного кода.
* LZMA2  - модифицированная версия LZMA, обесп[https://en.wikipedia.org/wiki/Range_encoding] - это сжатый [https://en.wikipedia.org/wiki/Binary_tree] - это сжатый ечивающая лучшую поддержку многопоточности и меньшее расширение несжимаемых данных.
* Bzip2  - стандартный алгоритм преобразования Берроуза-Уилера . Bzip2 использует два обратимых преобразования; BWT, затем перемещает дальше с кодированием Хаффмана для уменьшения символов (фактический элемент сжатия).
* PPMd  - PPMdH Дмитрия Шкарина 2002 года (PPMII / cPPMII) с небольшими изменениями: PPMII - улучшенная версия алгоритма сжатия PPM 1984 года (прогнозирование путем частичного сопоставления).
* DEFLATE  - Стандартный алгоритм, основанный на кодировании LZ77 32 кБ и кодировании Хаффмана . Deflate встречается в нескольких форматах файлов, включая ZIP , gzip , PNG и PDF . 7-Zip содержит кодер DEFLATE с нуля.
 
Набор инструментов повторного сжатия, называемый AdvanceCOMP, содержит копию кодера DEFLATE из реализации 7-Zip; Эти утилиты можно использовать для дальнейшего сжатия размера существующих файлов gzip , ZIP , PNG или MNG .
==Фильтры предварительной обработки==
LZMA SDK поставляется с включенными препроцессорами BCJ и BCJ2 , так что на более поздних этапах может достигаться большее сжатие: для процессоров x86 , ARM , PowerPC (PPC), IA-64 Itanium и ARM Thumb цели перехода «нормализованы» до сжатия путем изменения относительного положения в абсолютные значения. Для x86 это означает, что ближние переходы, вызовы и условные переходы (но не короткие переходы и условные переходы).
 
* BCJ  - конвертер для 32-битных файлов x86.
* BCJ2  - препроцессор для 32-битных файлов x86. BCJ2 является улучшением BCJ, добавляя дополнительную обработку команд перехода / вызова x86. Ближний прыжок, ближний вызов, условные ближние прыжки цели разделяются и сжимаются отдельно в другом потоке.
* Дельта-кодирование  - дельта-фильтр, базовый препроцессор для мультимедийных данных.
 
Подобная исполняемая технология предварительной обработки включена в другое программное обеспечение; RAR компрессор оснащен смещения сжатия для 32-разрядных x86 исполняемых файлов и IA-64 исполняемых файлов, а UPX выполнения компрессор исполняемых файлов включает в себя поддержку для работы с 16-битными значениями в пределах DOS бинарных файлов.
==Шифрование==
Формат 7z поддерживает шифрование по алгоритму AES с 256-битным ключом. Ключ генерируется из предоставленной пользователем парольной фразы с использованием алгоритма, основанного на хэш-функции SHA-256 . SHA-256 выполняется 2 <sup>18</sup> (262144) раз,  что вызывает значительную задержку на низкопроизводительных ПК перед началом сжатия или извлечения. Этот метод называется растягиванием клавиш и используется для более сложного поиска парольной фразы. Текущие атаки на основе графического процессора и пользовательские аппаратные средства ограничивают эффективность этого конкретного метода растяжения ключа. поэтому все еще важно выбрать надежный пароль. Формат 7z позволяет шифровать имена файлов архива 7z.
 
==Форматы==
Формат 7z не хранит разрешения файловой системы (например, разрешения владельца / группы UNIX или списки ACL NTFS ) и, следовательно, может не подходить для целей резервного копирования / архивирования. Обходной путь в UNIX-подобных системах для этого необходимо преобразовать данные в поток битов tar перед сжатием в 7z. Но стоит отметить, что GNU tar (распространенный во многих средах UNIX) также может сжимать с помощью алгоритма LZMA без использования 7z, и что в этом случае предложенный. Расширение файла для архива - ".tar.lzma" (или просто ".tlz"), а не ".tar.7z". С другой стороны, важно отметить, что tar не сохраняет кодировку файловой системы, что означает, что сжатые tar-файлы имена файлов могут стать нечитаемыми, если они распакованы на другом компьютере. Также можно использовать LZMA2, запустив его через инструмент xz . Последние версии GNU tar поддерживают <code>-J</code>коммутатор, который запускает TAR через XZ. Расширение файла: «.tar.xz» или «.txz». Этот метод сжатия был принят во многих дистрибутивах для упаковки, таких как Arch, Debian (deb), Fedora (rpm) и Slackware.
 
Формат 7z не позволяет извлекать некоторые «испорченные файлы» - например, если у вас есть первый сегмент серии файлов 7z, 7z не может дать начало файлам внутри архива - он должен ждать, пока все Сегменты загружены. В формате 7z также отсутствуют записи о восстановлении, что делает его уязвимым для деградации данных, если только он не используется совместно с внешними решениями, такими как архивы , или внутри файловых систем с надежным исправлением ошибок . Для сравнения, в zip- файлах также отсутствует функция восстановления.
 
==Ссылки==
[www.7-zip.org]
 
 
<nowiki>[[Категория:Архиваторы]]</nowiki>
 
<nowiki>[[Категория:Архиваторы и компрессоры]]</nowiki>
 
<nowiki>[[Категория:Сжатие данных]]</nowiki>{{примечания}}
 
{{Архиваторы}}