IBM PC互換機のブート手順
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/04 22:50 UTC 版)
「ブート」の記事における「IBM PC互換機のブート手順」の解説
電源投入直後、ないしリセットにより、x86は、まずBIOSの存在する 0xFFFF0 番地のメモリにある命令を実行する(ここはx86を使用するどんなコンピュータでも同じである)。このメモリ位置は(リアルモードでの)システムメモリのほぼ最後尾にあたる。そこにはBIOSの初期プログラムの位置へのジャンプ命令が含まれていて、BIOSに制御が渡る。BIOS初期プログラムは Power On Self Test (POST) を実行して必要な機器が正常に動作するかをチェックする。また、同時にそれら周辺機器の初期化も行う。次にBIOSは事前に設定されたデバイスリストを順にあたって、ブート可能な周辺機器を探す。ブート可能デバイスとは、読み込みが可能で、第1セクタの最後尾に 0xAA55 というワード(ブートシグニチャ)があるデバイスである。 そのようなデバイスが見つからない場合、エラーが発生してブート処理は停止する。BIOSがブート可能デバイスを発見すると、そのブートセクタを 0x7C00 というアドレス(Segment:Offset形式では 0000:7C00 だが、一部のBIOSでは 07C0:0000 を使用)にロードして実行する。ハードディスクドライブの場合、ブートセクタはマスターブートレコード (MBR) と呼ばれ、その内容はオペレーティングシステムには依存しない。MBRのコードはパーティションテーブルを調べてアクティブなパーティションを探す。それが見つかったら、MBRのコードはパーティションのブートセクタをロードして実行する。ブートセクタはオペレーティングシステムに依存することが多いが、その機能はカーネルをロードして実行することである。カーネルはさらに初期化処理を続行する。アクティブなパーティションがなかったり、アクティブなパーティションのブートセクタが不正だった場合、MBRは第二ブートローダをロードして制御を渡す。第二ブートローダは(多くの場合ユーザーに入力してもらって)パーティションを選択して、そのブートセクタをロードする。パーティションのブートセクタは一般にオペレーティングシステムのカーネルをロードする。 一部システム(特に最近のMacintoshや Microsoft Windows)はインテルのEFIを採用している。EFI準拠のファームウェアを持つ比較的新しいシステムでは、MBR か GPT のあるドライブからブートでき、標準のMBRブートローダを使わない。また、corebootもシステムマネジメントモードを使った過剰に複雑なファームウェア/BIOSを使わずにブート可能である。古い16ビットBIOSインタフェースは一部のx86用OS(Windows 3.1/95/98など)で必要とされていただけだが、そういった古いBIOSシステムをサポートするためブートローダーは16ビットサポートを続けていることが多い。 BIOSとは異なり、UEFI(CSM経由のレガシー ブートではない)はブートセクタに依存せず、UEFIはブートローダー(USBフラッシュドライブまたはEFIシステムパーティション内のEFIファイル)を直接読み込み、OSカーネルはブートローダーによってロードされます。 多くのPCはBIOSチップを搭載していれば、BIOSチップメーカー名、著作権、そのチップのIDなどを起動時に表示する。同時に利用可能なメモリ容量など、そのコンピュータに関する情報も表示する。
※この「IBM PC互換機のブート手順」の解説は、「ブート」の解説の一部です。
「IBM PC互換機のブート手順」を含む「ブート」の記事については、「ブート」の概要を参照ください。
- IBM PC互換機のブート手順のページへのリンク