アセンブリでオペレーティング システムを開発しています。COM ファイルをロードする動作中の実行可能ローダーがありますが、それらをロードする必要があるかどうかわかりません。OS は 0x200000 で RAM にロードされます。現時点では、メモリ管理などはありません。プログラムをロードしてはいけない場所にロードするのではないかと心配しています(ビデオ ram のように、または既存のコードを上書きするなど)。BIOS は IDT とビデオ RAM 以外に 0x200000 より前のものを使用しますか?
質問する
184 次
1 に答える
2
0x100000を超えるほとんどすべてのもので安全である必要があります。カーネルをそのアドレスにロードすると、プログラムをほとんどの上位メモリに格納できます。
OSとプログラム用に0x100000を超える十分なスペースが必要です。その前のいくつかのセクションは使用可能ですが、本当に必要でない限り、その部分を避ける方が簡単な場合があります。
メモリマップ(x86)-OSDev Wikiは、期待できるいくつかのことについての優れたリファレンスです。
メモリの検出(x86)-OSDev Wikiは、使用可能なメモリを見つける方法を説明しています。
于 2012-09-02T00:36:38.117 に答える