
私は本から学びましたコンピュータサイエンス: 概要
ブートローダーはメモリ上に常駐している
汎用コンピュータでは、ブートローダと呼ばれるプログラムがマシンのROMに永久に保存されています。これは、マシンの電源を入れたときに最初に実行されるプログラムです。ブートローダ内の命令は、
しかし、他の本では、ブートローダーはハードディスク上にあると記載されています。
BIOSについて
ブート プロセスは BIOS から始まります。第 3 章で説明したように、BIOS に、ハード ディスク、USB スティック、CD/DVD ドライブなど、使用するブート デバイスを指定します。ハード ディスクをプライマリ ブート デバイスとして選択した場合 (または、優先度の高いデバイスがブート可能でない場合)、BIOS は、ハード ディスクの最初のセクターであるマスター ブート レコード (MBR) からコードをロードします。
UEFI用
EFI が動作するには、ハードディスクの ESP にインストールされているブートローダーを認識する必要があります。
私の質問を別の言い方で言うと
me@host:~$ df -h | grep 'boot'
/dev/sda1 511M 7.3M 504M 2% /boot/efi
/boot/efi
メモリ内の ROM として配置されますか?
答え1
いいえ、これは/boot/efi
システム ディスク上のファイル システムであり、通常は FAT32 ファイル システムです。
ここでの用語は統一されていません。最初の本では、起動するディスクの選択とディスクからの最初のデータのロードを処理する BIOS の部分がブートローダー、または少なくとも主要なブートローダーであるという見解が取られています。
BIOS ファームウェアでは、ファームウェアに組み込まれているプライマリ ブートローダの機能は非常に限られており、基本的にはディスクの先頭から 1 つのブロックを読み取って実行するだけです。
UEFI ファームウェアでは、プライマリ ブートローダの機能がはるかに充実しています。FAT32 ファイルシステムを理解し (オプションで他のファイルシステム タイプも理解できます)、指定されたファイルシステムから指定されたファイルをロードしたり、サポートされている任意のファイルシステムの標準フォールバック ファイルからロードしたりできます。64 ビット x86 システムの場合、標準フォールバック ファイルのパス名は です\EFI\BOOT\BOOTx64.efi
。
あなたの他の本では、ブートプロセスのBIOSコンポーネントについては触れず、ブートプロセスの2番目の部分であるディスク上のブートローダに焦点を当てています。これは、ブートするオペレーティングシステムに固有のものである可能性があります(ただし、必ずしもそうである必要はありません)。これは、二次的なブートローダとファームウェア内のプライマリ ブートローダの両方について話す必要がある場合は、ブートローダと呼びます。ただし、システム ファームウェアの内部について話していない場合は、ディスク上のセカンダリ ブートローダも単に「ブートローダ」と呼ぶのが一般的です。
別の用語として、HP-UX が PA-RISC ハードウェア上でこれをどのように実行したかを説明します。
- ファームウェアは PDC として知られていました。
- PDC ファームウェアには、
IPL
または初期プログラム ローダーと呼ばれる ROM 内ブートローダー ルーチンが含まれていました。名前が示すように、その役割は単一のプログラムをロードして実行するだけです。 - IPL ルーチンによってディスクからロードされる最初のプログラムは、 または初期システム ローダーと呼ばれます。その役割は、実際のオペレーティング システム カーネルをロードすることです。実際には、最初に、実際の HP-UX カーネルのロードを処理する
ISL
別のモジュールをロードします。HPUX
ファームウェアの更新は難しいため、ブートローダを複数のコンポーネントに分割すると、開発の革新によって必要になった場合にオペレーティング システム カーネルの構造を変更するのが容易になります。ファームウェア API 要件に絶対に準拠する必要があるのは、比較的小さい (セカンダリ) ブートローダ (ISL) のみです。後続のコンポーネントは、必要に応じて完全に異なる動作をするように再プログラムできます。