質問: 私は最新の64ビットcpuを持っています。 biosはまだ16ビットリアルモードで動作しますか? まだ起動する必要があるので、x64/amd64 64ビットシステムでは、biosはまだ16ビット命令を使用しているのでしょうか。また、リアルモードで動作しますか?
回答: x86プロセッサはまだリアルモードで起動します。 biosは、ハードウェアの初期化中に保護モードまたはロングモードに自由に(場合によっては強制的に)切り替えることができますが、オペレーティングシステム(またはそのブートローダー)に制御を渡すときは、リアルモードに戻す必要があります。これらのローダーは、システムがにあることを期待しています。 coreboot および [〜#〜] uefi [〜#〜] かなり早い段階でプロテクトモードに切り替えますが、pcbios(フェニックス/アワード、amiなど)の場合は、教えてくれない。それらはクローズドソースであり、一般的にそれらの内部についてはあまり説明せず、それらのインターフェースはすべてリアルモードとして指定されています。ecc ramで実行されるシステムの場合、すべてのramをアドレス指定できるモードに切り替わることが比較的確実であるため、少なくともプロテクトモードに移行します。これは、メモリを初期化する(各アドレスに値を書き込む)必要があるためです。 )起動時、または後のコードが書き込まれたことのないアドレスを読み取ると、システムが停止します(誤検知を生成する可能性のあるエラー検出のため)。しかし、前述のように、これはbiosの内部であり、単なる人間が簡単に理解できることや、考える必要があることは何もありません。tl; dr:biosは、外部から見えるすべてのポイントでリアルモードになっているため、すべての目的と目的で、常にリアルモードで実行される可能性があります。