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

Архивация

Архивация — это процесс сжатия, упаковки и/или объединения одного или нескольких файлов в единый архивный файл (архив), а также обратный процесс извлечения (распаковки) данных из архива. Основные цели архивации включают уменьшение объёма занимаемого дискового пространства (сжатие данных), объединение множества файлов в один для удобства хранения и передачи, а также шифрование и защиту информации.

История

Понятие архивации возникло задолго до появления электронно-вычислительных машин. В традиционном делопроизводстве архивация означала систематизацию, описание и перемещение бумажных документов в архивное хранилище. С развитием компьютерных технологий в середине XX века возникла необходимость в цифровой архивации.

Первые программы для сжатия данных появились в 1970-х годах. Одним из пионеров стал алгоритм LZ77 (1977), разработанный Абрахамом Лемпелем и Якобом Зивом. На его основе были созданы многие последующие форматы. В 1985 году Филом Кацем был выпущен архиватор PKARC, а в 1987 году — PKZIP, который популяризировал формат ZIP. В 1990-х годах широкое распространение получил формат RAR, созданный российским программистом Евгением Рошалем. В 2000-х годах появились форматы 7z (с открытым исходным кодом) и TAR (преимущественно в Unix-системах).

Основные принципы

Архивация основывается на двух ключевых процессах: сжатие данных и упаковка.

Сжатие данных

Сжатие данных — это преобразование исходной последовательности битов в более короткую последовательность. Существуют два основных типа сжатия:

  • Сжатие без потерь (lossless) — позволяет восстановить исходные данные в точности до бита. Применяется для текстовых файлов, программ, баз данных, архивов. Алгоритмы: LZ77, LZ78, LZW, Deflate, BWT (Burrows-Wheeler transform), Huffman coding.
  • Сжатие с потерями (lossy) — допускает незначительное ухудшение качества данных (например, изображений, аудио, видео) в обмен на значительно больший коэффициент сжатия. При архивации файлов в чистом виде сжатие с потерями обычно не применяется, но используется в мультимедийных форматах (JPEG, MP3, MPEG).

Упаковка

Упаковка — это объединение нескольких файлов и папок в один файл-архив с сохранением структуры каталогов, атрибутов файлов (дата создания, права доступа) и метаданных. Упаковка может происходить как со сжатием, так и без него (например, формат TAR).

Форматы архивов

Существует множество форматов архивов, различающихся алгоритмами сжатия, поддерживаемыми функциями и распространённостью.

ФорматАлгоритм сжатияОсобенностиРаспространение
ZIPDeflate, BZIP2, LZMAНаиболее распространённый; поддержка шифрования AES; совместимость со всеми ОСУниверсальный
RARRAR (собственный)Поддержка многотомных архивов; восстановление повреждённых данных; шифрование AES-256Windows, macOS, Linux (через сторонние утилиты)
7zLZMA, LZMA2, PPMd, BZIP2Высокая степень сжатия; открытый исходный код; поддержка шифрования AES-256Кроссплатформенный
TARНет (только упаковка)Сохраняет права доступа и метаданные Unix; часто используется с gzip (tar.gz) или bzip2 (tar.bz2)Unix-подобные системы
GZIPDeflateОднопоточное сжатие одного файла; часто используется с TARUnix-подобные системы
BZIP2BWT (Burrows-Wheeler)Более высокая степень сжатия, чем GZIP, но медленнееUnix-подобные системы
LZMALZMAВысокая степень сжатия; используется в 7z, XZКроссплатформенный
XZLZMA2Высокая степень сжатия; поддержка многопоточностиUnix-подобные системы
ISOНетОбраз оптического диска; может содержать сжатиеУниверсальный
CABMicrosoftИспользуется в установщиках WindowsWindows

Программное обеспечение

Для создания и распаковки архивов используются специализированные программы — архиваторы. Они делятся на два основных типа: файловые менеджеры с функциями архивации и отдельные утилиты.

