====== Системный загрузчик ======
===== Вариант-0 (ВМ)=====
Системный загрузчик загружает ядро ОС внутри специфичной виртуальной машины. Эта ВМ специально создана под работу ОС, отсутствуют все рудименты существующих фрагментарных архитектур, что позволяет с минимальными накладными расходами запускать ядро ОС в работу. ВМ является референсной для ОС и для других архитектур.
===== Вариант-1 =====
Системный загрузчик запускается как вторичный процесс GRUB. Это позволит интегрировать ОС с другими ОС на одной машине. На первом этапе первичный загрузчик может располагаться непосредственно в нулевом секторе диска.
===== Вариант-2 =====
Ядро ОС грузится при помощи Limine и по протоколу Limine. Таким образом ядро пропускает все стадии переходов 16->32->64 и сразу стартует в x86_64 по адресу 0xFFFFFFFF80000000. Протокол Limine на x86_64 настраивает SMP и GDT. В случае если на диске уже есть одна и более ОС, можно добавить путь до Limine в меню загрузки GRUB.
===== Схема загрузки =====
Обобщённая схема загрузки отображена ниже:
//Первичный загрузчик// → //вторичный загрузчик// → //модули ядра// → //ядро ОС//
Схема необязательно должна быть такой, но с высокой вероятностью она будет выполнена именно так.
===== Вариант-3 =====
Загрузчик-монитор инициализирует и тестирует подсистемы процессора с приёмом/передачей управляющей и диагностической информации через УАПП в терминальном режиме. Затем передаёт управление ядру ОС в соответствии с настройками при инициализации. Ядро ОС загружает и настраивает модули ОС, драйвера устройств, обработчики системных вызововов и прерываний по последней сохранённой конфигурации. Затем ядро ОС восстанавливает сохранённый порядок очереди запуска приложений и передаёт управление первому в очереди. Дальнейшей работой управляет планировщик процессов. Запуск альтернативных ОС и виртуальный машин производится аналогично обычным приложениям.
===== Вариант-4 =====
Системный загрузчик «принадлежит» аппаратному обеспечению и запускается строго в закрытом контуре на выделенном ядра одного из процессоров.
— //[[robo.help@yandex.ru|p78su]] 2023-10-25 10:28:52//