BIOSはブートローダを直接読みますか、それともRAMにロードしますか?

BIOSはブートローダを直接読みますか、それともRAMにロードしますか?

私は開始プロセスの最初のステップを理解しようとしています。

  1. CPU が BIOS を読み込みます。

    • 固定アドレス命令を読み出します。
    • 最初のBIOS命令アドレスにジャンプします。
    • コードを実行します
    • 「起動選択テスト」を実行し、デバイスを確認し、最初の起動可能なデバイスを探します。
  2. その後、バイオスは読むMBRへジムメインブートローダー

  3. メインブートローダーはローダーの2番目のステップを実行します(例:Grub)。
  4. ローダーの2番目のステップはカーネルをメモリにロードします。

私の質問は次のとおりです

  • BIOSを使用する場合読むそしてジムメモリのマスターブートローダ、RAMメモリについて話していますか?
  • 中央処理装置を使用できますか?直接住所コンテンツをRAMにロードせずにHDDで(ガイドラインを読む)(ここではパフォーマンスの問題を無視しましょう)?
  • BIOSに関する同じ質問:実行前に直接読みますか、それともRAMにロードされますか?

答え1

ありがとう@slm、ほとんどの答えを見つけました。

BIOSがメモリのメインブートローダを読み込んでロードするときにRAMメモリについて話していますか?

うん私たちははい。 BIOSはブートローダコードを特定のアドレス(0x7c00)にロードし、そのアドレスにジャンプしてコマンドを実行します。

内容をRAMにロードせずにHDDから直接CPUアドレス(コマンド読み出し)を実行できますか(ここではパフォーマンスの問題は無視します)。

CPUがメモリアドレス空間にない命令を実行できないようですが、間違っていれば訂正してください(I/Oアドレス空間で命令を実行できますか?)。

BIOSに関する同じ質問:実行前に直接読みますか、それともRAMにロードされますか?

BIOSは直接読み取られます。メモリアドレス空間の特定のアドレス領域は、ROMメモリに直接リダイレクトされる。

源泉:http://duartes.org/gustavo/blog/post/how-computers-boot-up/

引用する

答え2

CPUがBIOSを読み取ります[...]

これはやや単純化されたビューですが、基本的なアイデアは正確です。一般的な初期化コードは、実際には複数の連続した部分で構成されています。

その後、BiosはMBRを読み取り、デフォルトのブートローダをロードします。

これは伝統的なBIOSです。最新のPC BIOSには、標準化されたブートローダインタフェースがあります。UEFI。 PC以外のプラットフォームでは、製造元から提供されたブートローダを「BIOS」と呼びません。

BIOSがメモリのメインブートローダを読み込んでロードするときにRAMメモリについて話していますか?

はい。他のメモリには書き込めません(通常動作時)。

内容をRAMにロードせずにHDDから直接CPUアドレス(コマンド読み出し)を実行できますか(ここではパフォーマンスの問題は無視します)。

いいえ。私が知る限り、CPUがアドレス指定できる磁気記憶装置を備えたアーキテクチャはありません。ハードドライブにアクセスするには、オペレーティングシステムに常にいくつかのコードが必要です。

BIOSに関する同じ質問:実行前に直接読みますか、それともRAMにロードされますか?

これはハードウェアによって異なります。 ROMまたはフラッシュメモリの一部のコードは、ROMから直接実行できます。通常、ROM(またはPCハードウェアのEEPROM)で実行されているいくつかの初期ブートローダコードとは別にRAMが高速であるため、コードは最初にRAMにコピーされます。

関連情報