ТОП 10:

Аппаратная инициализация компьютера



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

Для начала процедуры загрузки на процессор подают команду RESET (сброс).

После ее принятия, некоторые регистры процессора (в частности регистр счетчика команды) приобретают фиксированные значения, и начинается выполнение кода по физическому адресу 0хfffffff0.

Аппаратное обеспечение отображает этот адрес на специальный участок энергонезависимой памяти (RОМ).

Набор программ, который сохраняется в RОМ, по традиции называют BIOS (Ваsic Input/Output -базовая система ввода/вывода), он включает набор управляемых прерываниями низкоуровневых процедур, которые можно использовать для управления устройствами, подключенными к компьютеру.

Большинство современных ОС используют BIOS только на этапе начальной загрузки (какой называют bootstrapping). После этого они никогда не обращаются к процедурам BIOS и все функции управления устройствами у ОС берут на себя драйверы этих устройств. Дело в том, что процедуры ВIOS могут выполняться только в реальном режиме процессора, а ядро — в защищенном режиме; кроме того, обычно код BIOS не имеет высокого качества. Реальную адресацию используют в коде ВIOS потому, что только такие адреса оказываются доступными, когда компьютер едва лишь включен.

Процедура начальной загрузки ВIOS (bootstrap procedure) сводится к четырем операциям.

1. Выполнение набора тестов аппаратного обеспечения для выяснения, какие устройства в системе присутствуют но работают ли все они корректно. Этот этап называют самотестированием после того, что включило питания (Power-on Self-test, Post).

2. Инициализация аппаратных устройств. Этот этап очень важен в современных архитектурах, основанных на шине РСI, поскольку он гарантирует, что все устройства будут работать без конфликтов в случае использования линий прерываний или портов введения-выведения. В конце этого этапа будет отображен список установленных РСІ-устройств.

3. Поиск и выполнение начального кода загрузки. В зависимости от установок ВIOS осуществляют попытку доступа (в предварительно определенном порядке, который можно изменить) к первому сектору гибкого диска или первый сектор (называют главной загрузочной записью (МВR)) заданного жесткого диска или компакт-диска.

4. Когда устройство найдено, ВIOS копирует содержание его первого сектора в оперативную память (начиная из фиксированного физического адреса 0х00007с00), выполняет команду перехода по этому адресу и начинает выполнять только что загружен код. За все другое отвечает операционная система.

 

1.6 Загрузчик ОС

Загрузчиком ОС (boot loader) называют программу, вызванную кодом ВIOS во время выполнения процедуры начальной загрузки для создания образа ядра операционной системы в оперативной памяти.

Рассмотрим основные принципы работы самого простого загрузчика в архитектуре РС.

Как отмечалось, ВIOS начинает выполнять код, который сохраняется в МВR. Обычно МВR содержит таблицу разделов и небольшую программу, которая загружает первый (загрузочный) сектор одного из разделов в память и начинает выполнять код, который находится в нем, — обычно этот код называют кодом загрузчика ОС. Выбор раздела, из которого нужно загрузить сектор, преимущественно осуществляют с помощью флажка активного раздела, заданного для ячейки таблицы разделов. Таким способом можно загрузить только ту ОС, ядро которой находится на активном разделе, другие подходы рассмотрим позже.

Загрузчика ОС обычно записывают в загрузочный сектор во время инсталляции системы, тогда же задается и код для МВR. Код самого простого загрузчика сводится к поиску на диске ядра ОС (обычно это файл, который находится в фиксированном месте корневого каталога) и загрузки его в память.

После загрузки ядра в память управление передают по адресу специальной процедуры, которая начинает процесс инициализации ядра, и выполняются такие действия, как опрос и инициализация оборудования (обычно будут инициализировать все оборудование — даже то, которое было уже проинициолизировано в ВIOS), инициализация подсистем ядра, загрузки и инициализация необходимых драйверов (в первую очередь диска и видеокарты), монтирования корневой файловой системы. Точная последовательность действий разная для разных ОС.

 

Два этапа загрузки

Использование загрузочного сектора для непосредственной загрузки ядра ОС имеет свои особенности:

· код загрузчика вынужденно является очень простым, потому в нем не возможно выполнять более сложные действия (например, руководить загрузкой нескольких ОС), большинство других недостатков являются последствиями этого;

· не возможно передавать параметры в загрузчика;

· процесс ограничен описанной схемой переключения из МВR на загрузочный сектор, нет возможности руководить этим процессом;

· нет возможности загружать ядро из другого раздела диска или из подкаталога;

· ОС всегда будет запущена в реальном режиме процессора.

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

В этом случае загрузчика разбивают на две части: загрузчик первого и второго этапов.

Загрузчик первого этапа - хранят в загрузочном секторе диска, и основным его заданием является поиск на диске и загрузка в память загрузчика второго этапа.

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

Рассмотрим некоторые возможности двухэтапного загрузчика.

· В нем можно руководить загрузкам нескольких операционных систем. Особенно удобно это делать в загрузчиках, которые принимают управление от МВR: при этом загрузчик берет на себя поиск активного раздела и загрузку системы из него. Конфигурацию такого загрузчика можно динамически изменять во время изменения разделов диска. Загрузчик может содержать код доступа к разным файловым системам, код загрузки разных ядер и тому подобное.

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

· Его конфигурация может быть задана пользователем из загруженной ОС. Для этого, например, можно задать текстовый конфигурационный файл, сохранить его на диске и запустить специальную утилиту, которая сделает синтаксический разбор файла, превратит его во внутреннее отображение и сохранит на диске в фиксированном месте, известному загрузчику.

· Не ограниченный одним разделом и одним диском загрузчик может работать со всеми дисками компьютера, загружать ядра, которые находятся в разных местах на диске.

 







Последнее изменение этой страницы: 2017-02-06; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.238.4.24 (0.006 с.)