私は開始プロセスの最初のステップを理解しようとしています。
CPU が BIOS を読み込みます。
- 固定アドレス命令を読み出します。
- 最初のBIOS命令アドレスにジャンプします。
- コードを実行します
- 「起動選択テスト」を実行し、デバイスを確認し、最初の起動可能なデバイスを探します。
その後、バイオスは読むMBRへジムメインブートローダー
- メインブートローダーはローダーの2番目のステップを実行します(例:Grub)。
- ローダーの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にコピーされます。