Популярные архиваторы

  • WinRAR (разработчик — компания RARLAB) — условно-бесплатная программа для Windows, поддерживающая форматы RAR, ZIP, 7z, TAR, GZIP, BZIP2 и другие. Известна высокой степенью сжатия и функциями восстановления повреждённых архивов.
  • 7-Zip — свободный архиватор с открытым исходным кодом (лицензия GNU LGPL). Поддерживает форматы 7z, ZIP, TAR, GZIP, BZIP2, XZ, RAR (только распаковка). Отличается высокой степенью сжатия в формате 7z.
  • PeaZip — свободный кроссплатформенный архиватор, поддерживающий множество форматов.
  • WinZip — коммерческий архиватор, один из первых для Windows.
  • Bandizip — условно-бесплатный архиватор с быстрой распаковкой.
  • Ark (в среде KDE), File Roller (в среде GNOME) — встроенные архиваторы в Linux.
  • The Unarchiver — бесплатный архиватор для macOS.

Применение

Архивация широко используется в различных сферах:

  • Хранение данных — уменьшение объёма занимаемого места на жёстких дисках, SSD, облачных хранилищах.
  • Передача данных — объединение множества файлов в один для отправки по электронной почте, через мессенджеры или файлообменники.
  • Резервное копирование — создание сжатых копий важных данных для защиты от потери.
  • Распространение программного обеспечения — упаковка установочных файлов и библиотек в один архив (например, дистрибутивы программ в формате ZIP или RAR).
  • Архивирование проектов — сохранение исходного кода, документации и ресурсов в одном архиве.
  • Шифрование и защита — установка пароля на архив для ограничения доступа к содержимому.
  • Создание образов дисков — формат ISO используется для точной копии содержимого CD/DVD/Blu-ray.

Методы сжатия

Алгоритмы без потерь

  • LZ77 и LZ78 — основа многих современных алгоритмов. Используют словарь для поиска повторяющихся последовательностей.
  • Deflate — комбинация LZ77 и кодирования Хаффмана. Используется в ZIP, GZIP, PNG.
  • LZMA (Lempel-Ziv-Markov chain algorithm) — улучшенная версия LZ77 с марковскими цепями. Обеспечивает высокую степень сжатия.
  • BWT (Burrows-Wheeler transform) — преобразование, группирующее одинаковые символы. Используется в BZIP2.
  • PPMd (Prediction by Partial Matching) — контекстное сжатие. Используется в 7z.
  • Кодирование Хаффмана — построение оптимального префиксного кода на основе частоты символов.
  • Арифметическое кодирование — представление последовательности символов одним числом из интервала [0,1).

Коэффициент сжатия

Коэффициент сжатия — отношение размера исходных данных к размеру сжатых. Зависит от типа данных и алгоритма. Текстовые файлы сжимаются в 2–5 раз, программы — в 1,5–3 раза, изображения в формате BMP — в 5–10 раз, мультимедийные файлы (JPEG, MP3) практически не сжимаются без потерь.

Безопасность и шифрование

Многие современные архиваторы поддерживают шифрование архивов с использованием симметричных алгоритмов, таких как AES (Advanced Encryption Standard) с длиной ключа 128, 192 или 256 бит. Шифрование позволяет защитить содержимое архива от несанкционированного доступа. Однако стойкость защиты зависит от сложности пароля.

Критика и ограничения

  • Сжатие с потерями — не всегда применимо для архивации, так как требует точного восстановления данных.
  • Скорость сжатия — высокая степень сжатия часто требует больше времени и вычислительных ресурсов.
  • Повреждение архивов — при повреждении одного бита в архиве без механизмов восстановления (как в RAR) может быть потеряна вся информация.
  • Совместимость — не все архиваторы поддерживают все форматы; некоторые форматы (например, RAR) являются проприетарными.
  • Ограничения файловых систем — некоторые файловые системы имеют ограничения на размер файла (например, FAT32 — до 4 ГБ), что может помешать созданию больших архивов.

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

  • Самый большой архив в мире (по состоянию на 2020-е годы) — это архивы данных Большого адронного коллайдера, объём которых достигает десятков петабайт.
  • Формат ZIP стал настолько распространён, что его поддержка встроена непосредственно в операционные системы (Windows, macOS, Linux).
  • Алгоритм LZMA, используемый в 7z, был разработан Игорем Павловым в 1998 году.

Источники

  • Сэломон Д. Сжатие данных, изображений и звука. — М.: Техносфера, 2004.
  • Ватолин Д. Сжатие данных: методы и алгоритмы. — М.: ДМК Пресс, 2002.
  • Документация к архиваторам 7-Zip, WinRAR, WinZip.
  • RFC 1951 (Deflate Compressed Data Format Specification).
  • Стандарт ISO/IEC 21320-1:2015 (Information technology — Document Container File — Part 1: Core).

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

На главную BFOmetr →