0

LinuxOSの起動プロセスを学び始めました。プロセッサによって実行される最初のプログラムはですBIOSinstruction pointerの内容はどうなるのか、マイクロプロセッサによって実行される最初の命令は何なのか知りたいのですが。

さらに、これらのBIOS命令は実際に実行するために持ち込まれていますmain memoryか?はいの場合、これらの命令はどこにロードされますか、つまりstarting address。いいえの場合、それらをメモリに入れない理由は何ですか?

これらに加えて、interrupt vector table実際にはどこにありますか?RAMまたはROM??

4

2 に答える 2

2

注:これはすべてx86用です。これは、他のプラットフォームでは異なる場合があります。

命令ポインタが最初に何を指すかは、まあ、依存します。通常、プロセッサはリセット時にこれを0に設定しますが、プロセッサによって定義され、最終的には誰が作成したかによって定義されます。x86の場合、0xFFFFFFF0(ソース)にジャンプします。これには、BIOSコードの便利なセクションへのジャンプが含まれます。

次に、BIOSがシステムのセットアップを開始する必要があります。これを行うには、メモリが適切に初期化されていないため、ROMチップから直接実行されます。これはプラットフォームに固有ですが、通常x86では、BIOSはCPUをRAMとしてのキャッシュモードにし、メモリのセットアップ中に一時的なストレージを許可します。

次に、システムの残りの部分をセットアップします。これには、メモリの下部にあるIVT(0x0)やその他の便利なもの(ソース1ソース2)が含まれます。

于 2012-10-09T15:42:39.480 に答える
0

BIOSはオペレーティングシステムとは何の関係もありません。それはプロセッサアーキテクチャに依存し、答えを見つけるために特定のプロセッサ開発者ガイドを研究する必要があります。

x86ベースのマシンの場合、命令ポインタは、最初のBIOS命令の開始アドレスを含むROM内の最後のメモリ位置を指します。ジャンプアドレスプロセッサを使用すると、BIOSルーチンが実行され、起動デバイスに制御が渡されます。

于 2012-10-09T15:32:56.530 に答える