Authorization

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

DOS состоит из следующих основных модулей:

- базовая система ввода/вывода (BIOS);
- блок начальной загрузки (Boot Record);
- модуль расширения базовой системы ввода/вывода (IO.SYS);
- модуль обработки прерываний (MSDOS.SYS);
- командный процессор (COMMAND.COM);
- утилиты DOS.
 

Базовая система ввода/вывода - (BIOS)

В архитектуре ПЭВМ базовую систему ввода/вывода (BIOS) можно рассматривать с одной стороны как составную часть аппаратных средств, с другой стороны, BIOS является одним из программных модулей DOS. BIOS находится не на дисках, как все остальные модули, а в постоянном запоминающем устройстве (ПЗУ), установленном внутри системного блока.

BIOS обеспечивает:

1) Автоматическое тестирование основных аппаратных компонентов при включении машины.
Процесс тестирования или самотестирования, как его иногда называют, занимает после включения питания машины заметное время - от нескольких секунд до нескольких минут. Если обнаруживаются ошибки, BIOS выдает на экран соответствующие сообщения (обычно в виде условного кода ошибки) и еще извещает об этом пользователя звуковым сигналом. Дальнейшая работа машины при этом прекращается и пользователю нужно принимать меры к устранению выявленной ошибки.

2). Вызов блока начальной загрузки DOS.
Загрузка DOS в память происходит в два этапа; сначала BIOS загружает с системного диска в память специальный блок начальной загрузки, а затем уже передает на него управление, и тот, в свою очередь, осуществляет загрузку всех остальных модулей DOS.

3). Обслуживание системных вызовов или прерываний.
Системные вызовы вырабатываются программными или аппаратными средствами с целью выполнения различных операций. Для реализации системных вызовов используется механизм прерываний.

Прерывания можно разделить на три группы: аппаратные, логические и программные.

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

Логические или процессорные прерывания возникают при различных нестандартных ситуациях в работе основного микропроцессора - делении на ноль, переполнении регистров, появлении "точки останова" и др.

Программные прерывания - самая обширная категория. Они вырабатываются, когда одна программа хочет получить определенный сервис со стороны другой программы, причем этот сервис обычно связан с работой аппаратных средств.

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

На BIOS возлагается задача обслуживания прерываний нижнего уровня - тех, которые требуют непосредственного управления аппаратными компонентами. Этим прерываниям присвоены номера с 0h по 1Fh. Другие прерывания - с номерами 20h-3Fh - относятся к более высокому уровню, и их обслуживание возлагается на другие модули DOS.
     


Блок начальной загрузки (Boot Record)


Блок начальной загрузки расположен на дорожке 0, в секторе 1 на стороне 0 любого диска, размеченного командой FORMAT. Он помещается на диск при его начальной разметке (форматировании) независимо от того, какой создаётся диск - системный или нет. Блок начальной загрузки печатает сообщение об ошибке при попытке запустить систему с несистемного диска в устройстве A:. На фиксированном диске блок начальной загрузки расположен на первом секторе (сектор 1, головка 0) первого цилиндра раздела DOS.

Блок начальной загрузки (БНЗ) или просто "загрузчик" – это небольшая программа, единственная функция которой заключается в считывании с дисков в оперативную память двух других частей DOS - модуля расширения базовой системы ввода/вывода и модуля обработки прерываний.

Длина БНЗ - 512 байт, то есть он занимает всего один сектор на диске, поэтому содержащаяся в нем программа не может быть чрезмерно сложной.

Работа БНЗ очень простая. Он должен просмотреть каталог системного диска и убедиться, что первые два файла как раз и являются модулями DOS. В DOS эти файлы имеют специальные имена: IO.SYS и MSDOS.SYS. Для упрощения БНЗ они размещаются на системном диске всегда первыми - один за другим в последовательных секторах. При этом эти файлы снабжаются специальным атрибутом, который делает их "невидимыми",- при выводе каталога диска на экран дисплея или на принтер. Имена указанных системных файлов не выводятся, хотя они и присутствуют в каталоге.

Здесь следует заметить, что машину можно "перезапустить" двумя способами. Один из них, очевидный, заключается в выключении и повторном включении питания всей машины. Однако, этот "грубый" способ не очень-то полезен для электронных компонентов системного блока, чувствительных к броскам напряжения питания.

Другой способ перезапуска - с помощью специальной комбинации клавиш <CTRL-ALT-DEL>. Во втором случае тестирование памяти и других аппаратных компонентов не производится, а сразу начинается поиск и загрузка в память БНЗ.
     


Модуль расширения BIOS (IO.SYS)

 

Модуль расширения базовой системый ввода-вывода расположен в файле IO.SYS и обеспечивает обращение к подпрограммам BIOS.

Базовая система ввода/вывода является инвариантной к тому, какая именно операционная система устанавливается на данной машине. В этом смысле BIOS является общей и неизменяемой частью всех возможных операционных систем для данной модели ПЭВМ. Изменение BIOS - нетривиальная задача, поскольку она очень тесно связана с особенностями аппаратуры конкретной модели ПЭВМ.

