Загрузка и инициализация системы
При включении питания запускается BIST – встроенное средство самоконтроля, которое работает в младших адресах памяти и осуществляет проверки памяти и периферийных устройств. Все результаты записываются в CMOS. После чего BIST вырабатывает сигнал RESET и запускается POST. Проверяются младшие адреса памяти, процессор, шина. Результаты также записываются в CMOS. Если во время проверок обнаружена ошибка, то система останавливается с выдачей соответствующего предупреждения. Если ошибок не обнаружено, то управление передается начальному загрузчику, который просматривает список загрузочных устройств и выбирает первое готовое. В зависимости от типа загрузчика либо начинается загрузка его первого сектора (CD), либо в связи с большими размерами в NIPL загружается BootVol, который содержит урезанное ядро и драйверы. Начальный загрузчик с диска IPL загружает это ядро, которое создает виртуальный диск, где анализирует BootVol и монтирует основной логический том. После этого ядро уничтожает виртуальный диск и запускает процесс идентификации init. Init в зависимости от режима работы системы запускает необходимые процессы и загружает драйверы.
|
|
Unix может работать в нескольких режимах: многопользовательский и однопользовательский (только администратор). Однопользовательский используется при глобальной настройке. Работа в многопользовательском режиме возможна на нескольких уровнях. Это задается в /etc/inittab – текстовый файл, где каждая строка это описание процесса запускаемого на заданном уровне.
Описание: имя:[уровень]:действие:[команда]
Уровень – Если не указан, то используется на всех уровнях. Уровни 1..9,S,M (s – однопользовательский, 2 – многопользовательский, 3 – многопользовательский с поддержкой сетевой файловой системы).
Команда – указывает на запускаемый процесс.
Действие – метод запуска процесса:
respawn – периодический перезапуск процесса
wait – ожидая запуска
once – однократно
sysinit – действие по однократному запуску системного процесса, выполняющегося до входа пользователей в систему.
Initdefault – определяет уровень загрузки системы по умолчанию. Когда Init впервые запускается ядром, он сначала ищет действия. Если уровень по умолчанию не задан, то он считается равным 9.