Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_СГTУ new v10.doc
Скачиваний:
149
Добавлен:
12.11.2019
Размер:
4.13 Mб
Скачать

3.7. Инсталляция и последовательность загрузки qnx

Как и большинство операционных систем, ОСРВ QNX Neutrino имеет несколько этапов загрузки (рис. 55). Кратко рассмотрим каждый из этапов [20].

Рис. 55. Процесс начальной загрузки QNX Neutrino

ФАП (фазовая автоподстройка, phased locked loop, PLL). ФАП – это процесс, длящийся от подачи питания на процессор до начала выполнения процессором первой инструкции. Для большинства ЦПУ процесс ФАП занимает время, за которое исходная тактовая частота задающего генератора проходит через все таймеры, используемые кристаллом. Время, занимаемое процессом ФАП для получения необходимых частот, обычно соответствует наибольшей временной метке, требуемой для запуска процессора. Время этапа ФАП не зависит от загружаемой ОС и меняется в зависимости от типа ЦПУ. В некоторых случаях это время может быть более 32 мс.

НЗ (начальный загрузчик, initial program loader, IPL). IPL находит загрузочный образ ОС (OS image - это не ядро) и отдает управление программе загрузки, которая находится в этом образе. В QNX используется стандартный начальный загрузчик, который выполняет минимально необходимые операции для подготовки памяти, инициализации выбора нужных микросхем и конфигурирования других, необходимых для работы ЦПУ установок. После окончания этих установок начальный загрузчик копирует в ОЗУ программу Запуска и передает ей управление. Стандартный начальный загрузчик QNX может быть заменен любым другим. Среди таких замен могут быть полнофункциональные продукты типа U-Boot или RedBoot, которые через канал TFTP-клиента передают новый образ загрузки и записывают его во флеш-память. Обычно работа начального загрузчика продолжается не менее 6 мс до того, как начнется загрузка в память образа ОС. Фактическое время зависит от архитектуры ЦПУ, от того, что требуется материнской плате для определения минимальной конфигурации и что выбранный начальный загрузчик делает перед началом передачи управления ОС. После включения питания ЭВМ, на которой инсталлирована ОСРВ QNX, в зависимости от того, установлена QNX одна или совместно с другими ОС, сразу запускается процесс начальной нагрузки, либо мультизагрузчик сначала предлагает выбрать, какую ОС следует загружать. Если используется мультизагрузчик QNX, то сообщение выглядит примерно так:

Press F1-F4 to select drive or select partition 1, 2, 3, 4? 2

Нажмите Fl — F4 для выбора дисковода или выберите раздел 1, 2, 3, 4? 2

Запуск (Startup). На этапе запуска происходит копирование образа ОС из флеш-памяти в ОЗУ и запуск образа на выполнение. Эта фаза копирования составляет самую длительную часть процесса начальной загрузки ОСРВ QNX Neutrino. То есть, системному архитектору есть над чем поработать, чтобы обеспечить управление длительностью этой фазы, пусть даже косвенное. В ОСРВ QNX Neutrino файловая система на базе образа ОС (IFS, image file system) содержит как собственно образ ОС, так и программу Запуска (которые начальный загрузчик копирует в ОЗУ). Образ ОС состоит из ядра, сценария построения и любых других драйверов, приложений и бинарных кодов, которые необходимы системе. Поскольку вы можете управлять составом IFS, то и время выполнения данного этапа есть величина переменная. На рис. 55 она обозначена значением Х. Это время может составлять и 200 мс, и 2-3 с. В некоторых особых случаях, когда система имеет образ большого размера и не имеет никакой другой файловой системы, кроме IFS, этап Запуска может продолжаться дольше (до 10 и более секунд). В QNX обычно используются два загрузочных образа: основной образ помещается в файл /.boot, а резервный — в файл / .altboot. Вторичный загрузчик startup предлагает нажать клавишу "ESC" для загрузки резервного образа: Hit Esc for .altboot. Если ничего не нажимать, то загружаться будет основной образ. Для добавления, удаления или конфигурирования файлов, хранящихся в IFS можно отредактировать сценарий построения или использовать инструмент построителя встраиваемых конфигураций в интегрированной среде разработки QNX Momentics® IDE.

Ядро (Kernel). На этапе запуска ядра инициализируется блок управления памятью (MMU, memory management unit), создаются структуры для управления страницами, процессами и исключениями, а также разрешается работа системы прерываний. После завершения этого этапа ядро становится полностью работоспособным и может начать загрузку и запуск процессов пользователя из сценария построения.

Сценарий построения (build script). В сценарии определяется, какие драйверы и приложения должны быть запущены и в какой последовательности (/etc/system/ sysinit.). Поскольку ОСРВ QNX Neutrino является микроядерной ОС, то каждый драйвер, сервер или приложение запускаются в виде отдельного загружаемого процесса пользовательского уровня. Такой подход имеет явные преимущества: не нужно ждать загрузки и инициализации ядра и полного набора драйверов, прежде чем приложениям будет передано управление. При запущенном микроядре можно чередовать запуск драйверов и приложений, чтобы достичь максимально быстрого завершения этапа запуска системы.