Расширение BIOS с помощью дополнительного модуля DOS придает гибкость операционной системе, позволяя управлять с ее помощью таким набором аппаратных средств ПЭВМ, который наиболее точно соответствовал бы замыслу разработчиков конкретной DOS.

Модуль расширения BIOS это обычная программа, которая при необходимости может быть заменена другой программой. При этом использование механизма прерываний позволяет, с одной стороны, очень просто и изящно "перекрывать" функции, обслуживаемые BIOS; c другой стороны, появляется возможность включения дополнительных подпрограмм, обслуживающих новые внешние устройства. Такие подпрограммы носят название драйверов внешних устройств. Системный программист может разработать свои драйверы не только для новых внешних устройств, но и для тех, которые стандартно входят в состав аппаратуры (при этом обмен информацией со стандартными устройствами будет происходить уже иначе, чем принято в оригинальной версии DOS). Это придает системе большую гибкость и возможность адаптации ее под любые требования пользователей.

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


 Модуль обработки прерываний DOS (MSDOS.SYS)
 

В отличие от описанного выше модуля расширения BIOS, имеющего дело с прерываниями нижнего уровня, модуль обработки прерываний DOS образует верхний уровень системы, с которыми взаимодействует большинство прикладных программ. По этой причине этот модуль ДОС называют базовым.

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

Многие из функций, реализуемых данным модулем DOS, используются не только прикладными программами, но и командами, которые обрабатываются командным процессором.
     


Командный процессор (COMMAND.COM)

 

Командный процессор (файл COMMAND.COM) в отличие от рассмотренных выше модулей может занимать на системном диске любое место и трактуется, как обычная программа. При загрузке в ОЗУ командный процессор распадается на две области: резидентную, которая располагается вслед за двумя вышерассмотренными модулями ДОС, и нерезидентную, которая располагается на старших адресах ОЗУ

Резидентная часть содержит подпрограммы стандартной обработки прерываний. Здесь же находится программа подзагрузки нерезидентной части в ОЗУ. Кроме того, в состав резидентной части входит подпрограмма инициализации, которая обрабатывает файл AUTOEXEC.BAT при запуске машины.

Нерезидентная часть включает программу обработки команд DOS, поступающих с терминала или из командных файлов. В нерезидентную часть входит загрузчик внешних программ, задачей которого является чтение очередной программы с диска в ОЗУ, настройка адресов и переход на ее исполнение.

Поскольку нерезидентная часть командного процессора располагается на старших адресах ОЗУ, любая прикладная программа, загружаемая на младшие адреса, может частично или полностью занять и "затереть" эту область памяти. Этому ничто не мешает. По окончании такой программы управление всегда возвращается в резидентную часть командного процессора, который в этом случае пытается восстановить затертую нерезидентную часть, загружая ее с системного диска. Именно поэтому на машинах без жесткого диска после окончания работы некоторых прикладных программ на экран выдается сообщение "Установите системный диск в накопитель A:". Это значит, что прикладная программа затерла нерезидентную часть командного процессора, а резидентная часть, установив этот факт, делает попытку восстановить ее с гибкого диска. На машинах, в которых роль системного играет жесткий диск, такая ситуация разрешается незаметно для пользователя, поскольку командный процессор всегда есть на жестком диске - от пользователя не требуется.

Основные функции командного процессора заключаютcя:

- в приеме, анализе и исполнении команд пользователя, обращенных к DOS
- в обработке командных файлов

Команды пользователя иначе называют командами DOS. Они служат основным средством общения пользователя с дисковой операционной системой до тех пор, пока не будет вызвана какая-либо прикладная программа (задача), или "надстройка", которая заслонит DOS от пользователя своим интерфейсом. По окончании работы прикладной системы вновь вступает в действие командный процессор, обеспечивая обработку команд ДОС.

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

DOS осуществляет запуск любой прикладной программы. В этой роли могут, в частности, фигурировать "утилиты" ДОС - программы, выполняющие какую-либо сервисную функцию (например, начальную разметку диска).


Утилиты ДОС


В отличие от встроенных или "внутренних" команд DOS, реализуемых подпрограммами трех основных модулей, "внешние" команды, которые обычно входят в стандартный комплект DOS, реализуются посредством автономных сервисных программ. Такие программы называют утилитами.

В стандартный комплект DOS входит несколько десятков утилит, предназначенных для разных целей. При практической работе наиболее часто используются лишь некоторые из них. Например, FORMAT.COM, CHKDSK.COM, MODE.COM. Реже используются другие программы - FDISK.COM, BACKUP.COM, RECOVER.COM, RESTORE.COM, PRINT.COM, GRAPHICS.COM, TREE.COM и пр.

Достоинством DOS является то, что любая программа может играть роль сервисной, поскольку для ее запуска достаточно указать лишь имя файла, в котором она содержится. Следовательно, с точки зрения пользователя такие программы не отличаются от встроенных команд DOS. Программа может воспринимать параметры, задаваемые в командной строке. Храниться она может в любом каталоге на любом диске.

Указанное свойство делает ДОС открытой для расширения. Неизменное ядро системы составляют лишь BIOS и три основных модуля: IO.SYS, MSDOS.SYS и COMMAND.COM. Общий объем оперативной памяти, занимаемой этими модулями, составляет до 60 Кбайт.