Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы_лекции.doc
Скачиваний:
47
Добавлен:
28.09.2019
Размер:
1.71 Mб
Скачать

8. Загрузчики операционных систем

8.1. Понятие загрузчика и виды его реализации

Современная концепция взаимодействия аппаратного и программного обеспечения предусматривает нахождение в памяти машины любой программы, исполняемой в текущий момент времени. Поскольку операционная система является комплексом программ, то её важнейшие модули (ядро) также должны находиться в памяти машины. Между тем в момент старта машины ядро может находиться как в ПЗУ, так и на дисковом устройстве и даже на магнитной ленте, или вообще отсутствовать и загружаться по сети.

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

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

  • подготавливает аппаратуру компьютера к старту ядра операционной системы;

  • загрузка в оперативную память ядра операционной системы;

  • формирование параметров, передаваемых ядру операционной системы;

  • передача управления ядру операционной системы.

Например, на компьютерах архитектуры IBM PC загрузка происходит следующим образом:

    • BIOS копирует Master Boot Record из 512 байт первого сектора жёсткого диска в оперативную память и передаёт управление скопированному коду (внесистемному загрузчику);

    • внесистемный загрузчик читает и анализирует таблицу разделов жёсткого диска;

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

    • системный загрузчик загружает ядро операционной системы в оперативную память.

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

Существует множество загрузчиков операционных систем. Наиболее известны следующие загрузчики:

  • NTLDR – загрузчик ядра Windows NT;

  • Windows Boot Manager (bootmgr.exe, winload.exe) – загрузчик ядра Windows Vista;

  • OS/2 BootManager — загрузчик ядра OS/2;

  • SILO – загрузчик Linux и Solaris для машин с архитектурой SPARC;

  • Plop Boot Manager – универсальный загрузчик, запускается с помощью собственных загрузчиков Windows и Linux, а также со съемных носителей;

  • SyMon – универсальный загрузчик, независим от типа операционной системы;

  • Acronis OS Selector — коммерческая графическая утилита прилагаемая к Acronis Disk Director, поддерживает Windows и Linux, появляется перед каждой загрузкой системы, умеет копировать системы.

Штатным загрузчиком операционной систем Windows NT/2000/XP является загрузчик NTLDR, существующий в виде файла ntldr. Он может запускаться как с жёсткого диска, так и с переносных носителей CD-ROM и FLASH-на­копителя. В процессе загрузки он последовательно запускает следующие файлы:

  • ntdetect.com – сбор информации о составе оборудования;

  • ntoskrnl.exe – ядро операционной системы1.

Для работы ntldr необходимо наличие в корневом каталоге диска, содержащего ntldr файла boot.ini, содержащего сведения, необходимые для организации загрузки. Пример текста файла boot.ini приведён на рис. 8.1.

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(2)\WINNT

[operating systems]

multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows Server 2000" /fastdetect

multi(0)disk(0)rdisk(1)partition(2)\WIN2KP="Windows XP Prof RU" /fastdetect

multi(0)disk(0)rdisk(0)partition(4)\WIN2KP="Windows 2000 Prof RU" /fastdetect

multi(0)disk(0)rdisk(2)partition(2)\WIN2KP="Windows XP Prof RU" /fastdetect

C:\="Microsoft Windows 98"

C:\CMDCONS\BOOTSECT.DAT="Recovery Console MS Windows 2000"/cmdcons

Рис. 8.1. Пример текста файла boot.ini

Данный файл позволяет организовать меню выбора одной из четырёх операционных систем, перечисленных в секции operating systems. В секции boot loader указано время ожидания выбора операционной системы и операционная система, загружаемая по умолчанию.

В секции operating systems перечислены установленные операционные системы. В строке C:\="Microsoft Windows 98" указано имя операционной системы, не являющейся членом семейства Windows NT, загрузчик которой находится в файле bootsect.dos, находящийся в корневом каталоге диска С:. В последней строке указан путь к файлу bootsect.dat, содержащему информацию для консоли восстановления и имя файла программы консоли восстановления системы.

Слово multi в описании меню указывает необходимость использования драйверов из BIOS компьютера. Слово disk(0) указывает на жёсткий магнитный диск с интерфейсом IDE2, слово rdisk(число) указывает номер накопителя, а слово partition определяет номер раздела, в который установлена операционная система.

Загрузчик работает также в момент перехода из спящего режима в рабочий режим. Признаком такого перехода является наличие файла hiberfil.sys, хранящего образ оперативной памяти компьютера и регистров процессора, существовавший в момент наступления спящего режима. В этом случае загрузчик просто загружает элементы образа на свои места и передаёт управление исполнявшейся программе.