сборка - Как перейти с загрузчика на ядро?

Итак, в настоящее время я разрабатываю свою игрушечную ОС и хочу знать, как я могу загрузить ядро ​​​​в ОЗУ из моего загрузчика?

Я уже искал в Интернете, но после поиска на шестой странице результатов Google я хочу спросить здесь, прежде чем проводить дополнительные исследования.

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


person Daniel O    schedule 14.12.2017    source источник
comment
На какой платформе вы пытаетесь запустить? Если x86 гораздо проще написать загрузчик на ассемблере. Если вы хотите сделать это на C, я рекомендую Open Watcom (а не GCC). Вы можете использовать BIOS для чтения секторов с диска, чтобы получить ядро, включить A20, войти в защищенный режим, а затем запустить ядро. Вы можете избавить себя от хлопот и использовать загрузчик, совместимый с мультизагрузкой, такой как grub, чтобы сделать это за вас. Если у вас есть (U)EFI BIOS, вы также можете использовать его. Хорошим ресурсом для всего этого является OSDev Wiki.   -  person Michael Petch    schedule 14.12.2017
comment
Если вы разрабатываете что-то новое для текущей (не устаревшей) платформы, я рекомендую вам использовать UEFI, а не устаревший BIOS для запуска загрузчика. UEFI предоставляет более удобный интерфейс программирования, который довольно хорошо документирован и стандартизирован, по сравнению с хаосом, который представляет собой интерфейс программирования для устаревшего BIOS. Кроме того, при использовании UEFI ваш загрузчик запускается в 32- или 64-разрядном режиме, а не в 16-разрядном.   -  person prl    schedule 14.12.2017
comment
@MichaelPetch Спасибо за небольшое введение. Я хочу запустить его на системе x86.   -  person Daniel O    schedule 14.12.2017
comment
Вы должны были остановиться на первой странице Google, которая почти наверняка направила вас на osdev.org. Иди вики читай.   -  person David Hoelzer    schedule 15.12.2017
comment
закрыт как дубликат рабочего примера загрузчика, который вызывает функцию main() в 32-битном защищенном режиме + рекомендации для устаревшего int 10h BIOS. @prl, знаете ли вы, есть ли аналогичные вопросы и ответы для UEFI с рабочим примером? (Если это так, у нас также должна быть ссылка на это в вики тега x86.)   -  person Peter Cordes    schedule 15.12.2017