Назначение программ-архиваторов заключается в экономии места на диске за счет сжатия (упаковки) одного или нескольких файлов в архивный файл. Программы-архиваторы используют для хранения в упакованном виде больших объемов информации, которая понадобится в будущем; переноса информации между компьютерами с помощью дискет или электронной почты; создания в сжатом виде резервных копий файлов; для защиты от компьютерных вирусов. В результате работы программ-архиваторов создаются архивные файлы (архивы).
В основе работы программ-архиваторов лежит процедура поиска и перекодирования одинаковых фрагментов содержимого файлов. Сжатие информации в файлах производится за счет устранения избыточности различными способами (за счет упрощения кодов, исключения постоянных битов, замены их повторяющейся последовательности коэффициентом повторения и т. д.). Существует множество алгоритмов сжатия данных. Современные архиваторы, как правило, одновременно используют несколько методов. Можно выделить некоторые основные.
1. Кодирование длин серий (RLE) – (сокращение от run-length encoding – кодирование длин серий).
Последовательная серия одинаковых элементов данных заменяется на два символа: элемент и число его повторений. Широко используется как дополнительный, так и промежуточный метод. В качестве самостоятельного метода применяется, например, в графическом формате BMP.
2. Словарный метод (LZ) – (сокращение от Lempel Ziv – имена авторов).
Используется словарь, состоящий из последовательностей данных или слов. При сжатии эти слова заменяются на их коды из словаря. Основным параметром словарного метода является размер словаря. Чем больше словарь, тем больше эффективность. Однако для неоднородных данных чрезмерно большой размер может быть вреден, так как при резком изменении типа данных словарь будет заполнен неактуальными словами. Для эффективной работы данного метода при сжатии требуется дополнительная память. Приблизительно на порядок больше, чем нужно для исходных данных словаря. Существенным преимуществом словарного метода является простая и быстрая процедура распаковки. Дополнительная память при этом не требуется. Такая особенность особенно важна, если необходим оперативный доступ к данным.
3. Энтропийный метод (Huffman) – кодирование Хаффмена.
В этом методе элементы данных, которые встречаются чаще, кодируются при сжатии более коротким кодом, а более редкие элементы данных кодируются более длинным кодом. За счет того, что коротких кодов значительно больше, общий размер получается меньше исходного.
Сжиматься могут как один, так и несколько файлов, которые в сжатом виде помещаются в архив.
Архивный файл включает оглавление, содержащее следующую информацию о файлах, хранящихся в архиве: имя файла; сведения о каталоге, в котором он находился; дату и время последней модификации файла; размер файла на диске и в архиве; .код циклического контроля для каждого файла, используемый для проверки целостности архива. В качестве расширений архивным файлам по умолчанию устанавливается имя соответствующей программы-архиватора.
Большинство программ-архиваторов позволяют создавать многотомные архивы. Многотомный архив — это последовательность архивных файлов, размер которых не превышает заданного размера тома. Обычно создается при необходимости переноса архива на гибких дисках, если размер архива превышает емкость дискеты. При создании таких архивов архиватор делает паузу для смены дискеты. Многотомный архив имеет общее имя, в расширении же каждого файла многотомного архива указывается номер тома.
Самораспаковывающийся архив — это определенным образом обработанный архивный файл, являющийся выполняемым файлом. Выполнение такого файла приводит к распаковке содержащихся в нем файлов.
Типовые функции программ-архиваторов следующие:
- Помещение исходных файлов в архив.
- Извлечение файлов из архива.
- Удаление файлов из архива.
- Просмотр оглавления архива.
- Версификация (проверка) архива.
Для каждого файла из архива в оглавлении архивного файла запоминается код циклического контроля (CRC). При извлечении файла код циклического контроля для него вычисляется и сравнивается с тем, что записан в оглавлении архива. При их несовпадении выдается сообщение об ошибке.
В настоящее время наибольшее распространение получили программы-архиваторы, ориентированные на работу под управлением операционной системы Windows. Это winrar и. Winzip, отличающиеся большой степенью сжатия, работой с длинными именами файлов и удобным интерфейсом.
Winrar разработан Евгением Рошалом на основе архиватора RAR, созданного им же в 1993г. для операционной системы MS DOS. Он поддерживает обработку многих архивных форматов и использует оригинальный алгоритм упаковки, особенно эффективный для исполняемых и текстовых файлов. К важным дополнительным возможностям программы относятся: защита архива при помощи пароля; восстановление поврежденных архивов; создание многотомных и самораспаковывающихся архивов; сохранение комментариев к архивам. Пользовательский интерфейс winrar содержит основное меню, панель инструментов и рабочую область, в которой показаны все файлы текущей папки. При работе с winrar архивы воспринимаются как папки, содержимое которых можно просмотреть традиционными способами.
Архиватор формата ZIP (PKZIP) был первоначально создан для MS-DOS в 1989 году компанией Pkware.
Winzip был создан в начале 1990 г. как коммерческий графический интерфейс для PKZIP. Приблизительно в 1996 г. создатели Winzip включили код сжатия от проекта PKZIP, таким образом устранив потребность в присутствии консольной версии.
С версии 6.0 до версии 9.0 зарегистрированные пользователи могли загружать новейшие версии программного обеспечения, используя первоначальную регистрационную информацию и тем самым получая обновления бесплатно. Начиная с версии 10.0 система бесплатного обновления была отключена. Winzip доступна в стандартной и профессиональной версии.
В мае 2006 г. корпорация Corel, известная своей линией продуктов Wordperfect и Coreldraw, объявила, что завершила приобретение Winzip Computing.
Вопросы и задания для самоконтроля
- Дайте определение понятия «архивация».
- Перечислите и охарактеризуйте основные алгоритмы сжатия данных.
- Каковы типовые функции программ-архиваторов?
- Охарактеризуйте современные программы-архиваторы