2012-04-27 4 views
3

ビオスプログラムはリアルモードでしか見ることができないと言われています.BIOSはROMに保存されていることも知られていますが、CPUがマップしているのは通常RAMです。リアルモード、のメモリがROMにマッピングされているので、私たちはBIOSプログラムを見ることができます。ビオスとリアルモード

答えて

4

物理アドレス空間は単なるRAM以上のものです。 ROMには、APICやビデオメモリなどのメモリマップデバイスが含まれています。リアルモード以外でBIOSを使用できない主な理由は、リアルモードで使用するように書かれていることです。一部の機能は16ビットプロテクトモードで動作し、Virtual 8086モードではさらに機能しますが、間違った機能を呼び出すとシステムがクラッシュする可能性があります。また、割り込みは、保護されたモードでは実モードとは異なる働きをするので、関数を再マップする必要があります。

リアルモード以外でBIOSを使用できない別の理由は、ページングです。ページングは​​、仮想アドレスを物理アドレスにマッピングするプロセスです。オペレーティングシステムがページングを使用する場合、ROMを含むページを仮想メモリにまったくマッピングしないように選択できるため、実際にはそこには存在しないため、呼び出すことは不可能です。 ROMには物理アドレス空間の一部が残っていますが、仮想メモリでは使用できません。

+0

「リアルモードで使用するように書かれていた」とはどういう意味ですか? –

+0

@ venus.wリアルモードは、いくつかの点でプロテクトモードと大きく異なる動作をします。最も大きな違いは、メモリへのアクセス方法と、デフォルトのアドレスとオペランドのサイズです。 BIOSはリアルモードで動作するように書かれているため、リアルモードのバージョンを使用しています。別のモードで同じバイナリデータを実行しようとすると、非常に奇妙な効果が生じる可能性があります。それが起こると、例外が可能な最良の結果になります。 – ughoavgfhw

+0

bios rom、gdt、idtは、通常、1Mの下に格納またはマップされていますか? –

関連する問題