ブートシーケンス



各種OSのx86システム上でのブートシーケンス

 各種OSの、x86システム(PC/AT 互換機)上での、ブートシーケンスで動作するプログラムの一覧。

 SPARCやPowerPCでも結局ハードディスクは同じなので、ブートプロセスは似ている。

 異なる点は、大体は以下のとおり。

  •  用語が違う。

  •  BIOS(PowerPCでもBIOS、SPARCではブートPROM)からブートローダ(カーネルのローダ)が呼ばれるまでのプロセスが幾分違う。
     ここがブートプロセスの要で、この資料はその違いをまとめたもの。
  •  ハードディスクの設定を行うユーティリティが違う。
  •  CPUが異なるので、当然バイナリが違う。

  パーティション(BSD系UNIX互換OS および Solaris では ディスクスライス と呼ぶ)はアーキテクチャが同じでもOSによって管理の仕方が異なり、Solarisのfdiskで作成したパーティションは他のOSでは使えないといっ た事があるので注意が必要。

 出来るだけ問題を起こさないためには、 常に OS 固有の fdisk系ユーティリティ を用いるのが良い。

 例えば DOS パーティションは MS-DOS や FreeDos の FDISK で作り、 Linux のパーティションは Linux の cfdisk か fdisk で作るのが良い。



ブートシーケンスで動作するプログラム:1.

