Предыдущая глава НАЧАЛЬНЫЕ ЗАГРУЗЧИКИ Следующий раздел

22.1. Общая схема начальной загрузки

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

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

Обычно в ВС реализуется следующая схема начальной загрузки (рис.80). При включении ЭВМ в сеть или при нажатии клавиши <Reset> инициируется модуль «Аппаратный загрузчик», который выполняет подготовку к выполнению программы POST BIOS, входящей в состав BIOS, а затем передает ей управление. POST BIOS, во-первых, выполняет комплексное тестирование ЭВМ (проверяет объем и целостность ОП, определяет тип ЦП, тестирует ПУ и т.д.).

Во-вторых, с диска читается первичный начальный загрузчик и помещается в ОП по адресу 7C00h. Для того чтобы выполнить данное считывание, POST BIOS обращается к первому по порядку диску и считывает с него логический сектор 0. (Порядок дисков может быть изменен во время настройки POST BIOS пользователем.) Если данный сектор не содержит первичный начальный загрузчик, то читается сектор 0 следующего по порядку диска. Если ни на одном из заданных дисков первичный загрузчик не найден, то из ПЗУ считывается Бейсик и ему передается управление. Если же первичный начальный загрузчик найден, то управление передается ему.

 

 

Рис. 80. Общая схема начальной загрузки

 

Так как размер сектора диска невелик (всего 512 байт), программный начальный загрузчик реализуется в виде двух модулей. Первичный начальный загрузчик, расположенный в секторе 0 диска, загружает информацию, расположенную в фиксированной области диска, а затем инициирует вторичный начальный загрузчик, входящий в состав этой информации. Вторичный загрузчик выполняет поиск в файловой структуре системы требуемых программ, а затем передает управление одной из программ, загруженных им или первичным загрузчиком. Прежде, чем передать это управление, вторичный загрузчик, возможно, переключает ЦП в защищенный режим.

Например, при начальной загрузке операционной системы FreeDOS первичный загрузчик считывает в ОП фиксированную область, содержащую системный загрузочный модуль Kernel.sys. В состав этого файла входит вторичный начальный загрузчик, который после своего инициирования первичным начальным загрузчиком выполняет считывание в ОП с помощью файловой структуры системного диска недостающих модулей ОС. Далее один из этих модулей – модуль настройки, считав файл Fdconfig..sys, в котором содержатся системные параметры, заданные пользователем (максимальное число одновременно открытых файлов, название и параметры интерпретатора команд и т.д.), выполняет настройку ОС. После этого в ОП загружается интерпретатор команд (по умолчанию это файл Command.com), которому передается управление.

 


Предыдущая глава В начало Следующий раздел