サーバー運用とPC日記
PC起動のしくみ(まだ細部まで理解できていない・・・)
電源投入
↓
BIOSによるデバイス初期化
↓
ブートデバイスの決定
↓
ブートストラップローダのロード
↓
ブートローダの実行
↓
OSの起動
PCの電源を投入すると、マザーボードのROM中のBIOSが起動。
このBIOSの初期化プログラムが、PCに接続されている各種デバイスの初期化を行う。
この過程が POST(Power On Self Test)。(起動直後に画面表示されている)
各種デバイスの初期化が終了すると、BIOSは次の段階に入り、起動するためのドライブを探す。
起動ドライブとなるのは、HDD、 CD-ROM、USBフラッシュメモリなど。
BIOSは起動ドライブを見つけるとそのデバイスをファーストブートドライブとして起動を試みる。
HDDの起動を例にすると、
BIOSはそのブートドライブの先頭セクタのロードという段階に移る。
HDDの先頭セクタは MBR(Master Boot Record)といい、MBRは1台のHDDに1つだけ。
BIOSはこのMBRをメモリ上にロードし、MBR領域にあるプログラムに制御を移す。
このMBR領域にあるプログラムを、ブートストラップローダと呼ぶ。
ブートストラップローダは、パーティションテーブルから起動フラグのあるパーティションを探す。
パーティションテーブルとは、複数のパーティションに関する情報が保存されているMBR内の1つの領域。
この起動フラグのあるパーティションにブートストラップローダから制御が移行。
このとき、ブートストラップローダから呼び出されるのが各基本パーティションにあるブートセクタ。
ブートセクタは各基本パーティションの先頭セクタのことを指し、PBR(Partition Boot Record)と呼ばれる。
PBRに制御が移行すると、そのPBRのプログラムが動作することになる。
このPBRにあるプログラムコードが IPL(Initial Program Loader)で、OSを起動させるためのブートローダの残りの機能を呼び出す機能を持つ。
MBRやPBRは512バイトと非常に小さな領域しかなく、その中のIPLのデータサイズはさらに小さい。
この小さなデータサイズにOSを起動させるためのブートローダのプログラムを全て格納できない。
そのため、IPLはブートローダの一部のプログラムコードを持ち、ブートローダの残りに機能はPBRの後続セクタに置いている。
IPLから呼び出されたブートローダが後続のOSのファイルを読み込んでいき、最終的にOSが起動する。
このウェブサイトは、
NetCommons3.3.7で動いています。
NetCommons プロジェクト 開発の、
CMS+グループウェアです!
日 | 月 | 火 | 水 | 木 | 金 | 土 |
27 1 | 28 1 | 29   | 30   | 31   | 1   | 2   |
3   | 4   | 5   | 6   | 7   | 8   | 9   |
10   | 11   | 12   | 13   | 14   | 15   | 16   |
17   | 18   | 19   | 20   | 21   | 22   | 23   |
24   | 25   | 26   | 27   | 28   | 29   | 30   |