Как правильно загружать своё ядро? При попытке начать кодировать на голом железе (x86_64) встал вопрос о загрузчике. Напрашиваются следующие варианты: 1. Самописный BIOS-загрузчик Плюс: Всё просто и понятно. Минусы: Гемморой ручной загрузки ядра, переключения real mode -> long mode. Устаревшая технология 2. Использование multiboot specification + GRUB2 Плюс: Вся работа загрузки снимается с плеч. Минусы: Не могу оценить трудозатраты на поддержку этой спецификации. Один и тот же образ ядра может загружаться как через BIOS, так и через (U)EFI? 3. Оформить образ ядра как UEFI-application, так чтобы он напрямую загружался железом. Плюс: Не нужен специальный загрузчик. Минусы: Нельзя отделить сборку ядра от сборки UEFI-образа, что повлечёт проблемы переносимостью сборки (сложные Makefiles, требование наличия правильных компиляторов и инструментов). 4. Реализовать самописный UEFI-загрузчик для своего ядра Плюс: нет геммороя сборки загрузчика, может распространяться в бинарном виде Минусы: необходимость глубоко разбираться с UEFI API, что не сильно мне улыбается. Какой из методов кажется вам более правильным, менее трудоёмким и более перспективным? И почему? Спасибо.