特別号2:Windows起動の仕組み
あなたはWindowsの起動の仕組みをご存知ですか?
Windowsは、完全に独立したOSではありません。いくつかのプロセスがあり、実行していきます。
ここでは、Windowsの起動の仕組みを、少し詳しく見てみましょう。
注意:ここで紹介される機種は、PC-9821シリーズ、Windows 95,98を前提にしています。
また、インスタントアプリケーションの起動の仕組みは紹介しません。
目次
電源を入れてからの起動プロセスです。
- 電源を入れます。入れなきゃ始まらない(^^;
- BIOSがプログラムの初期化を始めます。
- ハードウェアの自己診断を行います。
- キーチェックを行います。HELPキーが押されていたら、システムセットアップメニューを表示します。他にも、いろいろあります。
- メモリチェックを行います。
1MB以内メモリ(コンベンショナルメモリ)、拡張メモリの順です。- 起動できるディスクの状態(正確には、マスターブートレコード<MBR>)をチェックします。
フロッピーディスク、内蔵IDE、外付けHDDの順です。
順番は、drvasn98で変更できます。- 複数のHDDや、2つ以上のパーティションがあり、BOOTが2つ以上可能になっている場合は、固定ディスク起動メニュープログラムを表示します。
ただし、自動起動ドライブを選択している場合は表示されません。- MBRを実行させます。
MS-DOSやWindowsでは、ドライブ内にある、io.sysを探し、起動させます。
なお、他のOSについては割愛させていただきます。
無事io.sysが見つかったら、MS-DOSの起動です。
- Windows95の場合は「Windows 95を起動しています...」を表示し、
Windows98の場合は何も出ずに起動します。- 起動ロゴ(logo.sys)を表示します。なければio.sysに埋め込まれたファイルを表示します。
なお、msdos.sysの、[options]セクションにlogo=0という記述がある場合、ロゴを表示しません。- レジストリの一部を読み込みます。異常の場合は、メッセージを表示します。
- config.sysにあるドライバや設定を実行します。
記述しなくても必ず読み込まれるファイルは、次の通りです。
- himem.sys
- ifshelp.sys
- setver.exe
- autoexec.batを実行します。
- autoexec.batにwinの記述がなければ、win.comを実行します。
あっても実行されます。
ここまで行くと、やっと本体の起動が始まります。が、まだMS-DOSモードです。
- レジストリや、system.iniを参照して、仮想デバイスドライバ(.vxd)を読み込んでいきます。
- vmm32.vxdを読み込みます。ない場合や、壊れている場合は起動を強制中止します。
- winstart.batを実行します。
- ディスプレイモードを変更します。
画面が切り替わり、Windowsを開始する準備をします。
- レジストリや、win.iniを参照して、デスクトップを描画します。
- 32ビットのデバイスドライバ(.drv)を読み込んでいきます。
- Windowsに必要な、カーネル・GDI・ユーザー・シェルを読み込みます。
これに該当するファイル:
- krnl386.exe、kernel32.dll
- gdi.exe、gdi32.dll
- user.exe、user32.dll
- shell32.dll(?)、shell.dll(?)
- レジストリの所定位置に書かれているプログラムをサービスとして起動します。
- system.iniのbootセクションに書かれている、shell=に記述したプログラムを起動します。通常はExplorer.exeです。
- レジストリの所定位置に書かれているプログラムを起動します。
- win.iniの[boot]セクションに書かれているプログラムを起動します。
- スタートアップフォルダ内のショートカット(プログラム含む)を起動します。
Copyright (C) MSR