Взаимодействие с ядром во время загрузки



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

Флаги загрузки ядра

Вот наиболее часто используемые флаги загрузки:

-a

   во время инициализации ядра запрашивать устройство для его монтирования в качестве корневой файловой системы.

-C

   загрузка с компакт-диска.

-c

   запустить UserConfig для конфигурации ядра во время загрузки

-s

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

-v

   во время запуска ядра выводить более подробную информацию

Замечание: Есть и другие флаги загрузки, обратитесь к странице справочника по boot(8) для выяснения подробной информации по ним.

Хинты устройств

Во время начального запуска системы загрузчик loader(8) производит чтение файла device.hints(5). В этом файле хранится необходимая для загрузки ядра информация, задаваемая в виде переменных, которую иногда называют хинтами для устройств (''device hints''). Эти ''хинты устройств'' используются драйверами устройств для их конфигурации.

Хинты для устройств могут быть также заданы в приглашении начального загрузчика Стадии 3. Переменные могут быть добавлены при помощи команды set, удалены посредством unset и просмотрены командой show. В этот момент могут быть также переопределены переменные, заданные в файле /boot/device.hints. Хинты для устройств, введённые в начальном загрузчике, не сохраняются, и при следующей перезагрузке будут утеряны.

После загрузки системы для выдачи значений всех переменных можно воспользоваться командой kenv(1).

Синтаксически в файле /boot/device.hints в каждой строке определяется по одной переменной, в качестве метки начала комментария используется стандартный символ ''#''. Строки строятся следующим образом:

hint.driver.unit.keyword=" value "

Синтаксис для начального загрузчика Стадии 3 таков:

set hint.driver.unit.keyword= value

driver определяет имя драйвера устройства, unit соответствует порядковому номеру модуля устройства, а keyword является ключевым словом хинта. В качестве ключевых слов могут применяться следующие опции:

• at: задаёт шину, к которой подключено устройство.

• port: задаёт начальный адрес используемого диапазона ввода/вывода (I/O).

• irq: задаёт используемый номер запроса на прерывание.

• drq: задаёт номер канала DMA.

• maddr: задаёт физический адрес памяти, занимаемый устройством.

• flags: устанавливает различные битовые флаги для устройства.

• disabled: если установлено в значение ''1'', то устройство не используется.

Драйверы устройств могут поддерживать (и даже требовать) другие хинты, здесь не перечисленные, поэтому рекомендуется просматривать справочные страницы по этим драйверам. Для получения дополнительной информации обратитесь к страницам справки по device.hints(5), kenv(1), loader.conf(5) и loader(8).

Init: инициализация управления процессами

После того, как ядро завершит загрузку, оно передает управление пользовательскому процессу init(8), который расположен в файле /sbin/init или в файле, маршрут к которому указан в переменной init_path загрузчика.

Процесс автоматической перезагрузки

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

Однопользовательский режим

В этот режим можно перейти во время процесса автоматической перезагрузки, при ручной загрузке с параметром -s или заданием переменной boot_single для программы loader.

Этот режим может быть также вызван запуском программы shutdown(8) без параметров перезагрузки (-r) или останова (-h) из многопользовательского режима.

Если режим доступа к системной консоли console установлен в файле /etc/ttys в insecure, то система выведет запрос на ввод пароля пользователя root перед переходом в однопользовательский режим.


Дата добавления: 2018-10-26; просмотров: 174; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!