Как си и ассемблер работают без операционной системы?

Рейтинг: 1Ответов: 1Опубликовано: 24.02.2023

Здраствуйте, изучал создание загрузчика операционной системы и возник вопрос: а как код, написанный на masm, fasm, nasm, и т.д., а тем более код на си или c++ будут работать во время включения компьютера и передачи управления моему коду, написанному на этих языках?

Ответы

▲ 2Принят

Опишу, как это было во времена BIOS, что с UEFI, я не знаю.

Это код скомпилированный где-то в машинные коды, и записанный уже в виде машинных кодов в первый сектор первого диска (MasterBootRecord). BIOS при запуске машины считывал этот код в точно определенное место в памяти (0x7C00, что ли... не помню точно) и передавал ему управление. При этом процессор находится в real mode.

А дальше уже дело этого загрузчика затянуть в память коды из других мест на диске и выполнять их, в конечном итоге загружая операционную систему.

Очевидно, что ничего, кроме прерываний BIOS, такой загрузчик использовать не мог.