ブートストラップローダ ~ OSカーネル
ハードディスク上でのプログラムの位置MS-DOSWindows 9x, MeWindows NT 系
NT, 2k, XP
Solaris
(System V 系)
FreeBSD
(BSD 系)
Linux
(LILOをMBRにインストールした場合)
ハードディスクの先頭セクタ
(=MBR)
ブートストラップ・ローダブートストラップ・ローダブートストラップ・ローダブートストラップ・ローダ(SPARC Solarisではディスクラベルブートストラップ・ローダブートストラップ・ローダ
ブートセクタ
=アクティブパーティションの第1セクタ
DOS IPLDOS IPLNT IPL (NT,2K,XP)

VistaIPL (Vista)
Solaris/x86のIPL起動ステージ 1
アクティブパーティションの、第2セクター以降で、ファイルシステム外の部分一次ブートプログラム起動ステージ 2
ファイル
システム
(ローダ、
ブートセレクタ→ カーネル・ローダ)
NT ローダ
NTLDR(NT,2K,XP)
└→NTDETECT.COM

Bootmgr.exe(Vista)
└→Winload.exe
二次ブートプログラム
・boot.bin





ローダ
・/boot/loader





2nd ブートローダ
・/boot/boot.b





ファイル
システム
(カーネル)
入出力制御ファイル
IO.SYS

または

IBMBIO.SYS
 ↓
OSカーネル

MSDOS.SYS、
または
IBMBIO.COM

CONFIG.SYS(設定ファイル)にしたがってドライバの組み込みなどを行う。
出力制御ファイル
IO.SYS




 ↓
OSカーネル

MSDOS.SYS、



CONFIG.SYS(設定ファイル)にしたがってドライバの組み込みなどを行う。
System プロセス
OSカーネル
ntoskrnl.exe

HAL
(ハード仮想化層)
hal.dll

各種ドライバ

*.sys、*.dll






OSカーネル
/vmunix

 ブートのたびに、動的に ドライバ をカーネルに 組み込む。










OSカーネル
/boot/kernel

・ドライバはカーネルに 組み込まれて いる場合が多い。










OSカーネル
/boot/vmlinuz

・ドライバはカーネルに 組み込まれて いる。












ブートシーケンスで動作するプログラム:2.

OSカーネル ~ シェル
ハードディスク上でのプログラムの位置MS-DOSWindows 9x, MeWindows NT 系
NT, 2k, XP
Solaris
(System V 系)
FreeBSD
(BSD 系)
Linux
(LILOをMBRにインストールした場合)
ファイル
システム
(カーネル)
入出力制御ファイル
IO.SYS

または

IBMBIO.SYS
 ↓
OSカーネル

MSDOS.SYS、
または
IBMBIO.COM

CONFIG.SYS(設定ファイル)にしたがってドライバの組み込みなどを行う。
出力制御ファイル
IO.SYS




 ↓
OSカーネル

MSDOS.SYS、



CONFIG.SYS(設定ファイル)にしたがってドライバの組み込みなどを行う。
System プロセス
OSカーネル
ntoskrnl.exe

HAL
(ハード仮想化層)
hal.dll

各種ドライバ

*.sys、*.dll






OSカーネル
/vmunix

 ブートのたびに、動的に ドライバ をカーネルに 組み込む。










OSカーネル
/boot/kernel

・ドライバはカーネルに 組み込まれて いる場合が多い。










OSカーネル
/boot/vmlinuz

・ドライバはカーネルに 組み込まれて いる。










ファイル
システム
(最初のプロセス)
コマンドラインシェル
COMMAND.COM
※DOSはここでシェルが起動する。

コマンドラインシェル
COMMAND.COM
※DOSはここでシェルが起動する。
セッションマネージャ
smss.exe



起動スクリプト
init



起動スクリプト
init



起動スクリプト
init



ファイル
システム
(最初のプロセスから直接起動されるプロセス)
シェルが最初に実行するバッチファイル
Autoexec.bat

シェルが最初に実行するバッチファイル
Autoexec.bat

Windowsサブシステム・プロセス
csrss.exe

Windowsログオン・プロセス
winlogon.exe

rcスクリプト
 init は、他のすべてのプロセスを起動するが、直接ではない。
 init は、rcスクリプトを実行し、rcスクリプトが他のプロセスを起動する。

rcスクリプト
 init は、他のすべてのプロセスを起動するが、直接ではない。
 init は、rcスクリプトを実行し、rcスクリプトが他のプロセスを起動する。


rcスクリプト
 init は、他のすべてのプロセスを起動するが、直接ではない。
 init は、rcスクリプトを実行し、rcスクリプトが他のプロセスを起動する。


ファイル
システム
(ログイン・インタフェース)


ログイン・インタフェース
・グラフィカル・ログイン画面表示プロセス

msgina.dll(Win2k),
logonui.exe ( XP以降。違うファイル名の場合もある。)

ログイン・インタフェース
・ログイン・プロンプト表示プロセス

getty ← ttys

または
・グラフィカル・ログイン画面表示プロセス
 Display Manager

dtlogin(
Solaris付属
xdm、wdm、gdm、kem

ログイン・インタフェース
・ログイン・プロンプト表示プロセス

getty ← ttys

 

 
または
・グラフィカル・ログイン画面表示プロセス
 Display Manager

xdm、wdm、gdm、kem

ログイン・インタフェース
・ログイン・プロンプト表示プロセス

getty ← ttys

 

 
または
・グラフィカル・ログイン画面表示プロセス
 Display Manager

xdm、wdm、gdm、kem

ファイル
システム

(シェル)
コマンドラインシェル
COMMAND.COM

コマンドラインシェル
COMMAND.COM


グラフィカルシェル

WIN.COM(Windowsを起動するプログラム
 ↓
explorer.exe
コマンドラインシェル
CMD.EXE


グラフィカルシェル

explorer.exe




コマンドラインシェル
sh、ksh、csh、tcsh
 

グラフィカルシェル

X Window System、GNOME、KDE など
 

コマンドラインシェル
sh、ksh、csh、tcsh
 

グラフィカルシェル

X Window System、GNOME、KDE など
 

コマンドラインシェル
sh、ksh、csh、tcsh
 

グラフィカルシェル

X Window System、GNOME、KDE など
 




Windowsブートシーケンス流れ図

Windows 起動シーケンス
Windows 起動シーケンス.
http://www.gliffy.com/pubdoc/1336359/M.jpg


Windows プロセスツリー
Windows プロセスツリー.
http://www.gliffy.com/pubdoc/1347046/M.jpg



UNIX系OSブートシーケンス流れ図

http://www.gliffy.com/pubdoc/1330796/M.jpgUNIX系OS プロセスツリー
UNIX系OS プロセスツリー
調査中.


UNIX系OS 起動シーケンス

UNIX系OS ブートシーケンス



ブート時のトラブル対策







     RSS of this page

     
     

    他のサイト: