Эти последовательности можно интерпретировать следующим образом: с первой позиции 5 раз повторяется знак В, с шестой позиции 5 раз повторяется знак L и с позиции 11 повторяется 5 раз знак А.
Согласитесь, очень простая демонстрация алгоритма архивации. Очевидно, что для хранения файла в его последней форме требуется лишь 9 байт — меньше на 6 байт.
Описанный метод является простым и очень эффективным способом сжатия файлов. Однако он не обеспечивает большой экономии объема, если обрабатываемый текст содержит небольшое количество последовательностей повторяющихся символов. Более изощренный метод сжатия данных, используемый в том или ином виде практически любым архиватором, — это так называемый оптимальный префиксный код, и в частности, алгоритм Хаффмана, или кодирование символами переменной длины. Код переменной длины позволяет записывать наиболее часто встречающиеся символы и фразы всего лишь несколькими битами, в то время как редкие символы и фразы будут записаны более длинными битовыми строками. Например, анализируя любой английский текст, можно установить, что буква Е встречается гораздо чаще, чем Z, а X и Q относятся к наименее встречающимся. Таким образом, используя специальную таблицу соответствия, можно закодировать каждую букву Е меньшим числом бит, используя более длинный код для более редких букв, тогда как в обычных кодировках любому символу соответствует битовая последовательность фиксированной длины (как правило, кратной байту).
Популярные архиваторы ARJ, РАК, LHARC, PKZIP работают на основе алгоритма Лемпела-Зива. Эти архиваторы классифицируются как адаптивные словарные кодировщики, в которых текстовые строки заменяются указателями на идентичные им строки, встречающиеся ранее в тексте. Например, все слова этой книги могут быть представлены в виде номеров страниц и номеров строк некоторого словаря. Важнейшей отличительной чертой этого алгоритма является использование грамматического разбора предшествующего текста с разложением его на фразы, которые записываются в словарь. Указатели позволяют делать ссылки на любую фразу в окне установленного размера, предшествующем текущей фразе. Этот размер определяет границы поиска соответствия; при его увеличении возрастает плотность упаковки, но снижается скорость работы программы. Если соответствие найдено, текущая фраза заменяется указателем на ее предыдущее вхождение.
Программы-архиваторы позволяют не только сэкономить место на архивных дискетах, но и объединять группы совместно используемых файлов в один архивный файл, что заметно облегчает ведение архивов.
К основным функциям архиваторов относятся:
— архивация указанных файлов пли всего текущего каталога;
— извлечение отдельных или всех файлов на архива в текущий каталог (пли в указанный каталог);
— просмотр содержимого архивного файла (состав, свойства упакованных файлов, их каталожная структура и т. д.);
— проверка целостности архивов;
— восстановление поврежденных архивов;
— ведение многотомных архивов;
— вывод файлов из архива на экран или на печать.
Все программы-архиваторы, как правило, снабжены подробными комментариями, поэтому их применение не вызывает особых затруднений.
Кроме того, в программах-архиваторах могут быть предусмотрены дополнительные функции по защите информации в архивном файле с помощью пароля, которым используется как ключ алгоритма шифрования данных в архиве.
Компьютерный вирус — это специально написанная небольшая по размерам программа, которая может "приписывать" себя к другим программам (т. е. "заражать" их), а также выполнять различные нежелательные действия на компьютере. Программа, внутри которой находится вирус, называется "зараженной". Когда такая программа начинает работу, то сначала, как правило, управление получает вирус. Вирус находит и "заражает" другие программы или выполняет какие-нибудь вредные функции: портит файлы или таблицу размещения файлов на диске, "засоряет" оперативную память, изменяет адресацию обращений к внешним устройствам и т. д. Более того, зараженные программы могут быть перенесены на другой компьютер с помощью дискет или локальной сети.
Рис. 4.3.
В настоящее время известно более трех тысяч вирусов. Условно они подразделяются на классы по следующим признакам.
По среде обитания:
— сетевые, распространяющиеся по компьютерной сети;
— файловые, внедряющиеся в выполняемый файл;
— загрузочные, внедряющиеся в загрузочный сектор жесткого диска или дискеты.
По способу заражения:
— резидентные, загружаемые в память ПК;
— нерезидентные, не заражающие память ПК и остающиеся активными ограниченное время.
По возможностям:
— безвредные, не влияющие на работу ПК;
— неопасные, влияние которых ограничивается уменьшением свободной памяти на диске и графическими звуковыми и прочими эффектами;
— опасные, которые могут привести к серьезным сбоям в работе ПК;