Начало работы по созданию простой загрузочной программы C

Может ли кто-нибудь направить меня на какой путь/шаги предпринять, чтобы создать простую загрузочную программу hello world? У меня есть базовые знания C/С++.

Моя цель - создать очень простую ОС.

Я хотел бы как можно больше ссылок на ссылки и образцы.

Ответы

Ответ 1

См. this. Это учебник для очень простого загрузчика. Это не имеет особого отношения к C/С++, но в нем есть действительно хорошая информация об основных строительных блоках загрузчика.

Если вам действительно интересно узнать о строительных блоках, есть более глубокие ресурсы в виде учебников. В этом руководстве, например, не объясняется, почему загрузчик должен заканчиваться на 55 AA. Кроме того, он относительно узкий.

Ответ 2

Вы хотите построить статически связанный двоичный файл (без участия ld.so), и вы начинаете его, перепрыгивая на его точку входа. Точкой входа обычно является начало раздела .text. Maye запустите objdump --section-headers image, чтобы узнать его адрес.

Если вы пытаетесь запустить на встроенном устройстве, проверьте, как встроено и загружено ядро ​​встроенной ОС. Например, см., Как U-Boot отображает систему на основе Linux на основе Angström.