Поскольку все еще требуется загрузка, мне интересно, в 64-битной системе x64/AMD64 использует ли BIOS 16-битные инструкции? Также он работает в РЕАЛЬНОМ РЕЖИМЕ?
1 ответ
Процессоры x86 по-прежнему запускаются в реальном режиме. BIOS свободны (и иногда вынуждены) переключаться в защищенные или длинные режимы, пока они инициализируют свое оборудование, но когда они передают управление операционной системе (или, скорее, ее загрузчику), им приходится возвращаться в реальный режим, потому что это то, что эти загрузчики ожидают, что система будет в.
Coreboot и UEFI переключаются в защищенный режим довольно рано, в то время как для PCBIOS (phoenix/award, ami и так далее) мы не можем сказать. Они имеют закрытый исходный код и, как правило, мало рассказывают о своих внутренних компонентах, а все их интерфейсы указаны в реальном режиме.
Для систем, которые работают с ОЗУ ECC, вы можете быть относительно уверены, что они переключаются в какой-то режим, способный адресовать всю ОЗУ, поэтому они переходят по крайней мере в защищенный режим - это потому, что им нужно инициализировать память (записать какое-то значение в каждый адрес ) при загрузке или система остановится, если какой-то более поздний код читает адреса, на которые никогда не было написано (из-за обнаружения ошибок, которые могут привести к ложному срабатыванию). Но, как уже говорилось, это внутреннее в BIOS, и ничего, что простые смертные не могут легко понять или о чем им нужно подумать.
tl; dr: BIOS работает в реальном режиме во всех точках, где он виден снаружи, поэтому для всех целей и задач он может просто постоянно работать в реальном режиме.