В данной работе будут рассмотрены только современные способы архивации данных, а именно специализированные программы архиваторы. Устаревшие программы резервного копирования типа BACKUP-RESTORE рассматриватся не будут, ввиду их отсутствия в новых версиях MS DOS, начиная MS DOS 6.22.
Архиваторы MS DOS.
С развитием компьютера стали увеличиваться и объемы информации хранимой в нем, что в свою очередь привело к развитию технологий по хранению этой информации в сжатом виде, то есть в архивах. Для этого было придумано множество программ осуществляющих архивацию информации.
Однако в работе с этой информацией иногда нежелательно раскрывать полный архив, чтобы взять один или два требуемых файла или же просто посмотреть, что в архиве за информация.
Программы-архиваторы, за исключением единиц, не предоставляют удобных оболочек позволяющих просто, быстро и в наглядной форме разобраться с содержимым архивов.
Архиваторы -- это программы, позволяющие создавать и обрабатывать архивные копии файлов. При этом из архивные копии имеют меньший размер, чем оригиналы. С помощью специальных алгоритмов сжатия из файлов удаляется вся избыточная информация, а при применения обратных алгоритмов распаковки архивная копия восстанавливается в первоначальном виде.
Наиболее известные программы-архиваторы для MS-DOS: ARJ (разработчик -- Robert K. Jung), pkzip
(компания PKWARE Inc.), lha (Haruyasu Yoshizaki), zoo (Rahul Dhesi). Безусловным лидером во всем мире за последние 5 лет стал архиватор RAR. В настоящее время RAR активно вытесняет ZIP как основную утилиту сжатия FTP архивов в сети INTERNET. RAR я является единственной всемирно используемой программой, созданной русским программистом (за исключением TETRIS). Все архиваторы отличаются используемыми алгоритмами сжатия, форматами архивных файлов, скоростью работы и т.д.
Термины, используемые в архивации
Add file Добавление (копировние) файла в архив. Если архив не существует, то он создается.
CRC Код циклического контроля. Специальная функция от всего содержимого файла. Составляется таким образом, что изменить файл так, чтобы его CRC остался неизменным, практически невозможно.
Exclude selected files При архивации НЕ добавлять в архив определенные файлы.
Extract files Извлечение файлов из архива без сохранения структуры подкаталогов.
Extract files with pathnames Извлечение файлов из архива с сохранением структуры подкаталогов.
Fresh files Добавление в архив новых версий уже имеющихся там файлов.
Garble (или scramble) files with password Архивация файлов с паролем. Извлечь файлы из такого архива можно, лишь правильно указав пароль.
Move files Перемещение файлов в архив.
Multiple volumes Многотомные архивы -- состоящие из нескольких файлов (томов). Удобны при архивации больших комплексов файлов, когда тома архива можно помещать на отдельные дискеты.
Ratio Степень сжатия файла. Определяется по-разному в различных архиваторах (отношение исходного к сжатому либо наоборот).
Recurse subdirectories Архивация файлов из заданного каталога и всех его подкаталогов. В архиве сохраняется информация о пути к файлам, и при извлечении их можно выводить не в один каталог, а в соответствующие подкаталоги.
Self-extract (sfx)archive Самораспаковывающийся архив. Архивный файл имеет расширение .exe .или com, и после его запуска происходит автоматическое извлечение файлов из архива.
Test integrity Проверка целостности архива, т.е. проверка CRC файлов архива.
Update files Добавление в архив новых файлов.
Архиватор ARJ
Работает из командной строки. Выполняет все функции по обслуживанию архивов .arj , в т.ч. поддержку многотомных архивов.
Получить справку по ключам архиватора arj с помощью команд:
arj(обычная справка)
arj /?(подробная справка)
Arj имеет очень большое число ключей. Можно автоматизировать много действий -- создание резервной копии диска, архивирование начиная с какой-то даты, добавление к имени архива текущей даты (arh970821.arj), архивирование файла с конкретного места, несколько уровней сжатия и так далее. В версии 2.55 возможна работа с длинными именами.
Достоинства: очень большое колличество ключей, что дает возможность автоматизировать большое число функций. Защита архива от повреждений.
Недостатки: отсутствие диалогового режима, некоторое неудобства работы при наличии какого-то ключа в переменной окружения (ARJ_SW) и строке запуска -- взаимное уничтожение.
Работает из командной строки. Различные функции по обслуживанию архивов .zip выполняются разными программами:
pkzip - помещение файлов в архив
pkunzip - извлечение файлов из архива
zip2exe - создание самораспаковывающегося архива
pkzipfix - восстановление поврежденного архива.
Изучить справку по работе с архиватором pkzip с помощью команд:
pkzip /h
pkunzip /h
zip2exe /h
Архиватор RAR v2.50 для DOS - Интегрированная программа управления архивами
RAR - это очень мощное средство для создания архивов и управления ими. Возможности RAR:
Полноэкранный интерактивный интерфейс (отключаемый);
Поддержка мыши и меню;
Поддержка не-RAR архивов;
'Стандартный' интерфейс командной строки;
Оригинальный высокоэффективный алгоритм сжатия данных;
Специальный алгоритм для сжатия мультимедийных файлов;
Лучшая степень упаковки, чем у аналогичных продуктов, за счет использования режима "непрерывного" сжатия;
Информация об авторе архива (только в зарегистрированной версии);
Самораспаковывающиеся (SFX) обычные и многотомные архивы;
Восстановление физически поврежденных архивов;
Язык программирования для инсталляционных SFX-архивов;
Блокировка, шифрование, список порядка файлов, метки томов и др.
Quark является архиватором классического типа, использующим LZ77-алгоритм для уплотнения исходных данных путем кодирования повторяющихся последовательностей байт (RSE-алгоритм) с последующим вторичным уплотнением сжатого потока кодами Хаффмана. Подобные методы используют все три лидера в области упаковки данных - архиваторы ARJ, LHA, PkZIP.
Тем не менее, Quark добивается лучших результатов в компактности данных при скорости лучшей чем LHA, не меньшей чем у ARJ и не сильно отличающейся от скорости PkZIP, при использовании им т.н. максимальной компрессии данных. Это обусловлено несколькими причинами:
1) Quark работает с плавающим размером окна от 32Kb до 64Kb (против фиксированных 16Kb у LHA, и 32Kb у PkZIP и ARJ).
2) Quark выполняет оптимизацию Первого рода (оптимальность адресов ссылок LZ77) и оптимизацию Второго рода (оптимальность ссылочного покрытия потока).
3) Quark использует текстовую редукцию для текстовых файлов.
4) Quark заносит в архив минимум служебной информации, не претендуя на иные аппаратные платформы и операционные системы.
Gzip сокращает размер заданных файлов используя кодирование Зива-Лемеля (LZ77). Когда возможно, каждый файл замещается файлом с расширением '.gz', при этом сохраняются владелец, режимы, доступ и времена модификации (Другие расширения '-gz' для VMS, 'z' для MSDOS, OS/2, FAT и Atari). Если никаких файлов не указано или имя файла '-', то пакуется стандартный ввод и выдается на стандартный вывод. Gzip пытается паковать только обычные файлы, в частности GZip игнорирует символические ссылки.
Gzip использует алгоритм Зива-Лемеля также как Zip, PKZIP. Итоговый размер, полученного файла после сжатия, зависит от размера исходного файла и наличия в нем общих подстрок. Обычно, такой текст, как исходный код или английский текст сокращается на 60-70%. Паковка с использованием этого алгоритма обычно лучше, чем при использовании LZW (его использует Compress), кодирование Хаффмана (его использует Pack) или адаптированное кодирование Хаффмана (Compact).
Упаковка происходит независимо от того увеличился ли размер упакованного файл в сравнении с оригиналом или нет. Причина расширения - несколько байтов для заголовка Gzip файла, плюс 5 байтов для каждого 32К блока, или отношение расширения 0.015% от длины файла. Заметим, что фактическое число занятых на диске блоков уже никогда не возрастает. Gzip сохраняет режимы доступа, владельцев и время модификации файлов при упаковке и распаковке...
ARJZ (по воле автора программы произносится как "арж-зет") - это архиватор, основанный на известной программе ARJ Роберта Юнга. В отличие от таких современных средств архивирования, как RAR и UC2, ARJZ использует формат файлов, командную строку и опции, совместимые с одной из самых популярных программ сжатия данных, а это имеет свои преимущества. В частности:
1) Практически всё программное обеспечение, рассчитанное на вызов ARJ, будет работать так же и с программой ARJZ без всякой модификации. Например, не надо будет переписывать ни ARCVIEW, ни NC 4.0, ни DN, ни тех .BAT файлов, которые вы могли создать за время пользования ARJ'ем.
2) Для того, чтобы использовать возможности ARJZ'а при работе с вашими старыми архивами, вам совсем не нужно переархивировать их заново.
3) Вы так же почти избавляетесь от необходимости изучать новый архиватор. Зная, как запускается ARJ, вы знаете, как запускается ARJZ.
Однако, следует иметь в виду, что:
1) ARJZ позволяет сжимать файлы, используя более мощные методы, чем оригинальная программа. В этом случае ARJ НЕ СМОЖЕТ ПРОВОДИТЬ ОБРАБОТКУ ПОЛУЧЕННЫХ АРХИВОВ, СВЯЗАННУЮ С РАСПАКОВКОЙ, т.е. деархивирование, тестирование и т.д. В любом случае вы сохраните возможность обновлять и сливать архивы, переименовывать или удалять файлы в них, а так же получать список файлов в архивах.