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

Глава 5. Этапы начальной загрузки ос Unix

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

Обычно процесс начальной загрузки состоит из шести этапов:

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

  • распознавание и конфигурирование устройств;

  • создание спонтанных процессов (системных);

  • выполнение команд оператора (при ручной загрузке);

  • Выполнение командных файлов запуска системы;

  • переход в многопользовательский режим.

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

На первом шаге аппаратно считывается в память содержимое первого блока. Первый блок каждой файловой системы резервируется для записи специальной короткой программы, выполняющей начальную загрузку. Эта программа–загрузчик ищет и читает в память файл с именем «unix» расположенный в корневом каталоге /unix. Данный файл содержит ядро ОС в машинных командах. Он создан путем компиляции и связи файлов, включающих исходные коды ОС.

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

В большинстве систем процесс загрузки ядра выполняется в два этапа:

  • выполнение стартовой процедуры, записанной в ROM;

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

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

  1. Выполняет системный тест SPU (System Processing Unit).

  2. Определяет системную консоль и назначает дисплейный терминал в качестве системной консоли.

  3. Загружает ISL (Initial System Loader) – начальный системный загрузчик.

Как правило, загружаемая система должна находиться на дисковом устройстве, где для нее определен специальный раздел, в котором находится программа загрузки (bootstrap). Дисковое устройство может, например, идентифицироваться как /dev/root.

Все это происходит еще вне UNIX, поэтому в разных системах этот процесс происходит по–разному.

Второй этап начальной загрузки начинается с последующего выполнения файла /unix. Ядро выполняет тестовые программы, позволяющие определить, сколько памяти имеется в наличии. Ядро формирует начальные значения нескольких структур данных, в том числе наборы буферов блоков, списки символов, буфера индексных дескрипторов и переменную, указывающую размер основной памяти. В большинстве систем ядро выдает на консоль сообщение об общем объеме физической памяти и объеме памяти, занятой ядром.

5.2. Распознавание и конфигурирование устройств

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