ТОП 10:

Загрузка и инициализация ядра



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

В случае одноэтапной -загрузки ядро загружают всегда в реальном режиме.

В случае двухэтапного -режим загрузки зависит от того, переключают ли загрузчика второго этапа в защищенный режим.

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

 

Загрузка компонентов системы

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

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

 

Загрузка Windows ХР

Загрузки Windows ХР начинают стандартным способом — из передачи управления коду загрузочного сектора активного раздела диска. Главное его задание — определить местонахождение файла ntldr в корневом каталоге этого раздела, загрузить его в память и передать управление на его точку входа. Отметим, что код загрузочного сектора зависит от того, какая файловая система установлена для этого раздела: для FАТ выполняют один вариант, для NTFS — другой.

Файл ntldr можно рассматривать как загрузчик второго этапа. Он начинает свое выполнение в 16-битному режиме процессора, прежде всего переводит процессор в защищенный режим и включает поддержку страничной организации памяти, после этого считывает из корневого каталога файл boot.иnи и делает его синтаксический разбор.

Когда есть один вариант загрузки, система сразу начинает загружаться, когда их больше — отображают меню загрузки. После выбора варианта из меню ntldr запускает программу ntdetect.com, что в реальном режиме определяет базовую конфигурацию компьютера (подобно тому, как это делала функция setup() для Linux — ни одна из современных систем не доверяет этот код BIOS). Собранную информацию хранят в системе, позже она будет сохранена в реестре. Внизу экрана появляется текстовый индикатор прогресса. В этой ситуации можно нажать на F8 и перейти в меню дополнительных возможностей загрузки (в безопасном режиме и тому подобное).

Потом ntldr загружает в память

· ntoskrnl.ехе (которая содержит ядро и исполнительную подсистему Windows ХР),

· bootvid.dll (видеодрайвер за умалчиванием, которое отвечает за отображение информации во время загрузки),

· hat.dll (уровень абстрагирования от оборудования) и основные файлы реестра.

После этого он определяет из реестра, какие драйверы установлены в режиме запуска во время загрузки (это, например, драйвер жесткого диска) и загружает их (без инициализации). Будет загружен также драйвер корневой файловой системы. На этом роль ntldr в загрузке завершается, и он вызывает главную функцию в ntoskrnl.ехе для продолжения загрузки.

Инициализация ntoskrnl.ехе состоит из двух этапов: фаз 0 и 1.

Во время выполнения фазы 0 прерывания запрещены, на экране ничего не отображается. Основной целью этого этапа является подготовка начальных структур данных, необходимых для расширенной инициализации во время выполнения фазы 1. Отметим, что менеджер процессов на этом этапе будет инициализироваться почти полностью, с его помощью создают начальный объект-процесс с названием Idle, процесс System и системный поток для выполнения инициализации фазы 1. После завершения фазы 0 прерывания разрешены, и начинает выполняться системный поток.

Во время выполнения фазы 1 управление экраном осуществляет видеодрайвер bootvid.dll, который отображает загрузочный экран и графический индикатор прогресса на нем (этот индикатор будет изменяться на протяжении всей фазы 1). Происходит окончательная инициализация разных подсистем исполнительной системы (менеджера объектов, планировщика, службы безопасности, менеджера виртуальной памяти, менеджера кэша и тому подобное). Во время инициализации подсистемы ввода-вывода (которая занимает до 50 % времени этой фазы) происходит подготовка необходимых структур данных, инициализация драйверов с запуском во время загрузки (boot-start), загрузки и инициализация драйверов с системным запуском (system-start).

Фаза 1 завершается запуском менеджера сессий (smss.ехе).

Последующую загрузку выполняют три системных процесса:

· менеджер сессий smss.ехе,

· процесс регистрации в системе winiogon.ехе

· менеджер управления сервисами (SCM, services.ехе).

Основным заданием менеджера сессий является загрузка и инициализация всех компонентов подсистемы Win32 (как режиму пользователя, так и режиму ядра), а также окончательная инициализация реестра и запуск winiogon.ехе.

Процесс регистрации в системе запускает менеджер управления сервисами и менеджер аутентификации, а также организует регистрацию пользователей в системе.

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

 

Выводы

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

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

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

 

Контрольные вопросы

 

1. Расскажите, как происходит аппаратная инициализация компьютера.

2. Объясните, что такое BIOS.

3. Расскажите о процедуре начальной занрузки BIOS.

4. Расскажите о программе Загрузчике ОС, её работе и особенностях.

5. Расскажите об особенностях загрузки ядра ОС.

6. Расскажите о двуэтапной загрузке, чем вызвана необходимость применения и её возможности.

7. Расскажите о подходах к реализации загрузки ядра.

8. Расскажите о загрузке компонентов системы.

9. Расскажите об особенностях загрузчика Windows ХР (кратко, основные этапы).

 

Лекция 3 Архитектура ОС


План лекции: 1.8 Базовые понятия архитектуры ОС

1.9 Реализация архитектуры ОС

1.10 Операционная система и её окружение

 

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

 







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

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