2014-12-18 4 views
0

From book: После включения питания CPU загрузите BIOS, постройте таблицу векторов прерываний и запустите процедуры обслуживания прерываний в режиме реального адреса. К BIOS, CPU получает INT 0x19. ISRINT 0x19 загружает первый сектор (512B) в память. Этот сектор является загрузочной частью Linux, которая загружает другие части ОС в память.Загрузка ядра ОС Linux из BIOS

Первый сектор: bootsect.s, который написан на сборке. Это первый системный код, который загружается в память. Я сомневаюсь, что инструкции по сборке загружены или скомпилированы машинные инструкции загружены в память. Есть ли у BIOS собственный assembler для преобразования сборки в машинные инструкции?

ответ

1

Конечно, загруженный сектор содержит скомпилированные инструкции машинного языка - не источник сборки (.asm).

+0

Тогда я не смог бы загрузить двоичный файл, скомпилированный для 'x86' на' arm'. Поддерживает ли BIOS какую-либо независимую загрузку платформы? –

+1

Нет. Почему вы ожидаете чего-то «независимого от платформы» в BIOS? Это самый базовый уровень, полностью зависящий от аппаратного обеспечения и т. Д. – i486

+0

Manav: INT - это инструкция x86, и поэтому большая часть BIOS. Концепция BIOS - это PC/x86 (16-разрядная с 32-разрядными и 64-разрядными итерациями). –

0

NO. Это двоичные коды команд, которые загружаются в память и затем выполняются напрямую.

+0

Ли Linux, Windows, Mac и другие операционные системы также предоставляют двоичные инструкции напрямую? Я думаю, что с момента его загрузки он должен быть независимым от платформы и преобразовываться в бинарный формат процессора на лету. –

Смежные вопросы