Начало работы по созданию простой загрузочной программы C
Может ли кто-нибудь направить меня на какой путь/шаги предпринять, чтобы создать простую загрузочную программу hello world? У меня есть базовые знания C/С++.
Моя цель - создать очень простую ОС.
Я хотел бы как можно больше ссылок на ссылки и образцы.
Ответы
Ответ 1
См. this. Это учебник для очень простого загрузчика. Это не имеет особого отношения к C/С++, но в нем есть действительно хорошая информация об основных строительных блоках загрузчика.
Если вам действительно интересно узнать о строительных блоках, есть более глубокие ресурсы в виде учебников. В этом руководстве, например, не объясняется, почему загрузчик должен заканчиваться на 55 AA
. Кроме того, он относительно узкий.
Ответ 2
Вы хотите построить статически связанный двоичный файл (без участия ld.so), и вы начинаете его, перепрыгивая на его точку входа. Точкой входа обычно является начало раздела .text. Maye запустите objdump --section-headers image, чтобы узнать его адрес.
Если вы пытаетесь запустить на встроенном устройстве, проверьте, как встроено и загружено ядро встроенной ОС. Например, см., Как U-Boot отображает систему на основе Linux на основе Angström.