Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гл.10 ОС буклет.doc
Скачиваний:
5
Добавлен:
11.11.2018
Размер:
115.71 Кб
Скачать

9.1.2. Загрузчик ос

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

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

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

9.1.3. Двоетапне загрузки

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Не ограничен одним разделом и одним диском загрузчик может работать со всеми дисками компьютера, загружать ядра, которые находятся в разных местах на диске (в частности внутри иерархии каталогов). Двоетапни загрузчики чрезвычайно распространены, их могут поставлять вместе с ОС (например, lilo или GRUB для Linux, загрузчик Windows ХР), а также они могут быть реализованы как отдельные продукты — менеджеры загрузки (boot managers).