Операционная система MS-DOS (фирма Microsoft) (рис. 3.5).
Предшественником MS-DOS была ОС DOS-89. В то время наиболее популярной системой для микрокомпьютеров на базе Intel 8080 и Zilog Z-80 была ОС CP/М-80 фирмы Digital Research. Эта система обеспечивала доступ к разнообразным средствам прикладного программного обеспечения (текстовым процессорам, администраторам баз данных и т. д.)
В октябре 1980 г. компания IBM предложила фирмам, занимающимся разработкой ПО для микрокомпьютеров, начать поиск операционной системы для нового семейства персональных компьютеров. Фирма Microsoft не могла предложить собственной операционной системы за исключением автономной версии Microsoft BASIC, однако она заплатила фирме Seattle Computer Products за право продавать систему Питерсона DOS-86. За это Seattle Computer Products получила лицензию на право использовать и продавать языки программирования и все версии операционной системы для микропроцессора 8086, разработанные фирмой Microsoft. В июле 1981 г. Microsoft приобрела все права на систему DOS-86, значительно переработала ее и дала название MS-DOS. Осенью 1981 г. появились первые компьютеры IBM PC, фирма IBM предложила для них в качестве основной операционную систему MS-DOS, названную PS-DOS 1.0. Кроме того, фирма IBM выбрала для микрокомпьютеров РС в качестве альтернативны операционные системы СР/М-86 (фирмы Digital Research) и P-system (фирмы Softech). Однако обе эти системы имели ряд недостатков: обладали малым для IBM PC быстродействием, высокой стоимостью, отсутствием доступных языков программирования. Окончательно чаша весов склонилась в пользу системы PC-DOS после того, как фирма IBM с ее помощью реализовала все прикладные программные средства для IBM PC, а также инструментарий, работающий под их управлением. Поэтому с самого начала разработчики программного обеспечения ориентировались на PC DOS, а системы CP/M-86 и P-system не заняли сколько-нибудь значительного места на рынке программного обеспечения для IBM PS.
Фирма IBM была единственным крупным производителем компьютеров, которая оснастила свою продукцию системой MS-DOS (версия 1.0), названной PS-DOS 1.0. Система MS-DOS версия 1.25
Рис. 3.5. Этапы развития системы MS-DOS
(эквивалентная системе фирмы IBM PC DOS 1.1) была опубликована в июне 1982 г. В ней исправлено несколько ошибок. Кроме того, она поддерживала работу двухсторонних дисков и аппаратную независимость ядра DOS. Эту версию системы DOS использовали в своей продукции, кроме IBM, и другие фирмы: Texas Instruments, COMPAQ, Columbia, которые вышли на рынок персональных компьютеров раньше. Из-за резкого снижения цен на ОЗУ и жесткие диски популярность системы MS-DOS (версия 1) была недолгой.
Система MS-DOS версии 2.0 (эквивалентная PC-DOS 2.0) впервые опубликована в марте 1983 г. Оглядываясь назад, можно сказать, что это была принципиально новая операционная система, хотя при ее создании было сделано все возможное для сохранения совместимости с системой MS-DOS 1.0. Эта система содержала много принципиальных новшеств и отличительных черт:
- поддержку гибких дисков большого объема и жестких дисков.
- большое количество черт, напоминающих системы UNIX/XE-NIX, включая иерархическую структуру файлов, дескрипторы файлов, перенаправление ввода-вывода, конвейеры и фильтры.
- фоновую печать (буферизацию печати);
- метки тома, а также дополнительные атрибуты файлов;
- устанавливаемые драйверы внешних устройств;
- настраиваемый пользователем файл конфигурирования системы, который осуществляет управление загрузкой дополнительных драйверов внешних устройств;
- поддержку блоков кружения (конкретных блоков), которые можно использовать для обмена информацией между программами;
- необязательный драйвер дисплея ANSI, который позволяет программам задавать положение курсора и осуществляет управление характеристиками дисплея аппаратно-независимым образом;
- обеспечение динамического распределения памяти, ее модификации и освобождения прикладными программами;
- поддержку настраиваемых пользователем командных интерпретаторов (оболочек);
- системные таблицы для поддержки прикладного программного обеспечения при модификации так называемых национальных форм (обозначение денежных знаков, времени и даты).
Представленная позже система MS-DOS версии 2.11 существенно улучшила использование национальных форматов (табличное управление символами денежных знаков, форматы даты, символы десятичной точки, разделители денежных знаков и т. п.). В ней поддерживаются 16 бит представления иероглифов, исправлено несколько ошибок. Версия 2.11 быстро стала базовой для персональных компьютеров с процессором 8086/8088, выпуск которых был освоен всеми основными фирмами-изготовителями комплексного оборудования, включая Hewlett-Packard, Wang, Digital Equipment Corporation, Texas Instruments, COMPAQ и Tandy.
Система MS-DOS версии 2.25, опубликованная в сентябре 1985 г., получила широкое распространение в странах Юго-Восточной Азии, но никогда не поставлялась в США и страны Европы. В этой версии расширено национальное обеспечение в части японских и корейских символов, исправлены некоторые ошибки. Многие системные утилиты стали совместимыми с системой MS-DOS (версия 3.0).
Система MS-DOS версии 3.0 впервые представлена фирмой IBM в августе 1984 г. в момент начала впуска компьютеров IBM PC/AT на базе процессора 80286. Это была еще одна во многом переписанная операционная система, имевшая новые важные особенности:
– непосредственное управление спулером печати прикладными программами;
– дальнейшее расширение национальных форматов при обозначении денежных знаков;
– расширение сообщения об ошибках, включая код ошибки, который предлагает прикладной программе методику ее исправления;
– поддержка захвата и разделения файлов и их записей;
– поддержка жестких дисков большого объема;
Система MS-DOS версии 3.1, опубликованная в ноябре 1984 г., оснащена средствами разделения файлов и устройств печати через локальную сеть. Начиная с версии 3.1, новый модуль операционной системы, названный моделью перенаправления, перехватывает запросы прикладных программ на ввод-вывод и фильтрует из них те, которые направлены к устройствам локальной сети, пропуская эти запросы к другой машине для выполнения.
Модификации системы MS-DOS (3.1 и старше) носят скорее эволюционный, чем революционный характер. В версии 3.2, которая появилась в 1986 г., обобщено определение драйверов устройств, что значительно упростило средства поддержки новых магнитных носителей, таких как гибкий диск размером 3,5 дюйма. Система MS-DOS (версия 3.3), выпущенная в 1987 г. одновременно с началом выпуска персональных компьютеров IBM нового семейства PS/2, оснащена еще более мощными средствами поддержки работы клавиатуры на нескольких иностранных языках, включая соответствующие наборы символов печатающего устройства и шрифтов дисплея. Возможности версии 4.0, впервые представленной в 1988 г., значительно возросли благодаря оболочке визуального представления и средствам поддержки файловых систем очень больших размеров.
Одновременно с развитием системы MS-DOS фирма Microsoft вела интенсивные разработки в области пользовательских интерфейсов и многозадачных операционных систем. Пакет Microsoft Windows, впервые примененный в 1985 г., позволил MS-DOS реализовать многозадачный режим и режим графического "рабочего стола" пользователя. Он завоевал широкую популярность среди разработчиков сложных прикладных графических программ, таких как система подготовки издательских оригиналов, система автоматизированного проектирования (САПР). Последнее объясняется тем, что пакет позволяет использовать в программах все достоинства любого имеющегося в наличии устройства вывода без какой-либо аппаратной зависимости.
Каковые перспективы развития системы MS-DOS? Можно предположить, что система MS-DOS, требующая относительно небольшой памяти, легко адаптируемая к разнообразным аппаратным конфигурациям и имеющая громадное число пользователей, останется популярной среди программистов и издателей программного обеспечения в течение ближайшего будущего.
Операционная система OS/2 разработана фирмой IBM для персональных компьютеров на основе системной прикладной архитектуры, ранее используемой для больших ЭВМ. Это многозадачная, однопользовательская, высоконадежная операционная система. OS/2 обеспечивает:
– одновременную обработку нескольких приложений;
– текстовой и графический интерфейс пользователя;
– многопоточную обработку нескольких задач одного приложения;
– 32-разрядную обработку данных;
– сжатие данных при записи на магнитные диски;
– защиту памяти.
Важными особенностями операционной системы OS/2 явля-ются высокопроизводительная файловая система HPFS (High Perfomance System), имеющая преимущества для серверов баз данных (в отличие от MS-DOS поддерживаются длинные имена файлов), поддержка мультипроцессорной обработки (до 16-ти процессоров типа INTEL и Power PC). Версия OS/2 Warp работает с мультисредой и имеет встроенный доступ в сеть Internet, систему распознавания речи VoiceType, интегрированную версию Lotus Notes Mail для передачи через Internet электронной почты. В OS/2 могут выполняться прикладные программы Windows 3.1 и Win32s, но не могут выполняться приложения, работающие в среде Windows 95 или Windows NT. Спецификация Open 32 позволяет поставщикам программного обеспечения переносить его на новую платформу.
Сетевые операционные системы - это комплекс программ, обеспечивающий обработку, передачу и хранение данных в сети.
Сетевая ОС предоставляет пользователям различные виды сетевых служб (управление файлами, электронная почта, процессы управления сетью и др.), поддерживает работу в абонентских системах, использует архитектуру клиент-сервер. Вначале сетевые операционные системы поддерживали лишь локальные вычислительные сети (ЛВС), сейчас они распространяются на ассоциации локальных сетей. Наибольшее распространение имеют LAN Server, NetWare, VINES, Windows NT, Windows 95.
Они оцениваются по комплексу критериев: производительность, разнообразие возможностей связи пользователей, администрирования.
Перспективной является многопользовательская и многозадачная операционная система Unix, созданная корпорацией Bell Laboratory. Данная операционная система реализует принцип открытых систем и широкие возможности по комплексированию в составе одной вычислительной системы разнородных технических и программных средств.
Unix обладает важными качествами:
– возможность переноса прикладных программ с одного компьютера на другой;
– поддержка распределенной обработки данных в сети ЭВМ;
– сочетаемость с процессорами RISC.
Unix получила распространение для суперкомпьютеров, рабочих станций и профессиональных персональных компьютеров, имеет большое количество версий, разработанных различными фирмами. Согласно прогнозам объем мирового рынка вычислительных систем, базирующихся на ОС Unix, будет существенно возрастать, особенно с переходов к сетевым технологиям.
Операционная система Windows 95 - популярная графическая ОС, которая запускается на выполнение, как обычная программа MS-DOS. Windows работает на базе MS-DOS, и в совокупности с ней образует полноценную ОС. Наряду с Windows существуют и другие ОС с аналогичным пользовательским интерфейсом для компьютеров различных классов.
Следует назвать те концептуальные черты Windows, благодаря которым она получила широкое распространение и, по заявлению фирмы Microsoft, изменит способ работы с ПЭВМ:
1. Мультизадачный режим работы.
Различают два типа мультизадачности: кооперативную и преемптивную (с разделением времени).
При кооперативном мультизадачном режиме ОС не выполняет полноценный контроль за распределением ресурсов.
При преемптивном мультизадачном режиме каждая задача получает фиксированный квант времени процессора. По истечении этого кванта времени система вновь получает управление, чтобы выбрать другую задачу для активизации. Если возникает системное событие (завершение ввода-вывода) или задача обращается к системе до истечения ее кванта времени, то это также служит причиной передачи управления системе и последующего переключения задач.
2. Оптимальное управление ресурсами компьютера.
3. Графический пользовательский интерфейс.
4. Наличие техники связывания и встраивание объектов других программ.
5. Возможность работы в сетевой среде.
6. Интерфейс мультимедиа.
Операционная система Windows NT является многозадачной, предназначенной для архитектуры клиент-сервер и использования различных протоколов транспортного уровня сетевой операционной системы, имеет 32-разрядную архитектуру и обеспечивает функции локальной сети:
– возможность каждой абонентской системы в сети быть сервером или клиентом;
– совместную работу группы пользователей;
– адресацию оперативной и внешней памяти большого раз-мера;
– многозадачность и многопоточность обработки данных;
– поддержку мультипроцессорной обработки и др.
Операционные оболочки - это специальные программы, предназначенные для облегчения общения пользователя с командами операционной системы.
Операционные оболочки имеют текстовый и графический варианты интерфейса конечного пользователя.
Наиболее популярны следующие виды текстовых оболочек операционной системы MS-DOS: Norton Commander 5.0, Norton Navigator, Windows Commander, FAR.
Эти программы существенно упрощают задание управляющей информации для выполнения команд операционной системы, уменьшают напряженность и сложность работы конечного пользователя.
Во всем мире имеют огромную популярность такие графические оболочки MS-DOS, как Windows 9x, которые позволяют изменить среду взаимодействия пользователя с компьютером, расширяют набор основных (диспетчер файлов, графический редактор, текстовый редактор, картотека и т. п.) и сервисных функций, обеспечивающих пользователю интегрированную информационную технологию, вплоть до создания локальных одноранговых сетей.
3.2.2 Состав и структура операционной системы MS-DOS
В состав MS-DOS входят следующие компоненты (рис. 3.6):
2) несистемный загрузчик NSB (Master Boot Record, Non System Bootstrap);
3) модуль расширения EM BIOS (Extension Module);
4) базовый модуль BM (Basic Module) MS-DOS;
5) интерпретатор команд CI (Command Interpreter), или командный процессор;
6) внешние (устанавливаемые) драйверы устройств;
7) утилиты DOS;
8) оболочка MS-DOS Shell ;
9) инструментальные средства.
Рис. 3.6. Основные модули DOS
Часто полагают, что в состав DOS входит также базовая система ввода-вывода (BIOS - Basic Input/Output System), которая находится в постоянном или полупостоянном запоминающем устройстве каждого IBM-совместимого компьютера. Несмотря на то что она не входит в поставку DOS, с этим можно согласиться, однако необходимо помнить, что BIOS является неотъемлемой частью ПК и может рассматриваться как компонент любой операционной системы, запускаемой на данном ПК.
Внесистемный загрузчик NSB (Non System Bootstrap, Master Boot Record), размещенный на жестком диске командой FDISK.exe, также может считаться компонентом как DOS, так и любой другой операционной системы, способной функционировать на данном компьютере.
Все компоненты DOS, исключая BIOS, размещаются на одном или нескольких магнитных дисках в специальных областях и файлах. Один из дисков обеспечивает занесение DOS в память и запуск ее в работу. Этот процесс называется загрузкой DOS, а диск, с которого возможна загрузка системы, называется системным. На структуру системного диска накладываются определенные ограничения, связанные с порядком размещения на нем важнейших файлов DOS.
Здесь и в дальнейшем, если не приводятся необходимые уточнения, под диском понимается как жесткий, так и гибкий диск.
Описание функций и постоянного местонахождения перечисленных компонентов DOS содержится в таблице 3.2.
Управление ресурсами ЭВМ и выполняемыми программами
CI
Файл Command.com
1) Инициализация трех векторов прерывания, которые он обрабатывает;
2) Выполнение файла Autoexec.bat.
1) прием команд MS-DOS с клавиатуры;
2) выполнение внутренних команд;
3) загрузка программ в память для выполнения;
4) обработка прерываний по завершению задач
Утилиты
Отдельные файлы
1) выполнение внешних команд;
2) реализация сервисных услуг в интерактивном режиме
В процессе функционирования системы BIOS реализует наиболее простые и универсальные функции DOS по управлению стандартными (основными) периферийными устройствами (ПУ), в частности, по организации ввода-вывода.
Выделение BIOS в отдельный компонент позволяет ''скрыть'' архитектурные особенности конкретной модели ПК и обеспечить независимость программного обеспечения от ПУ.
BIOS содержит:
1) драйверы стандартных ПУ;
2) тестовые программы для контроля работоспособности оборудования;
3) программу начальной загрузки.
Драйверы стандартных устройств - это программа, обслуживающая некоторые ПУ.
Драйвер выполняет следующие функции:
– принимает запросы на обращение к ПУ;
– преобразует запросы в команды управления устройством с учетом всех деталей конструкции и особенностей работы устройства в реальном масштабе времени;
– обрабатывает прерывания обслуживаемого ПУ. Следовательно, драйвер является промежуточным звеном (посредником) между обращающимися к ПУ программами и самим ПУ.
Наряду с реальными, драйвер может обслуживать и виртуальные устройства, т. е. имитировать физические ПУ с использованием других компонентов ПК (оперативной и внешней памяти). Драйверами считаются также программы, обеспечивающие управление дополнительной памятью компьютера.
Программа начальной загрузки (BIOS) - первичный загрузчик -является системнонезависимой и способна запускать в работу любую операционную систему на данном ПК.
Доступ к средствам BIOS осуществляется главным образом через аппарат прерываний. Она совместно с модулем расширения (EM BIOS) обрабатывает семейство прерываний, называемых прерываниями нижнего уровня (услуги BIOS считаются низкоуровневыми).
Таким образом, BIOS - это самый нижний, наиболее близкий к оборудованию, компонент DOS.
NSB - вторичный загрузчик, обеспечивает загрузку с жесткого диска одной из отмеченных специальным образом операционных систем (обычно это DOS).
SB - системный загрузчик ориентирован строго на DOS и способен обеспечивать загрузку только данной системы. Он имеется на каждом диске, подготовленном для работы в среде DOS, даже если диск не является системным.
Все три загрузчика считываются в память и выполняются строго последовательно. Если загрузка DOS производится с гибкого магнитного, а не жесткого диска, то первичный загрузчик считывает непосредственно SB и передает ему управление.
EM BIOS в процессе функционирования DOS является надстройкой над BIOS, модифицируя и/или дополняя ее возможности.
При загрузке DOS данным модулем обеспечивается возможность как логической замены драйверов, хранящихся в BIOS, так и подключения новых драйверов. Необходимость в этом возникает при изменении конфигурации ПУ (BIOS гораздо консервативнее самой DOS) и потребности в использовании имеющихся ПУ нестандартным образом.
Драйверы могут находиться как внутри EM BIOS, так и вне его, т.е. храниться в отдельных файлах. В первом случае они называются внутренними (основными), а во втором - внешними (устанавливаемыми). Наряду с внутренними драйверами EM BIOS содержит ряд управляющих блоков и таблиц.
Внутренние драйверы подключаются к системе при загрузке DOS автоматически, а внешние - по указаниям в файле конфигурации системы CONFIG.SYS. Исключение составляет один из внешних драйверов, а именно драйвер DBLSPACE.BIN, управляющий сжатыми логическими дисками, который подключается к системе автоматически (при условии, что он обнаружен на своем законном месте), причем до обработки файла CONFIG.SYS. Если сжатые логические диски отсутствуют, то подключение драйвера DBLSPACE.BIN не производится, в результате чего освобождается дополнительное пространство для выполнения программ. Когда драйвер на своем месте не обнаружен, то DOS обходится и без него, не отображая никаких, даже предупреждающих, сообщений. Раннее автоматическое подключение этого драйвера позволяет хранить практически все файлы DOS на сжатом диске, получающем имя С.
Некоторые драйверы нежелательно помещать в BIOS или в его расширение по той причине, что они используются не на каждой модели ПК и не каждым пользователем. В этом случае драйверы оформляются как внешние и подключаются только при необходи-мости, что повышает эффективность DOS. Возможность подключения внешних драйверов существенно облегчает адаптацию системы к новым ПУ, не требуя модификации основных ее компонентов.
Если файл CONFIG.SYS отсутствует, то никакие внешние драйверы, за исключением упомянутого драйвера, к системе не подключаются, а параметры DOS устанавливаются по умолчанию.
Драйверы из BIOS, EM BIOS и подключенные внешние драйверы можно рассматривать как единое целое, которое называется подсистемой ввода-вывода. Она содержит драйверы, одни из которых являются обязательными, другие - факультативными.
Драйверы подсистемы ввода-вывода:
– накопители на гибких и жестких магнитных дисках;
– дисплея и клавиатуры;
– принтера; адаптеров интерфейсов (последовательных и параллельных портов);
– фиктивного устройства (вывод в это устройство воспринимается, но данные отбрасываются; при попытке ввода с этого устройства немедленно опознается конец файла);
– виртуального диска (имитатора в оперативной памяти реального диска);
– расширенной, отображаемой, высокой и верхней памяти;
– подсистемы управления энергопотреблением;
– подсистемы межкомпьютерной связи;
– для управления сжатыми дисками;
– кэширования дисков;
– подмены версии DOS.
Часто к DOS могут подключаться не входящие в состав системы внешние драйверы, в частности, драйвер манипулятора типа ''мышь''.
NSB, SB и подсистема ввода-вывода образуют машинозависимую часть DOS.
BM-DOS - это центральный компонент DOS, реализующий основные функции операционной системы.
Управление ПУ с помощью BM DOS осуществляется на более высоком уровне, чем управление посредством драйверов на основе организации обращений к драйверам. Именно здесь находится файловая система, обеспечивающая выполнение операций над файлами. Основание этой системы образует подсистема ввода-вывода. Файловая система является наиболее развитой функциональной частью DOS.
Основу BM DOS составляют обработчики прерываний верхнего уровня. Обращение к BM DOS возможно только через механизм прерываний. Именно прерывания верхнего уровня выдают большинство программ, работающих под управлением DOS. Обработчики этих прерываний, в свою очередь, могут генерировать прерывания нижнего уровня.
Компоненты подсистемы ввода-вывода, загружаемые с диска, и BM DOS в процессе работы системы находятся в оперативной памяти постоянно (резидентно).
В то время как BIOS, EM BIOS и BM DOS в совокупности управляют ресурсами компьютера, интерпретатор команд CI отвечает за поддержку пользовательского интерфейса DOS.
Пользователь общается с системой путем передачи ей команд, которые она в состоянии проинтерпретировать. Под командой традиционно понимается указание на выполнение некоторого действия.
Файл автозапуска AUTOEXEC.BAT, исполняемый CI в процессе загрузки системы, включает команды DOS и запросы на выполнение программ, которые пользователь должен регулярно выдавать после запуска DOS в работу (например для загрузки резидентных программ). Это освобождает пользователя от частого выполнения рутинных операций. Если файл AUTOEXEC.BAT отсутствует, то CI выдает запросы на установку даты и времени.
CI состоит из двух модулей: резидентного и транзитного.
Резидентный модуль хранится после запуска DOS в оперативной памяти постоянно и включает обработчики трех важных прерываний, а также код подгрузки транзитного модуля CI.
Транзитный (нерезидентный) модуль может перекрываться в оперативной памяти выполняемыми программами, а затем восстанавливаться путем считывания с диска. Этот модуль содержит исполнитель так называемых внутренних команд DOS и загрузчик программ в оперативную память для выполнения.
Внутренними являются команды DOS, которые обычно используются чаще других.
Доступ к CI осуществляется по прерываниям от клавиатуры и другим программным прерываниям, которые он обслуживает.
Дополнительно к тому, что уже отмечалось, EM BIOS, BM DOS и CI содержат коды инициализаций, выполняемые только при загрузке DOS и затем уничтожаемые для освобождения памяти.
Утилиты - это обслуживающие программы, которые предоставляют пользователю сервисные услуги. Утилиты DOS делятся на две категории:
1) не диалоговые утилиты, к которым относятся также утилиты, способные выдавать пользователю ряд простых запросов, но не поддерживающие высокоразвитый пользовательский интерфейс;
2) интерактивные утилиты, имеющие развитый полноэкранный, организованный в виде меню интерфейс.
Очевидно, выполненное разделение весьма условно, но без него трудно отдать дань традиции в трактовке внешней команды DOS.
Внешней командой DOS считают команду, реализуемую утилитами первой или второй категории, но в не диалоговом режиме. Внешней команда именуется потому, что она реализуется не CI, а отдельной программой - утилитой. Внешние команды дополняют пользовательский интерфейс системы. DOS имеет вполне определенный перечень внешних команд.
Оболочка MS-DOS Shell - это надстройка над CI, внешне напоминающая Windows, которая упрощает работу пользователя в среде DOS и предоставляет ему ряд дополнительных возможностей.
Достоинствами оболочки MS-DOS Shell являются:
- возможность выделения файлов для групповых операций в различных каталогах, применения групповых операций к найденным файлам;
- поддержка создания и использования высокоразвитого меню программ;
- обеспечение переключения задач;
- компактность резидентного кода (около 4,5 кбайт).
Недостатки MS-DOS Shell:
- отсутствие поддержки манипулирования поддеревьями файловой структуры;
- невозможность работы с архивами;
- слабые средства визуализации файлов.
Несмотря на наличие неоспоримых достоинств, оболочка MS-DOS Shell не пользуется заметной популярностью.
К инструментальным средствам DOS принадлежат:
- система программирования MS-DOS QBasic (Quick Basic), построенная на основе интерпретации;
- отладчик Debug, позволяющий тестировать и отлаживать исполняемые файлы;
- текстовый редактор MS-DOS Editor, обеспечивающий подготовку исходных программ, а также простых текстовых доку-ментов.
BM DOS, CI, утилиты, оболочка и инструментальные средства DOS составляют ее машинонезависимую часть. Конечно, понятие "машинонезависимость" весьма условно, поскольку в любом случае необходим микропроцессор, совместимый с микропроцессором 8086/88 фирмы Intel. Именно эти и более совершенные микропроцессоры применяются в IBM-совместимых ПК.
Не все компоненты DOS, размещаемые в файлах, необходимы для того, чтобы DOS была в состоянии работать. Их отсутствие лишь ограничивает функциональные возможности системы.
Минимальная конфигурация MS-DOS включает: EM BIOS (файл IO.SYS), BM DOS (файл MSDOS.SYS) и CI (файл COMMAND.COM), если не принимать во внимание BIOS, NSB и BR.
Ограничения, накладываемые на структуру системного диска:
? файлы IO.SYS и MSDOS.SYS регистрируется на первой и второй позициях корневого каталога системного диска соответственно (первой здесь считается позиция элемента корневого каталога, следующая за стандартным обязательным элементом, обозначаемым точкой);
? файл COMMAND.COM находится в любом месте корневого каталога системного диска;
? если имеются файлы DBLSPACE.BIN, CONFIG.SYS и AUTOEXEC.BAT, то они также должны содержаться в корневом каталоге системного диска.
Если в файле CONFIG.SYS сделать специальное указание командой SHELL, то файл COMMAND.COM можно разместить в любом каталоге системного диска или любом другом месте диска, если он доступен (является "установленным") во время загрузки DOS.
Остальные файлы DOS могут располагаться в любых каталогах каких угодно дисков. Однако необходимо хранить их в единственном каталоге жесткого диска.
Приведенные ограничения справедливы только в том случае, когда системный диск не сжат компрессором DoubleSpace. Если эта операция произведена, то в корневом каталоге несжатой части системного диска должны оставаться только файлы IO.SYS, MSDOS.SYS и DBLSPACE.BIN, а также еще не упоминавшийся файл конфигурации компрессора, создаваемый им автоматически и имеющий имя DBLSPACE.INI. Файлы COMMAND.COM, CONFIG.SYS и AUTOEXEC.BAT будут считываться из корневого каталога соответствующего сжатого логического диска, поэтому они обязаны находиться именно в нем, если в каждом из данных файлов есть необходимость. Объясняется это тем, что после подключения к системе драйвера DBLSPACE.BIN имя привода, закрепленное за системным диском, присваивается сжатому логическому диску, а сам системный диск получает другое имя. Например, если загрузка производится с диска С:\ и он сжат компрессором DoubleSpace, то при подключении драйвера DBLSPACE.BIN имя С:\ получает сжатый диск, созданный на диске C:\, и загрузка естественным образом продолжается с него.
Несмотря на сказанное, необходимо хранить копии файлов COMMAND.COM, CONFIG.SYS и AUTOEXEC.BAT также и в корневом каталоге несжатой части системного диска. Если последняя рекомендация выполнена, то ПК можно будет загрузить даже тогда, когда доступ к сжатому логическому диску становится невозможным в случае возникновения на нем логических дефектов. После загрузки DOS недоступность сжатого логического диска станет очевидной, и пользователь сможет предпринять адекватные возникшей ситуации меры.
3.3 Операционная система MS-DOS
3.3.1 Логическая структура дисков
Все винчестеры и флоппи-диски, поддерживаемые MS-DОS, за рядом исключений имеют сходный логический формат.
Под логическим форматом понимается то, что на диске резервируются определенные области для хранения служебной информации, необходимой операционной системе для работы с этим устройством.
Процесс создания и заполнения этих областей носит название логического форматирования.
Для создания логической структуры диска используются специальные программы, входящие обычно в состав операционной системы или существующие как независимые утилиты. Содержимое создаваемых областей может полностью или частично заполняться и изменяться не только во время форматирования, но и в процессе последующей работы с данным диском.
3.3.1.1 Логическая структура гибкого магнитного диска
Практически каждый диск содержит следующие области: загрузочная запись или сектор BR (Boot Record), две (одну) таблицы размещения файлов (FAT - File Allocation Table), корневой каталог RD (Root Directory) и область данных DA (Data Area) (рис. 3.7, 3.8).
Рис. 3.7. Логическая структура гибкого магнитного диска
Рис. 3.8. Структура системной области
Загрузочный сектор BR (SB) (рис. 3.9) каждого диска занимает по определению только один сектор и хранится в логическом секторе 0. В нем содержится некоторая информация о диске и небольшая программа IPL (2) (Initial Program Loading 2). Почему именно 2, а не 1, будет ясно из дальнейшего объяснения. Первым байтом этого сектора должен быть либо код безусловного перехода JMP (E9h) с последующим 16-битным смещением, либо код "короткого" (short) перехода JMP (EBh) с 8-битным смещением, причем третьим байтом в этом случае является код операции NOP (90h). Заканчивается сектор определенной кодовой комбинацией - сигнатурой (AA55h). Сразу за инструкцией JMP в этом секторе следует 8-байтное поле, резервируемое для идентификации имени и версии OEM (Original Eguipment Manufacturer). Программы форматирования традиционно записывают здесь ASCII-строку, содержащую марку и версию используемой операционной системы или наименование пакета, например MSDOSn.n либо PCTools.
Рис. 3.9. Структура загрузочного сектора
Безусловно, главным компонентом сектора BR является так называемый блок параметров BIOS BPB (BIOS Parameter Block). Это важнейшая структура данных, содержащая важную информацию: тип носителя (media descriptor), количество используемых байт на сектор и секторов на кластер, количество копий FAT и др.
Последний элемент сектора BR - это программа IPL2. Начальная инструкция JMP в этом секторе выполняет переход на точку входа именно этой программы.
Таблица размещения файлов располагается непосредственно после загрузочной записи и имеет переменный размер (в секторах). FAT используется для хранения сведений о размещении файлов на диске. Эта таблица состоит из элементов (12- или 16-битных), каждый из которых соответствует определенному участку дискового пространства и соответствующим кодом характеризует его состояние: занят, свободен или имеет дефект. В самом начале каждой таблицы FAT (первый элемент) хранится дескриптор (media descriptor), определяющий тип носителя (например для жесткого диска - F8h).
Минимальным элементом, которым MS-DOS оперирует при работе с дисками, является не сектор, а кластер. Кластеры состоят из нескольких секторов (2, 4 и т. д.).
Для дисков с магнитным носителем обычно используется две копии FAT, которые следуют одна за другой. Содержимое их полностью дублируется.
Корневой каталог диска всегда занимает строго фиксированное место - сразу за последней таблицей FAT. Он состоит из ограниченного числа 32-байтных записей, каждая из которых содержит информацию о файле или другом каталоге (подкаталоге), а также метке диска.
Корневая директория включает список всех файлов на дискете, его элементы содержат всю информацию о файле, за исключением сведений о размещении файла, которые хранятся в таблице размещения файлов. Любой элемент имеет длину 32 байт и включает восемь полей (все они выравниваются по левой границе, пустые байты заполняются пробелами):
1) имя файла - 8 байт. Если первый байт имеет значение Е516, то элемент не используется, если 2Е16, то этот элемент указывает на директорий нижнего уровня;
2) расширение имени файла - 3 байт;
3) атрибут - 1 байт. Используется для установления признака:
- "только чтение" (нулевой бит);
- скрытого файла (первый бит);
- системного файла (второй бит);
- признака метки тома (третий бит);
- признака поддиректории (четвертый бит);
- признака архивного файла (пятый бит);
- шестой и седьмой биты этого байта резервные.
Если задан признак метки тома, то этот элемент содержит не ссылку на файл, а имя диска, которое занимает первые 11 байт. Архивный бит используется утилитами BACKUP и RESTORE;
4) зарезервированное поле для возможного использования в будущем - 10 байт;
5) время - 2 байт. Здесь хранится время создания или последней модификации файла. Первые 5 бит занимают часы, вторые 3 бит - минуты, третьи 5 бит - секунды. В последнем поле каждая единица соответствует 2 с;
6) дата - 2 байт. Здесь хранится дата создания последней модификации файла. Первые 7 бит занимают годы, которые отсчитываются от значения 1980 (от 1980 г.), вторые 4 бит - месяцы, третьи 5 бит - дни;
7) номер начального кластера - 2 байт. Начальный кластер является первой частью пространства данных в файле на дискете;
8) размер файла - 4 байт. Наличие этого поля связано с тем, что файл обычно частично занимает последний отведенный ему кластер, а здесь указывается его точная длина.
Все остальное место на диске занимает область данных, содержащая файлы данных или подкаталогов.
3.3.1.2 Логическая структура жесткого магнитного диска
Особенности логической структуры жесткого магнитного диска обусловлены наличием несистемного загрузчика NSB (главный загрузочный сектор MBR - MASTER BOOT RECORD).
Каждый жесткий диск (как отдельное электронное устройство) имеет еще одну область, которая называется главной загрузочной записью, или сектором MBR, или несистемным загрузчиком (NSB). Единый жесткий диск может быть разбит на несколько логических дисков, с которыми она может работать как с отдельными устройствами. Именно поэтому физические сектора на жестком диске могут характеризоваться в двух системах координат: физической (сектор, головка, цилиндр) и логической (номер логического сектора).
Для MBR на жестком диске всегда выделяется физический сектор 1 (сектор 1, головка 0, цилиндр 0). Логического номера он не имеет, так как является общим для всех логических дисков.
Этот сектор содержит программу IPL1 (Initial Program Loa-ding 1), расположенную в его начале, которая при своем выполнении сканирует содержимое второго важного элемента MBR - таблицу разделов диска (Partition Table) (рис. 3.10), состоящую, в свою очередь, из четырех 16-байтных элементов (разделов), разбитых на поля. Они содержат информацию о номерах начального и конечного секторов, номерах головок и цилиндров для соответствующего раздела, а также числе секторов, предшествующих разделу и включенных в раздел. Из четырех разделов, на которые может быть поделен диск, только два могут принадлежать MS-DOS: первичный (Primary) и расширенный (Extended), два оставшихся резервируются для других операционных систем: OS/2, Xenix, UNIX, Windows NT и т. д.
Рис. 3.10. Структура MBR
Не следует отождествлять понятия "раздел" и "логический диск", поскольку, например, с расширенным разделом могут быть связаны несколько логических дисков.
Байт поля "Признак загрузки" используется программой IPL1 (при ее выполнении) для выяснения, какой из разделов диска содержит загружаемую операционную систему. Активный (загружаемый) раздел в этом поле содержит код 80h, остальные разделы должны быть помечены кодом 00h.
В поле "Начало раздела" хранятся номера головки, сектора и цилиндра стартового сектора раздела; в поле "Конец раздела" - соответствующие величины для конечного сектора этого раздела.
Число секторов до начала раздела хранится в 4-байтном поле "Относительный сектор". Это число определяется путем последовательного подсчета секторов, начиная с сектора 1, головки 0, цилиндра 0 физического диска, и увеличения номера сектора на дорожке, затем номера головки и цилиндра.
Число секторов в разделе хранится в 4-байтном поле "Размер". Как и для предыдущего поля, первое слово содержит младшую часть числа, второе - старшую.
Еще одно важное поле элементов таблицы разделов - "Тип раздела". Код в нем указывает, какой именно операционной системе принадлежит данный раздел.
Если поле "Тип раздела" содержит код 05h (Extended-раздел), то физический сектор, определяемый в поле "Начало раздела" диска, является вовсе не загрузочным сектором (BR) расширенного раздела, а вторичным главным загрузочным сектором жесткого диска SMBR (Secondary Master Boot Record). Этот сектор содержит собственную таблицу разделов, называемую таблицей логического диска LDT (Logical Drive Table), и непременную сигнатуру AA55h. Эта таблица и определяет местоположение и размер раздела, с которым MS-DOS обращается как с отдельным физическим диском.
Отличия SMBR-сектора от MBR-сектора:
- во-первых, он не содержит программы IPL1 и соответственно никогда не определяет загрузочный диск;
- во-вторых, таблица логического диска включает максимум два 16-байтных элемента, а не четыре, как основная таблица разделов. Причем, если поле "Тип раздела" первого элемента таблицы определяет размер элемента FAT, то такое же поле второго элемента таблицы (если он существует) содержит код Extended-раздела - 05h. Таким образом, второй элемент таблицы логического диска может определять следующий вторичный загрузочный сектор и т. д.
Каждый диск, определяемый таблицей логического диска, содержит сектор BR, две копии FAT, корневую директорию и, безусловно, область данных (рис. 3.11).
Рис. 3.11. Логическая структура жесткого магнитного диска
Таким образом, Extended-раздел может быть поделен на логические диски от D до Z по количеству букв латинского алфавита.
3.3.2 Начальная загрузка MS-DOS
При загрузке или перезагрузке системы выполнение начинается с адреса OFFFFOH (рис. 3.12). Это определяется особенностями семейства микропроцессоров 8086/8088, а не самой системы MS-DOS. Системы, базирующиеся на этих процессорах, сконструированы так, что адрес OFFFFOH лежит внутри области ПЗУ и содержит машинную команду передачи управления программе проверки системы и программе начального загрузчика ПЗУ.
Программа начального загрузчика ПЗУ считывает в некоторую область памяти программу дискового начального загрузчика, начиная с первого сектора загружаемого диска (сектор загрузчика), и затем передает ей управление. Кроме того, сектор загрузчика содержит таблицу с информацией о формате диска.
Программа дискового начального загрузчика проверяет наличие на диске копии операционной системы MS-DOS. Для этого считывается первый сектор корневого каталога и определяется, являются ли его первые два файла системными файлами IO.SYS и MSDOS.SYS (или IBMBIO.COM и IBMDOS.COM) (в указанном порядке). Если этих файлов там нет, то пользователю предлагается сменить диск и нажать на произвольную клавишу для новой попытки. Если оба системных файла найдены, то дисковый начальный загрузчик считывает их в память и передает управление на точку входа модуля IO.SYS. В некоторых реализациях дисковый начальный загрузчик считывает в память только файл IO.SYS, который, в свою очередь, загружает файл MSDOS.SYS.
Файл IO.SYS, загруженный с диска, обычно состоит из двух отдельных модулей. Первый из них BIOS содержит связанный набор резидентных драйверов таких устройств, как консоль, последовательный порт, печатающее устройство, блочно-ориентированное устройство и таймер, а также программу инициализации, выполняемую только при начальной загрузке системы.
Второй модуль SYSINIT, поддерживаемый системой Microsoft, компонуется в файл IO.SYS, как и BIOS, изготовителем компьютера.
Рис. 3.12. Алгоритм загрузки системы MS-DOS
SYSINIT вызывается с помощью программы инициализации BIOS. Модуль определяет величину непрерывной памяти, доступной системе, и затем располагается по ее старшим адресам. Далее модуль переносит ядро системы DOS MSDOS.SYS из области ее начальной загрузки в область окончательного расположения в памяти, перекрывая начальную программу SYSINIT в любую другую расширяемую программу инициализации, которая содержалась в файле IO.SYS.
Далее SYSINIT вызывает программу инициализации в модуле MSDOS.SYS. Ядро DOS инициализирует ее внутренние таблицы и рабочие области, устанавливает векторы прерываний по адресам с 2OH по 2FH и перебирает связанный список резидентных драйверов устройств, вызывая функцию инициализации для каждого из них.
Функции драйверов определяют состояние оборудования, выполняют всю необходимую инициализацию аппаратуры и устанавливают векторы для внешних аппаратных прерываний имеющихся драйверов.
В процессе инициализации ядро DOS проверяет блоки параметров диска, возвращаемые с помощью резидентных драйверов блочно-ориентированных устройств, определяет наибольший размер сектора, который будет использован в системе, строит блоки параметров дисковода и выделяет буфер сектора диска, затем управление передается модулю SYSINIT.
Когда ядро DOS проинициализировано и все резидентные драйверы доступны, модуль SYSINIT может открыть файл CONFIG.SYS. Этот необязательный файл содержит различные команды, которые позволяют пользователю настраивать среду MS-DOS. Например, пользователь может задать дополнительные драйверы аппаратных устройств, число буферов диска, максимально возможное число одновременно открытых файлов и имя файла командного процессора (оболочки).
Если файл CONFIG.SYS найден, он загружается в память для выполнения. Драйверы, указанные в файле CONFIG.SYS, последовательно загружаются в память, активизируются с помощью вызовов соответствующих модулей инициализации и заносятся в связанные списки драйверов. Функции инициализации каждого из них сообщают модулю SYSINIT размер памяти, отведенной под соответствующий драйвер.
После загрузки всех устанавливаемых драйверов SYSINIT закрывает все дескрипторы файлов и открывает вновь консоль (CON), принтер (PRN) и последовательный порт (AUX) как устройство стандартных ввода и вывода, ошибки, печати и последовательного устройства. Это позволяет символьно-ориентированному драйверу, установленному пользователем, замещать резидентные драйверы BIOS стандартных устройств.
В конце своего выполнения модуль SYSINIT вызывает функцию EXEC для загрузки интерпретатора командной строки, или оболочки. Стандартной оболочкой является COMMAND.COM, однако с помощью файла CONGIG.SYS можно устанавливать и другие оболочки. После загрузки оболочка высвечивает на экране дисплея запрос и ждет от пользователя ввода команды. Теперь система MS-DOS готова для работы и модуль SYSINIT уже не требуется.
3.3.3 Файловая система MS-DOS
Файловая система MS-DOS - часть операционной системы, управляющая размещением и доступом к файлам и каталогам.
Каталог - справочник файлов с указанием месторасположения на диске - бывает текущим, в котором работа пользователя производится в текущее машинное время; пассивным, с которым в данный момент време-ни не имеется связи; родительским, имеющий подкаталог.
Подкаталог - каталог, который входит в другой каталог.
Доступ - процедура устанавливания связи с памятью и размещенными в ней файлами для записи и чтения.
Файл - логически связанная совокупность данных или программ, для размещения которой во внешней памяти выделяется именованная область.
С понятием файловой системы тесно связано понятие файловой структуры диска, под которой понимают, как размещаются на диске главный каталог, подкаталоги, файлы, операционная система, а также какие для них выделены объемы секторов, кластеров, дорожек.
При формировании файловой структуры диска операционная система MS-DOS работает по определенным правилам:
- файл или каталог могут быть зарезервированы с одним и тем же именем в различных каталогах, но в одном и том же каталоге только один раз;
- порядок следования имен файлов и подкаталогов в родительском каталоге произвольный;
- файл может быть разбит на несколько частей, для которых выделяются участки дискового пространства одинакового объема на разных дорожках и секторах.
3.3.3.1 Файлы
Файл служит учетной единицей информации в операционной системе. Любые действия с информацией в MS-DOS осуществляются над файлами: запись на диск, вывод на экран, ввод с клавиатуры, печать, считывание информации CD-ROM и пр.
На диске файл не требует для своего размещения непрерывного пространства, обычно он занимает свободные кластеры в разных частях диска. Сведения о номерах этих кластеров хранятся в FAT-таблице.
В файлах могут храниться разнообразные виды и формы представления информации: тексты, рисунки, чертежи, числа, программы, таблицы и т. п. Особенности конкретных файлов определяются их формами.
Под формами понимается элемент языка, в символическом виде описывающий представление информации в файле.
Текстовая информация хранится в файле в кодах ASCII, в так называемом текстовом формате. Содержимое текстовых файлов можно просмотреть на экране дисплея с помощью разных программных средств, в том числе и в MS-DOS.
Любой другой файл с нетекстовой информацией просмотреть теми же средствами, что и текстовый файл, не удается. При просмотре на экран будут выводиться абсолютно непонятные символы.
Для характеристики файла используются следующие параметры:
- полное имя файла;
- объем файла в байтах;
- дата создания файла;
- время создания файла;
- специальные атрибуты файла:
1) R (Read only) - только для чтения;
2) H (Hidden) - скрытый файл;
3) S (System) - системный файл;
4) A (Archive) - архивированный файл.
Вся эта информация хранится в корневом каталоге логической структуры диска.
3.3.3.2 Каталоги
В операционной системе MS-DOS принята иерархическая структура организации каталогов. На каждом диске всегда имеется единственный главный (корневой) каталог. Он находится на нулевом уровне иерархической структуры и обозначается символом "\". Корневой каталог создается при формировании (инициализации, разметке) диска, имеет ограниченный размер и не может быть удален средствами DOS. В главный каталог могут входить другие каталоги и файлы, которые создаются командами операционной системы и могут быть удалены соответствующими командами.
Таким образом, любой каталог, содержащий каталоги нижнего уровня, может быть, с одной стороны, по отношению к ним родительским, а с другой - подчиненным по отношению к каталогу верхнего уровня. Если это не вызывает путаницы, употребляют термин "каталог", подразумевая или подкаталог, или родительский каталог в зависимости от контекста.
Каталоги на дисках организованы как системные файлы. Единственное исключение - корневой каталог, для которого отведено фиксированное место на диске. Доступ к каталогам можно получить, как к обыкновенному файлу.
Доступ к содержимому файла организован из главного каталога, через цепочку соподчиненных каталогов (подкаталогов) n-го уровня.
3.3.3.3 Путь и приглашение
Путь - цепочка соподчиненных каталогов, которую необходимо пройти по иерархической структуре к каталогу, где зарегистрирован искомый файл (рис. 3.13).
Корневой каталог:\
Родительский каталог:\
Подкаталог:\
Имя файла
Рис. 3.13. Структура пути
Из рисунка видно, что доступ к файлу осуществляется через каталог благодаря зарегистрированному в нем имени данного файла. Если каталог имеет иерархическую структуру, то доступ к файлу операционная система организует в зависимости от положения подкаталога, в котором зарегистрировано имя искомого файла.
Доступ к файлу можно организовать следующим образом:
- если имя файла зарегистрировано в текущем каталоге, то достаточно для доступа к файлу указать только его имя;
- если имя файла зарегистрировано в пассивном каталоге, то, находясь в текущем каталоге, вы должны указать путь, т. е. цепочку соподчиненных каталогов, через которые следует организовать доступ к файлу.
При задании пути имена каталогов записываются в порядке следования и отделяются друг от друга символом "\".
Взаимодействие пользователя с операционной системой осуществляется с помощью командной строки, индицируемой на экране дисплея. В начале командной строки всегда имеется приглашение, которое заканчивается символом ">". В нем могут быть отображены имена текущих диска и каталога, текущее время и дата, путь, символы-разделители.
Приглашение операционной системы - индикация на экране дисплея информации, означающей готовность операционной системы к вводу команд пользователя.
3.4 Сервисное программное обеспечение
3.4.1 Характеристика компьютерных вирусов
Массовое применение персональных компьютеров оказалось связанным с понятием самовоспроизводящихся программ-вирусов, препятствующих нормальной работе компьютера, разрушающих файловую структуру дисков и наносящих ущерб хранимой в компьютере информации. Проникнув в один компьютер, компьютерный вирус способен распространяться на другие компьютеры.
Компьютерным вирусом называется специально написанная программа, способная самопроизвольно присоединяться к другим программам, создавать свои копии и внедрять их в файлы, системные области компьютера и вычислительные сети с целью нарушения работы программы, порчи файлов и каталогов, создания всевозможных помех в работе на компьютере.
Причины появления и распространения компьютерных вирусов, с одной стороны, скрываются в психологии человеческой личности и ее теневых сторонах (зависти, мести, тщеславии непризнанных творцов, невозможности конструктивно применить свои способности), с другой стороны, обусловлены отсутствием аппаратных средств защиты и противостояния со стороны операционной системы персонального компьютера.
Несмотря на принятые во многих странах законы о борьбе с компьютерными преступлениями и разработку специальных программных средств защиты от вирусов, количество новых программных вирусов постоянно растет. Это требует от пользователя персонального компьютера знаний о природе вирусов, способах заражения вирусами и защиты от них.
Основными путями проникновения вирусов в компьютер являются съемные диски (гибкие и лазерные), а также компьютерные сети. Заражение жесткого диска вирусами может произойти при загрузке компьютера с дискеты, содержащей вирус. Такое заражение может быть и случайным, например, если дискету не вынули из дисковода А и перезагрузили компьютер, при этом дискета может и не быть системной.
Заразить дискету гораздо проще. На нее вирус может попасть, даже если дискету просто вставить в дисковод зараженного компьютера и, например, прочитать ее оглавление.
В загрузочном секторе зараженного диска находится программа-вирус.
После запуска программы, содержащей вирус, становится возможным заражение других файлов. Наиболее часто вирусом заражаются загрузочный сектор диска и исполняемые файлы, имеющие расширение COM, EXE, SYS, BAT. Крайне редко заражаются текстовые и графические файлы.
Зараженная программа содержит внедренную в нее программу-вирус.
При заражении компьютера вирусом очень важно своевременно его обнаружить. Для этого следует знать об основных признаках проявления вирусов:
- прекращение работы или неправильная работа ранее успешно функционировавших программ;
- медленная работа компьютера;
- невозможность загрузки ОС;
- исчезновение файлов и каталогов или искажение их содержимого;
- изменение даты и времени модификации файлов;
- изменение размеров файлов;
- неожиданное значительное увеличение количества файлов на диске;
- вывод на экран непредусмотренных сообщений или изображений;
- подача непредусмотренных звуковых сигналов;
- частые зависания и сбои в работе компьютера.
Следует заметить, что вышеперечисленные явления необязательно вызываются присутствием вируса, а могут быть следствием других причин, поэтому всегда затруднена правильная диагностика состояния компьютера.
В настоящее время известно более 35 000 программных вирусов (по данным лаборатории Касперского AVP), их можно классифицировать по следующим признакам (рис. 3.14):
- среде обитания;
- способу заражения среды обитания;
- воздействию;
- особенностям алгоритма.
Рис. 3.14. Классификация компьютерных вирусов:
а - по среде обитания; б - по способу заражения;
в - по степени воздействия; г - по особенности алгоритмов
В зависимости от среды обитания вирусы можно разделить на сетевые, файловые, загрузочные и файлово-загрузочные. Сетевые вирусы распространяются по разным компьютерным сетям. Файловые вирусы внедряются главным образом в исполняемые модули, т. е. в файлы, имеющие расширения COM и EXE. Файловые вирусы могут внедряться и в другие типы файлов, но, как правило, записанные в таких файлах они никогда не получают управление и, следовательно, теряют способность к размножению. Загрузочные вирусы внедряются в загрузочный сектор диска (Boot-сектор) или в сектор, содержащий программу загрузки системного диска (Master Boot Record). Файлово-загрузочные вирусы заражают как файлы, так и загрузочные сектора дисков.
По способу заражения вирусы делятся на резидентные и нерезидентные. Резидентный вирус при заражении компьютера оставляет в оперативной памяти свою резидентную часть, которая потом перехватывает обращение операционной системы к объектам заражения (файлам, загрузочным секторам дисков и т. п.) и внедряется в них. Резидентные вирусы находятся в памяти и являются активными вплоть до выключения или перезагрузки компьютера. Нерезидентные вирусы не заражают память компьютера и являются активными ограниченное время.
Простейшие вирусы - паразитические, они изменяют содержимое файлов и секторов диска и могут быть достаточно легко обнаружены и уничтожены. Можно отметить вирусы-репликаторы, называемые червями, которые распространяются по компьютерным сетям, вычисляют адреса сетевых компьютеров и записывают по этим адресам свои копии. Известны вирусы-невидимки, называемые стелс-вирусами, которые очень трудно обнаружить и обезвредить, так как они перехватывают обращения операционной системы к пораженным файлам и секторам дисков и подставляют вместо своего "тела" незараженные участки диска. Наиболее трудно обнаружить вирусы-мутанты, содержащие алгоритм шифровки-расшифровки, благодаря которым копии одного и того же вируса не имеют ни одной повторяющейся цепочки байтов. Имеются и так называемые квазивирусные или "троянские" программы, которые хотя и не способны к самораспространению, но очень опасны, так как, маскируясь под полезную программу, разрушают загрузочный сектор и файловую систему дисков.
3.4.2 Способы распространения и структура
компьютерных вирусов
3.4.2.1 Файловые вирусы
Вирус может внедриться в файлы трех типов:
- командные (ВАТ);
- загружаемые драйверы (IO.SYS, MSDOS.SYS и др.);
- выполняемые двоичные файлы (EXE, COM).
Возможно внедрение вируса в файлы данных, но эти случаи возникают либо в результате ошибки вируса, либо при проявлении вирусом своих агрессивных свойств.
Внедрение вируса в SYS-файл происходит следующим образом: вирусы внедряются в SYS-файл, приписывают свои коды к "телу" файла и модифицируют адреса программ стратегии (Strategy) и прерывания (Interrupt) заражаемого драйвера (встречаются вирусы, изменяющие адрес только одной из программ). При инициализации зараженного драйвера вирус перехватывает соответствующий запрос операционной системы, передает его драйверу, ждет ответа на него, корректирует его и остается в оперативной памяти вместе с драйвером в одном блоке памяти. Такой вирус может быть чрезвычайно опасным и живучим, так как внедряется в оперативную память при загрузке DOS раньше любой антивирусной программы, если она, конечно, тоже является драйвером.
Зараженный файл-драйвер:
Возможно также инфицирование системного драйвера другим способом, когда вирус модифицирует его заголовок так, что DOS рассматривает инфицированный файл как цепочку из двух (или более) файлов.
Зараженный файл-драйвер:
Аналогично вирус может записать свои коды в начало драйвера, а если в файле содержится несколько драйверов, то и в середину файла.
Внедрение вируса в COM- и EXE-файлы происходит следующим образом: выполняемые двоичные файлы имеют форматы COM или EXE, отличаются заголовком и способом запуска программ на выполнение. Расширение имени файла (COM или EXE) не всегда соответствует действительному формату файла, что никак не влияет на работу программы. Файлы COM или EXE заражаются по-разному, следовательно, вирус должен отличать файлы одного формата от другого.
Вирусы решают эту задачу двумя способами: одни анализируют расширение имени файла, другие - заголовок файла. Первый способ далее будем называть заражением .COM- (.EXЕ-) файлов, второй способ заражения: COM- (EXE-) файлов. В большинстве случаев вирус инфицирует файл корректно, т. е. по информации, содержащейся в его теле, можно полностью восстановить зараженный файл. Но вирусы, как и большинство программ, часто содержат незаметные с первого взгляда ошибки. Из-за этого даже вполне корректно написанный вирус может необратимо испортить файл при его поражении. Например, вирусы, различающие типы файлов по расширению имени (.COM-, .EXE-), очень опасны, так как портят файлы, у которых расширение имени не соответствует внутреннему формату.
Файловые вирусы при распространении внедряются в тело заражаемого файла: начало, конец или середину. Существует несколько возможностей внедрения вируса в середину файла: он может быть скопирован в таблицу настройки адресов EXE-файла ("Boot - Exe"), область стека файла COMMAND.COM ("Lehigh"), может раздвинуть файл или переписать часть файла в его конец, а свои коды - в освободившееся место ("Apri l - 1- Exe", "Phoenix") и т. д. Кроме того, копирование вируса в середину файла может произойти в результате ошибки вируса. В этом случае файл может быть необратимо испорчен. Встречаются и другие способы внедрения вируса в середину файла, например, вирус "Mutant" применяет метод компрессирования некоторых участков файла.
Внедрение вируса в начало файла может происходить тремя способами. Первый способ заключается в том, что вирус переписывает начало заражаемого файла в его конец, а сам копируется в освободившееся место. При заражении файла вторым способом вирус создает в оперативной памяти свою копию, дописывает к ней заражаемый файл и сохраняет полученную конкатенацию на диск. При заражении третьим способом вирус записывает свои коды в начало файла, не сохраняя старого содержимого начала файла, естественно, что при этом файл перестает работать и не восстанавливается.
Внедрение вируса в начало файла применяется в подавляющем большинстве случаев при поражении COM-файлов. EXE-файлы заражаются таким методом либо в результате ошибки вируса, либо при использовании алгоритма вируса "Pascal".
Внедрение вируса в конец файла - наиболее распространенный способ заражения. При этом вирус изменяет начало файла таким образом, что первыми выполняемыми командами программы, содержащейся в файле, являются команды вируса. В COM-файле это достигается изменением его первых трех (или более) байт на коды инструкции JMP Loc_Virus (или в общем случае - на коды программы, передающей управление на тело вируса). EXE-файл либо переводится в формат COM-файла и затем заражается как последний, либо модифицируется заголовок файла (длина, стартовые адреса).
Стандартным способом заражения будем называть способ, при котором вирус дописывается в конец файла и изменяет первые байты у COM-файла и несколько полей заголовка EXE-файла.
Вирус, после передачи ему управления, действует по следующему алгоритму:
- восстанавливает программу (но не файл) в исходном виде;
- если вирус резидентный, то он проверяет оперативную память на наличие своей копии и инфицирует память компьютера, если копия не найдена; если вирус не резидентный, то он ищет незараженные файлы в текущем и корневом каталогах, в каталогах отмеченных в команде PATH, сканирует дерево каталогов логических дисков, а затем заражает обнаруженные файлы;
- выполняет, если они есть, дополнительные функции: деструктивные действия, графические или звуковые эффекты.
- возвращает управление основной программе.
3.4.2.2 Загрузочные вирусы
Загрузочные вирусы заражают загрузочный сектор флоппи-диска и Boot-сектор, или Master Boot Record винчестера. При инфицировании диска вирус в большинстве случаев переносит оригинальный Boot-сектор в какой-либо другой сектор диска. Если длина вируса больше длины сектора, то в заражаемый сектор перемещается первая часть вируса, остальные размещаются в других секторах. Затем вирус копирует системную информацию, хранящуюся в первоначальном загрузчике, и записывает их в загрузочный сектор (для MBR этой информацией является Disk Partition Table, для Boot-сектора дискет - BIOS Parameter Block).
Алгоритм работы загрузочного вируса.
Внедрение в память осуществляется при загрузке с инфицированного диска. При этом системный загрузчик считывает содержимое первого сектора диска, с которого производится загрузка, помещает считанную информацию в память и передает на нее (т. е. на вирус) управление. После этого начинают выполняться инструкции вируса, который уменьшает объем свободной памяти; считывает с диска свое продолжение; переносит себя в другую область памяти; устанавливает необходимые векторы прерываний; совершает дополнительные действия; копирует в память оригинальный Boot-сектор и передает на него управление.
В дальнейшем загрузочный вирус ведет себя так же, как резидентный файловый вирус: перехватывает обращения операционной системы к дискам и инициирует их, в зависимости от некоторых условий совершает деструктивные действия или вызывает звуковые или видеоэффекты.
3.4.3 Программы обнаружения и защиты
от компьютерных вирусов
Для того чтобы не подвергнуть компьютер заражению вирусами и обеспечить надежное хранение информации на дисках, необходимо соблюдать следующие правила:
DrWeb необходимо сочетать с повседневным использованием ревизора диска ADinf;
оснастить свой компьютер современными антивирусными программами, например Aidstest или Doctor Web, и постоянно обновлять их версии;
перед считыванием с дискет информации, записанной на других компьютерах, всегда проверять эти дискеты на наличие вирусов, запуская антивирусные программы своего компьютера;
при переносе на свой компьютер файлов в архивированном виде проверять их сразу же после разархивации на жестком диске, ограничивая область проверки только вновь записанными файлами;
периодически проверять на наличие вирусов жесткий диск компьютера, запуская антивирусные программы для тестирования файлов, памяти и системных областей диска с защищенной от записи дискеты, предварительно загрузив операционную систему также с защищенной от записи системной дискеты;
всегда защищать свои дискеты от записи при работе на других компьютерах, если на них не будет производиться запись информации;
обязательно делать архивные копии на дискетах ценной для вас информации;
не оставлять в кармане дисковода A дискеты при включении или перезагрузке операционной системы, чтобы исключить заражение компьютера загрузочными вирусами;
использовать антивирусные программы для входного контроля всех исполняемый файлов, получаемых из компьютерных сетей.
Для обнаружения, удаления и защиты от компьютерных вирусов разработано несколько видов специальных антивирусных программ.
Различают следующие виды антивирусных программ (рис. 3.15):
- программы-детекторы;
- программы-доктора или фаги;
- программы-ревизоры;
- программы-фильтры;
- программы-вакцины или иммунизаторы.
Рис. 3.15. Виды антивирусных программ
Программы-детекторы осуществляют поиск характерной для конкретного вируса последовательности байтов (сигнатуры вируса) в оперативной памяти и файлах и при обнаружении выдают соответствующее сообщение. Недостатком таких антивирусных программ является то, что они могут находить только те вирусы, которые известны разработчикам программ.
Программы-доктора, или фаги, а также программы-вакцины не только находят зараженные вирусами файлы, но и "лечат" их, т. е. удаляют из файла "тело" программы вируса, возвращая файлы в исходное состояние. В начале своей работы фаги ищут вирусы в оперативной памяти, уничтожают их и только затем переходят к "лечению" файлов.
Среди фагов выделяют полифаги, т. е. программы-доктора, предназначенные для поиска и уничтожения большого количества вирусов. Наиболее известными полифагами являются AVP, Doctor Web, Aidstest, Scan и Norton AntiVirus.
Программы-детекторы и программы-доктора быстро устаревают и требуют регулярного обновления их версий или антивирусных баз, так как постоянно появляются новые вирусы.
Программы-ревизоры относятся к самым надежным средствам защиты от вирусов. Они запоминают исходное состояние программ, каталогов и системных областей диска тогда, когда компьютер не заражен вирусом, а затем периодически или по желанию пользователя сравнивают текущее состояние с исходным. Обнаруженные изменения выводятся на экран видеомонитора. Как правило, сравнение состояний производят сразу после загрузки операционной системы: проверяются длина файла, код циклического контроля (контрольная сумма файла), дата и время модификации, другие параметры.
Программы-ревизоры имеют достаточно развитые алгоритмы, обнаруживают стелс-вирусы и могут даже отличить изменения версии проверяемой программы от изменений, внесенных вирусом. К числу программ-ревизоров относится широко распространенная в России программа ADinf фирмы "Диалог - Наука".
Программы-фильтры, или "сторожа", представляют собой небольшие резидентные программы, предназначенные для обнаружения подозрительных действий при работе компьютера, характерных для вирусов:
- попыток коррекции файлов с расширениями COM и EXE;
- изменений атрибутов файлов;
- прямой записи на диск по абсолютному адресу;
- записи в загрузочные сектора диска;
- загрузки резидентной программы.
При попытке какой-либо программы произвести указанные действия "сторож" посылает пользователю сообщение и предлагает запретить или разрешить соответствующее действие.
Программы-фильтры весьма полезны, так как способны обнаружить вирус на самой ранней стадии его существования до размножения. Однако они не "лечат" файлы и диски. Для уничтожения вирусов требуется применить другие программы, например фаги. К недостаткам программ-сторожей можно отнести их "назойливость" (например, они постоянно выдают предупреждение о любой попытке копирования исполняемого файла), а также возможные конфликты с другим программным обеспечением. Примером программы-фильтра является программа Vsafe, входящая в состав пакета утилит операционной системы MS-DOS.
Вакцины, или иммунизаторы, - это резидентные программы, предотвращающие заражение файлов. Вакцины применяют, если отсутствуют программы-доктора, "лечащие" этот вирус. Вакцинация возможна только от известных вирусов. Вакцина модифицирует программу или диск таким образом, чтобы это не отражалось на их работе, а вирус будет воспринимать их зараженными и поэтому не внедрится. В настоящее время программы-вакцины имеют ограниченное применение.
Своевременное обнаружение зараженных вирусами файлов и дисков, полное уничтожение вирусов на каждом компьютере позволяют избежать распространения вирусной "эпидемии" на другие компьютеры.
Антивирусный комплект АО "Диалог - Наука"
Среди обилия современных программных средств борьбы с компьютерными вирусами предпочтение следует отдать антивирусному комплекту АО "Диалог - Наука", в который входят четыре программных продукта: полифаги Aidstest и Doctor Web, ревизор диска ADinf и лечащий блок ADinf Cure Module. Кроме этого можно назвать и такую антивирусную программу, как AVP, которая сейчас нашла самое широкое применение. Эта программа разработана как под операционную систему MS-DOS, так и под операционную систему Windows.
Рассмотрим кратко, как и когда надо применять эти антивирусные программы.
Программа AVP-доктор, в зависимости от версии, позволяет определить до 50 000 различных вирусов. Она имеет два режима работы: через командную строку и полноэкранный интерфейс.
Программа-полифаг Doctor Web (Dr.Web) предназначена, прежде всего, для борьбы с полиморфными вирусами, которые сравнительно недавно появились в компьютерном мире. Использование этой программы для проверки дисков и удаления обнаруженных вирусов в целом подобно программе Aidstest. При этом дублированная проверка практически не происходит, так как Aidstest и Dr.Web работают на разных наборах вирусов.
Программа Dr.Web может эффективно бороться со сложными вирусами-мутантами, которые оказываются не под силу программе Aidstest. В отличие от нее программа Dr.Web способна обнаруживать изменения в собственном программном коде, эффективно определять файлы, зараженные новыми, неизвестными вирусами, проникая в зашифрованные и упакованные файлы, а также преодолевая "вакцинное прикрытие". Это достигается благодаря наличию достаточно мощного эвристического анализатора.
В режиме эвристического анализа программа Dr.Web исследует файлы и системные области диска, пытаясь обнаружить новые или неизвестные ей вирусы по характерным для вирусов кодовым последовательностям. Если таковые будут найдены, то выводится предупреждение о том, что объекты, возможно, инфицированы неизвестным вирусом.
Предусмотрены три уровня эвристического анализа. В его режиме возможны ложные срабатывания, т. е. детектирование файлов, не являющихся зараженными. Уровень "эвристики" подразумевает уровень анализа кода без наличия ложных срабатываний. Чем выше уровень "эвристики", тем выше процент наличия ошибок или ложных срабатываний. Рекомендуются первые два уровня работы эвристического анализатора.
Третий уровень эвристического анализа предусматривает дополнительную проверку файлов на "подозрительное" время их создания.
Некоторые вирусы при заражении файлов устанавливают некорректное время создания, как признак зараженности данных файлов. Например, для зараженных файлов секунды могут иметь значение 62, а год создания может быть увеличен на сто лет.
В комплект поставки антивирусной программы Dr.Web могут входить также файлы дополнения к основной вирусной базе программы, расширяющие ее возможности.
Программа-полифаг Aidstest
Aidstest - это программа, которая умеет обнаруживать и уничтожать более 1 300 компьютерных вирусов, получивших наиболее широкое распространение в России. Версии Aidstest регулярно обновляются и пополняются информацией о новых вирусах.
Антивирус-ревизор диска ADinf
Ревизор ADinf позволяет обнаружить появление любого вируса, включая стелс-вирусы, вирусы-мутанты и неизвестные на сегодняшний день вирусы.
Программа Adinf запоминает:
- информацию о загрузочных секторах;
- информацию о сбойных кластерах;
- длину и контрольные суммы файлов;
- дату и время создания файлов.
На протяжении всей работы компьютера программа ADinf следит за сохранностью этих характеристик. В режиме повседневного контроля ADinf запускается автоматически каждый день при первом включении компьютера. Особо отслеживаются вирусоподобные изменения, о которых немедленно выдается предупреждение. Кроме контроля за целостностью файлов, ADinf следит за создание и удалением подкаталогов: созданием, удалением, перемещением и переименованием файлов; появлением новых сбойных кластеров; сохранностью загрузочных секторов и др. Перекрываются все возможные места для внедрения вируса в систему.
ADinf проверяет диски, не используя DOS, читая их по секторам прямым обращениям в BIOS. Благодаря такому способу проверки Adinf обнаруживает маскирующиеся стелс-вирусы и обеспечивает высокую скорость проверки диска.
Лечащий блок ADinf Cure Module - это программа, которая помогает "вылечить" компьютер от нового вируса, не дожидаясь свежих версий полифагов Aidstest или Dr.Wed, которым этот вирус будет известен.
Программа ADinf Cure Module использует тот факт, что несмотря на огромные разнообразия вирусов существует совсем немного различных методов их внедрения в файлы. Во время нормальной работы, при регулярном запуске ревизора ADinf он сообщает ADinf Cure Module о том, какие файлы изменились с момента последнего запуска. ADinf Cure Module анализирует эти файлы и записывает в свои таблицы информацию, которая может потребоваться для восстановления файлов при заражении вирусом. Если заражение произошло, то ADinf заметит изменения и снова вызовет ADinf Cure Module, который на основе анализа зараженного файла и сопоставления его с записанной информацией попытается восстановить исходное состояние файла.
3.4.4 Общие сведения об архивации файлов
Одним из наиболее широко распространенных видов сервисных программ являются программы, предназначенные для архивации, упаковки файлов путем сжатия хранимой в них информации.
Сжатие информации - это процесс преобразования информации, хранящейся в файле, к виду, при котором уменьшается избыточность в ее представлении и соответственно требуется меньший объем памяти для хранения.