Сценарий Начальной загрузки

Типы начальной загрузки центрального процессора бывают оформлены различными способами. Таким образом, для них существуют различные программы запуска. Эта часть описывает программу запуска, которая будет использоваться, включая любые специальные флажки, необходимые для правильных операций, например, отключающая команду HLT для некоторых дефектных Pentium-процессоров, резервируя некоторый определенный диапазон адресного пространства для любого специфического драйвера, который будет загружен позже и т.д. Посмотрим на типичный случай, который реализует сказанное выше:

[virtual=x86,bios +compress] .bootstrap = {
startup-bios -s 64k -D 8250.3f8.9600 -A -vv
PATH=/proc/boot procnto
}
В этом примере, первая строка определяет, что это — файл начальной загрузки, атрибуты файла предшествуют имени файла. «virtual» определяет, что этот файл-строитель формирует загрузочный образ, соответствующий виртуальному адресному пространству, которое будет определено во время загрузки. «х86, bios» — ключевые слова, после которых определяется процессор (x86) и тип загрузки (загрузка через BIOS) соответственно. «+compress» — ключевое слово, определяющее, что образ должен быть сжат. Это обеспечивает меньший объем образа.

Обратите внимание: Размер образа большую роль, особенно при загрузке с Disk On Chip. При загрузке с жесткого диска на x86 совместимых системах, образ должен быть меньше чем 632 кБ.

Анализируя содержание файла начальной загрузки, мы увидим, что он сходен со сценарием загрузки и запускает две программы:

Startup-bios: Эта программа отвечает за извлечения образа, размещение его в соответствующем адресном пространстве ОЗУ, загрузка первоначальной конфигурации и наконец загрузка ядра. В этом примере опция «-s 64k» сообщает о том, чтобы было скопировано в первые 64 кБ ОЗУ Video BIOS, для ускорения работы (этот процесс известен как «ROM BIOS shadowing». ROM — гораздо более медленно работает по сравнению с ОЗУ). Вторая опция сообщает программе открыть канал отладки на первом последовательном порте со скоростью 9600 бод. Таким образом вывод отладки может быть зафиксирован на другом компьютере, связанных через нуль-модемный кабель. Третья опция сообщает программе немедленно перезагружать систему после аварийного завершения работы ядра. Эта опция весьма типична в реальной жизни, когда контроллер компьютера должен работать без остановки. Наконец четвертая опция сообщают программе перейти в режим двойной защиты.

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

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