Архиваторы и архивы

Архиватор — программа, осуществляющая объединение нескольких файлов в один архив или серию архивов, для удобства переноса или хранения. Многие архиваторы используют сжатие без потерь для уменьшения размера архива

Простейшие архиваторы просто последовательно объединяют содержимое файлов в архив. Кроме него, архив должен также содержать информацию об именах файлов и длине оригиналов для их восстановления. Большинство архиваторов также сохраняют метаданные файлов, предоставляемые операционной системой, такие, как время создания и права доступа.

Программа, создавая архив, обрабатывает как текстовые файлы.

Текстовый файл — разновидность файла, содержащая текстовые данные, как правило, организованные в виде строк. Текстовый файл, как и прочие файлы, хранится в файловой системе.

Организация текстового файла

Текстовый файл представляет собой последовательность символов (принадлежащих некому набору символов). Символы сгруппированы в строки (англ. lines, rows). В современных системах строки разделяются переводом строки, хотя в прошлом применялось хранение строк в виде записей постоянной или переменной длины.

Иногда конец текстового файла, особенно если в файловой системе не хранится информация о размере файла, также отмечается одним или более специальными знаками, известными как маркеры конца файла.

Преимущества текстового файла

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

Текстовые файлы, особенно если речь идёт об однобайтных кодировках вроде ASCII, не подвержены многим проблемам, характерным для других форматов файлов. Так, для них не важна разница в порядке байтов или длине машинного слова на разных платформах.

Более того, если повреждение данных (англ.) случится в текстовом файле, в этом случае обычно легче восстановиться и продолжить обработку остального содержимого[источник не указан 135 дней]. Все стандартные системы управления версиями рассчитаны на текстовые файлы и с двоичными файлами могут работать только как с единым целым.

Недостатки текстового файла

Недостатком текстовых файлов является их низкая информационная энтропия [источник не указан 135 дней] — эти файлы занимают больше места, нежели минимально необходимо.

Некоторые операции с текстовыми файлами чрезвычайно неэффективны. Например, если в файле встретится число, машина должна будет перевести его в свой внутренний формат, вызвав (сравнительно) сложную процедуру конвертации числа. Чтобы перейти на 1000-ю строку, требуется считать 999 строк, идущих до неё. Сложно заменить одну строку другой, и т. д. Поэтому при работе с большими объёмами данных текстовые файлы применяют только как промежуточный формат, обеспечивающий интероперабельность.

Двоичный (бинарный) файл — в широком смысле: последовательность произвольных байтов. Название связано с тем, что байты состоят из бит, то есть двоичных (англ. binary) цифр.

В узком смысле слова двоичные файлы противопоставляются текстовым файлам. При этом с точки зрения технической реализации на уровне аппаратуры, текстовые файлы являются частным случаем двоичных файлов, и, таким образом, в широком значении слова под определение «двоичный файл» подходит любой файл.

Первые всегда сжимаются в несколько раз (в зависимости от архиватора). Что же касается бинарных файлов, то здесь все зависит от их характера. Может быть сжато в десятки раз, но могут быть и случаи, когда сжатие почти не происходит. Сжатие данных обычно происходит значительно медленнее, чем обратная операция.

Характеристики архиваторов:

1. По степени сжатия

2. По скорости сжатия

Характеристики архиваторов — обратно зависимые величины. То есть, чем больше скорость сжатия, тем меньше степень сжатия, и наоборот.

Не нужно путать архиватор с архивом файлов.

Архив — файл, содержащий в себе информацию из одного или нескольких, иногда сжатых (без потерь), других файлов. Является результатом работы программы-архиватора.

Виды архивов

Схема совместного использования архиватора и компрессора

Файл, составленный из одного или нескольких файлов и метаданных. Создаются, например, программой tar. Иногда используются совместно с программами сжатия для получения архивов, обычно имеющих расширения типа «.tar.gz» или «.tar.lzma».

Файл, содержащий ровно один сжатый файл. Часто встречается в UNIX-подобных ОС: compress, gzip, bzip2, freeze, lzma. Используются самостоятельно или вместе с программами типа tar для получения архивов, обычно имеющих расширения типа «.tar.gz» или «.tar.bz2».

Некоторые архиваторы и форматы архивов объединяют эти две функции в произвольном порядке — например, 7z, ARJ, ZIP. В таких случаях, если сжатие производится после объединения, архив называется «непрерывным». Это позволяет уменьшить размер полученного архива, но затрудняет восстановление при повреждении данных.

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

Сам архив может состоять из нескольких файлов для облегчения хранения и переноса большого количества данных при ограничениях на размер одной части — например, носителя данных, или сообщения e-mail. Такой архив называется многотомным.

К архиву может быть присоединён исполняемый код, который при выполнении распаковывает архив. Код может быть полнофункциональной программой распаковки этого формата архивов. Такой архив называется самораспаковывающимся (англ. self-extracting, иногда сокращённо «SFX»).

Данные в архиве могут быть зашифрованы каким-либо способом. При использовании универсальных архиваторов обычно используется просто шифрование с паролем. При последовательном использовании tar, gzip и GnuPG результирующий файл иногда имеет расширение .tar.gz.gpg.

Метаданные

Архив почти всегда содержит метаданные. Например:

1. Имена файлов (кроме некоторых программ сжатия одиночных файлов — например, gzip, где в качестве имени файла используется имя архива без расширения, добавленного такой программой)

2. Идентификаторы владельцев, групп, и т. п. файлов, и их прав

3. Размеры файлов

4. Даты изменения, создания файлов

5. Контрольные суммы файлов для проверки правильности распаковки

6. Размер и контрольные суммы архива

7. Избыточные данные для восстановления данных при повреждении

8. Цифровая подпись создателя архива.

Наши рекомендации