it-swarm-ja.com

私は最新の64ビットCPUを持っています。 BIOSはまだ16ビットリアルモードで動作しますか?

まだ起動する必要があるので、x64/AMD64 64ビットシステムでは、BIOSはまだ16ビット命令を使用しているのでしょうか。また、リアルモードで動作しますか?

11
unixman83

x86プロセッサはまだリアルモードで起動します。 BIOSは、ハードウェアの初期化中に保護モードまたはロングモードに自由に(場合によっては強制的に)切り替えることができますが、オペレーティングシステム(またはそのブートローダー)に制御を渡すときは、リアルモードに戻す必要があります。これらのローダーは、システムがにあることを期待しています。

coreboot および [〜#〜] uefi [〜#〜] かなり早い段階でプロテクトモードに切り替えますが、PCBIOS(フェニックス/アワード、AMIなど)の場合は、教えてくれない。それらはクローズドソースであり、一般的にそれらの内部についてはあまり説明せず、それらのインターフェースはすべてリアルモードとして指定されています。

ECC RAMで実行されるシステムの場合、すべてのRAMをアドレス指定できるモードに切り替わることが比較的確実であるため、少なくともプロテクトモードに移行します。これは、メモリを初期化する(各アドレスに値を書き込む)必要があるためです。 )起動時、または後のコードが書き込まれたことのないアドレスを読み取ると、システムが停止します(誤検知を生成する可能性のあるエラー検出のため)。しかし、前述のように、これはBIOSの内部であり、単なる人間が簡単に理解できることや、考える必要があることは何もありません。

tl; dr:BIOSは、外部から見えるすべてのポイントでリアルモードになっているため、すべての目的と目的で、常にリアルモードで実行される可能性があります。

6
Patrick Georgi