Компилирование C и сборка в чистый машинный код? - PullRequest
2 голосов
/ 16 июля 2011

Я действительно застрял прямо сейчас ...

Загрузочные файлы, такие как двоичный файл vmlinuz, MBR и образ BOOTMGR, все написаны в чистом двоичном / машинном коде.Но они были скомпилированы из C и ассемблера - то есть исходный код ядра Linux состоит не только из 1 и 0, а из исходного кода C.Как мне взять мои программы на ассемблере и C и скомпилировать их в машинный код для общего диапазона микропроцессоров x86 (в моем случае x86-32), чтобы я мог загружаться из этих файлов.

1 Ответ

7 голосов
/ 16 июля 2011

Существует большой ресурс для такого рода вещей: OSDev .

Посмотрите, в частности, на страницу Голые кости : она проведет вас через процесссоздание, сборка и запуск минималистического «ядра», написанного на ассемблере и C.

Также посмотрите на страницы Baby steps о том, как создать загрузочный сектор.

...