質問: biosが32/64ビットではなく16ビットで動作するのはなぜですか? 私の先生は、bios(またはレガシーモード)常に pcを16ビットで起動すると言っています。つまり、23.9ghzのintel core i291832を使用できますが、レガシーモードを使用している場合、pcは16ビットモードで動作します。本当?もしそうなら、なぜそれが起こるのですか?追伸:あなたは非常に技術的である可能性があります、私はコンピュータサイエンスがおそらくあなたの言うことを理解するだろうと思っています。 p.s2:uefiとレガシーモードの違いを知っています。
回答: 下位互換性。最新のx86プロセッサは、ソフトウェアエミュレーションに頼ることなく、ms dosなどのオリジナル用に作成されたソフトウェアを実行できます 8088 。いくつかのものが実行されない可能性があることに注意してくださいwell、たとえば多くのゲームはタイミングをクロック速度に依存していたため、5mhzで10秒で発生していました現在、2.5ghzで0.02秒に近い何かが発生します。時間内に反応する幸運。リアルモード(16ビット)は、プロテクトモード(32ビット)およびロングモード(64ビット)とは動作が異なります。リアルモード用に作成されたプログラムは、保護モードまたはロングモードでは実行できず、異なる命令を使用します。下位互換性はx86の最も重要な品質の1つであるため、すべてのx86プロセッサは引き続きリアルモードで起動します。 (そうでなければ、おそらく今ではそれほど狂気のないアーキテクチャに移行していたでしょう。intelでさえ itanium に切り替えたかったことを忘れないでください。)biosとuefiはマザーボードの一部であり、cpuではありません。したがって、biosは、元のibm pcとの下位互換性を維持し、それ自体が非常に単純であるため、cpuがブートローダーに制御を渡すときに、cpuをリアルモードのままにします。 uefiは、このような下位互換性のために設計されていないため、制御を渡す前にプロテクトモードに自由に切り替えることができます。ただし、同じx86 cpuをuefiコンピューターから取り出して、互換性のあるマザーボードを搭載したbiosコンピューターに配置しても、引き続き機能します。ブートローダーをロードする前に32ビット保護モードにジャンプしていたものは、16ビットモードのままになります。ブートローダーの前。