Начало работы по созданию простой загрузочной программы на C - PullRequest
15 голосов
/ 03 февраля 2010

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

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

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

Ответы [ 2 ]

7 голосов
/ 03 февраля 2010

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

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

0 голосов
/ 03 февраля 2010

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

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

...