Итак, я выяснил, что программы C (++) на самом деле не компилируются в обычный "двоичный" (возможно, я получил некоторые ошибки здесь, в этом случае мне жаль: D), но к целому ряду вещей (таблица символов, связанный с os материал,...), но...
-
Ассемблер "компилируется" в чистый двоичный файл? Это означает, что нет лишних материалов, кроме ресурсов, таких как предопределенные строки и т.д.
-
Если C компилируется на что-то другое, чем обычный двоичный файл, как этот маленький загрузчик может просто скопировать инструкции с жесткого диска в память и выполнить их? Я имею в виду, если ядро ОС, которое, вероятно, написано на языке С, компилируется в нечто отличное от простого двоичного файла - как его обрабатывает загрузчик?
edit: Я знаю, что ассемблер не "компилируется", потому что он только установил вашу машинную инструкцию - я не нашел хорошего слова для того, что собирает сборщик. Если он у вас есть, оставьте его здесь как комментарий, и я его изменю.