Базовая система ввода-вывода (BIOS)
СТРУКТУРА DOS
1. Базовая система ввода-вывода (BIOS)
2. Блок начальной загрузки (Boot Record)
3. Модуль расширения базовой системы ввода-вывода (IO.SYS)
4. Модуль обработки прерываний (MSDOS.SYS)
5. Командный процессор (COMMAND.COM)
6. Утилиты DOS
7. Процесс загрузки DOS
8. Прооцесс загрузки и инициализации DOS
Базовая система ввода-вывода (BIOS)
Модуль BIOS индивидуален для каждой вычислительной системы и поставляется её изготовителем. В этом модуле содержатся аппаратно-зависимые драйверы следующих устройств:
§ Консольный.дисплей с клавиатурой (СОМ).
§ Устройство построчной печати (РRN).
§ Последовательный канал связи (АUХ).
§ Часы/календарь (СLOCK).
§ Дисковое устройство начальной загрузки (блочно-ориентированное устройство).
BIOS находится в постоянной памяти (постоянном запоминающем устройстве, ПЗУ) и в архитектуре компьютера занимает особое место. Эту систему можно рассматривать, с одной стороны, как составную часть аппаратных средств; с другой стороны, BIOS является, по существу, одним из программных модулей DOS. Входящие в этот модуль программы обеспечивают выполнение важных функций по поддержке жизнеспособности компьютера.
Одна из первых функций BIOS - автоматическое тестирование основных аппаратных компонентов при включении машины, включая оперативную память (RAM - Random Access Memory). Если в процессе тестирования памяти или других аппаратных компонентов обнаруживаются ошибки, BIOS выдает на экран соответствующие сообщения. Дальнейшая работа машины на этом прекращается и пользователю нужно принимать меры к устранению выявленной ошибки.
Вторая важная функция BIOS, вступающая в действие по окончании тестирования, - вызов блока начальной загрузки DOS. Поскольку DOS - сложная система, состоящая из нескольких модулей, загрузка ее в память проходит в две ступени; сначала BIOS загружает с системного диска в оперативную память специальный блок начальной загрузки, а затем уже передает на него управление, а тот, в свою очередь, осуществляет загрузку других модулей DOS. При такой двухступенчатой организации загрузки с BIOS снимается забота о поиске и настройке различных модулей DOS. Единственное условие нормальной работы BIOS - это обнаружение на фиксированном месте системного диска блока начальной загрузки. При этом роль системного диска в ПК может играть гибкий или жесткий магнитный диск.
Третья важная функция BIOS - обслуживание системных вызовов или прерываний. Системные вызовы вырабатываются программными или аппаратными средствами с целью выполнения различных операций. Для реализации системных вызовов используется механизм прерываний. Суть этого механизма заключается в том, что текущая работа машины может быть приостановлена на короткое время одним из сигналов, который указывает на возникновение ситуации, требующей немедленной обработки.
Прерывания можно разделить на три группы: аппаратные, логические и программные.
Источники аппаратных прерываний - падение напряжения питания, нажатие клавиши на клавиатуре, приход очередного импульса от счетчика времени, возникновение специальных сигналов от накопителей на гибких или жестких дисках и др.
Логические, или процессорные, прерывания возникают при различных нестандартных ситуациях в работе основного процессора - деление на нуль, переполнение регистров, появление "точки останова" и др.
Программные прерывания - самая обширная категория. Вырабатываются они, когда программа хочет получить определенный сервис со стороны другой программы, причем этот сервис обычно связан с работой аппаратных средств.
Каждое прерывание имеет свой уникальный номер и с ним может быть связана определенная подпрограмма, призванная обслуживать возникшую ситуацию. Сама обслуживающая подпрограмма , вообще говоря, тоже может быть приостановлена другим прерыванием, но чаще всего на период работы подпрограммы, обслуживающей некоторое прерывание, другие прерываания "маскируются", т.е. не обслуживаются немедленно, а ставятся в очередь.
Итак, в аппаратных компонентах машины, в самой DOS и в прикладных программах могут вырабатываться прерывания, которые нужно обслуживать. На BIOS возлагается задача обслуживания прерываний нижнего уровня - тех, которые требуют непосредственного управления аппаратными компонентами. Этим прерываниям присвоены номера с 0 по 31 (шестнадцатиричные номера 0 - 1F). Другие прерывания - с номерами 32-63 (шестнадцатиричные номера 20 - 3F) - относятся к более высокому уровню, и их обслуживание возлагается на другие модули DOS.
Таким образом, BIOS является своеобразной программной оболочкой вокруг аппаратных средств ПК, предоставляя возможность другим программам, в частности самой DOS, обращаться к аппаратным компонентам через механизм прерываний.
Блок начальной загрузки (Boot Record)
Блок начальной загрузки (БНЗ), или просто загрузчик, - это небольшая программа, единственная функция которой заключается в считывании с дисков в оперативную память двух других частей DOS - модуля расширения базовой системы ввода/вывода и модуля обработки прерываний. Сам загрузчик размещается на системном диске всегда на одном и том же месте - на 0-й стороне, в 1-м секторе дорожки 00. Длина БНЗ - 512 байт, т. е. он занимает всего один сектор на диске, и уже поэтому содержащаяся в нем программа не может быть чрезмерно сложной.
Работа БНЗ состоит в следующем. Он должен просмотреть каталог системного диска и убедиться, что первые два файла как раз и являются модулями DOS. В DOS эти файлы имеют специальные имена: IO.SYS и MSDOS.SYS. Для упрощения БНЗ они размещаются на системном диске всегда первыми - один эа другим в последовательных секторах. При этом оба файла снабжаются специальным атрибутом, который делает их "невидимыми": при выводе каталога диска на экран дисплея или на принтер имена указанных системных файлов не выводятся, хотя они и присутствуют в каталоге. Обеспечивается такое размещение при форматировании системных дисков и переносе на них операционной системы с других носителей.
Если БНЗ не обнаруживает указанных файлов на первых двух позициях каталога диска, то данный диск считается "несистемным", о чем на экран выдается соответствующее сообщение. Пользователь в этом случае может вставить в дисковол "правильный" системный диск и, нажав любую клавишу, подтолкнуть БНЗ к повторению поиска DOS на вновь установленном диске. Здесь следует заметить, что машину можно "перезапустить" двумя способами. Один из них, очевидный, заключается в выключении и повторном включении питания всей машина ("холодный перезапуск"). Однако этот "грубый" способ не очень-то полезен для электронных компонентов системного блока, чувствительных к броскам напряжения питания. Другой способ перезапуска ("теплый") - с помощью специальной комбинации клавиш (Ctrl+Alt+Del). В этом случае загрузка системы начинается с BIOS; при этом тестирование памяти и других аппаратных компонентов не производится, а сразу начинается поиск и загрузка в память БНЗ.
Возвращаясь к описанию БНЗ, заметим, что он всегда заносится на диск при его начальной разметке (форматировании) независимо от того, записываются ли на диск также и "системные" файлы с другими модулями DOS. Что касается 2-х других упомянутых системных файлов, то они появляются на диске лишь при особом режиме форматирования. Занести их на уже заполненный диск (с непустым каталогом файлов) нельзя, так как начальные позиции каталога и начальные сектора диска будут заняты другими файлами. Если же диск размечен обычным образом, но еще пуст, т. е. не содержит никаких файлов, то можно поместить на него системные файлы, применив специальную команду DOS (SYS.COM).