
Windows 9xシリーズのオペレーティング システムとは、1995 年から 2000 年にかけて製造されたMicrosoft Windowsオペレーティング システムのシリーズを指します。これらは、モノリシック カーネルである Windows 95 カーネルに基づいています。基本コードは、機能的にMS-DOSに似ています。これらは 16 ビットと 32 ビットのハイブリッドであり、動作するにはMS-DOSのサポートが必要です。
重要なファイル
Windows 95およびその他のWindows 9xオペレーティングシステムを起動またはブートするには、次のファイルセットが必要です。[1]
32 ビット シェルとコマンド ライン インタープリター:
- SHELL.DLL および SHELL32.DLL - シェル API
- EXPLORER.EXE - Windows シェルとファイル マネージャー
- COMMAND.COM - コマンドラインシェル実行可能ファイル
Windows 95 コア:
- KERNEL32.DLLおよび KRNL386.EXE – Windows リソース用の Windows API
- ADVAPI32.DLL - Windows レジストリの機能とシャットダウンおよび再起動機能を含むカーネルへの追加機能
- GDI32.DLLおよび GDI.EXE - グラフィック デバイス インターフェイス
- USER32.DLLおよび USER.EXE - GUI 実装
- COMMCTRL.DLL およびCOMCTL32.DLL - 共通コントロール (ユーザー インターフェイス)
- DDEML.DLL動的データ交換管理ライブラリ (DDEML) - アプリケーションに DDE 機能を追加するタスクを簡素化するインターフェイスを提供します。
- MSGSRV32.EXE - 32 ビット メッセージ サーバーとして動作し、Windows タスク リストには表示されません。
- WIN.COM - GUIとシステムのWindows部分の読み込みを担当します
レジストリおよびその他の構成ファイル:
- SYSTEM.DAT、USER.DAT - Windowsレジストリが含まれています
- MSDOS.SYS - ダブルバッファリングやGUIロゴの無効化など、低レベルのブート設定とリソースが含まれています。
- WIN.INIとSYSTEM.INI - Windows 3.1の設定ファイルで、Windows 9xでも処理されます。
仮想マシン マネージャーと構成マネージャー:
- VMM32.VXD - 仮想マシンマネージャとデフォルトドライバ。io.sysからカーネルとして引き継ぐ。
インストール可能なファイル システム マネージャー:
- IFSHLP.SYS - Windows が MS-DOS 方式を回避して直接ファイルシステム呼び出しを行えるようにします。
- IFSMGR.VXD - インストール可能なファイル システム用の 32 ビット ドライバー
- IOS.VXD - すべての保護モードのファイルシステムとブロックデバイスドライバを制御および管理するI/Oスーパーバイザ
- MPREXE.EXE、MPRSERV.DLL、MPR.DLL - ネットワーク認証とユーザー プロファイル用のマルチ プロバイダー ルーター
- MSPWL32.DLL - パスワード リスト管理ライブラリ
デバイスドライバー:
- IO.SYS - I/Oルーチンなどのすべての基本機能を処理する実行可能ファイルであり、vmm32.vxdが引き継ぐまでカーネルとしても機能します。
- HIMEM.SYS - DOS プログラムが拡張メモリ仕様を介して拡張メモリにデータを保存できるようにする DOS デバイス ドライバー
- SYSTEM.DRV、MMSOUND.DRV、COMM.DRV、VGA.DRV、MOUSE.DRV、BIGMEM.DRV、KEYBOARD.DRV - 16 ビット ドライバー
- CP 1252.NLS、CP 437.NLS、UNICODE.NLS、LOCALE.NLS - キーボード レイアウト
- RMM.PDR - リアルモードマッパー仮想デバイス
システムは、コマンド インタープリタをロードする前に実行される設定とコマンドを含むCONFIG.SYSと、COMMAND.COM をロードした後に自動的に実行されるバッチ ファイルであるAUTOEXEC.BATも使用する場合があります。ただし、システムに存在しない場合に備えて、 IO.SYSに両方のデフォルト設定が含まれているため、これらの 2 つのファイルはブート プロセスに重要ではありません。Windows MEでは、 CONFIG.SYS と AUTOEXEC.BAT は処理されず、LOGO.SYS がスプラッシュ スクリーンとして使用されることがあります。
ブートシーケンス
Windows 9x の起動プロセスは 6 つのフェーズから構成されます。最初の 2 つのステップは、従来のBIOSとマスター ブート レコードの組み合わせを使用して起動するすべてのオペレーティング システムに共通です。
フェーズ 1 - ROM BIOS ブートストラップ プロセス
ROM BIOS は、物理メモリ アドレス 000FFFF0h から実行を開始します。このフェーズでは、BIOS は最初に電源投入時セルフテストを実行し、次にドライブ A にブート ディスクがあるかどうかを確認します。ドライブ A にブート ディスクが見つからない場合、ROM BIOS はハード ディスクがあるかどうかを確認します。コンピューターにプラグ アンド プレイ BIOS がある場合、BIOS はさらに、プラグアンド プレイデバイスの I/O ポート アドレス、割り込み ライン、DMA チャネルの RAM をチェックし、見つかったデバイスを無効にし、使用済みおよび未使用のリソースのマップを作成し、デバイスを再度有効にします。
フェーズ 2 - マスター ブート レコードとブート セクタ
マスターブート レコードはアドレス 7C00h にロードされ、Windowsディスク パーティションのブート セクタをロードします。ブート セクタには、ディスク ブート プログラムとBIOS パラメータ ブロックテーブルが含まれており、ルート ディレクトリと IO.SYS ファイルの場所を検索し、IO.SYS ファイルをメモリにロードします。
フェーズ3 -IO.SYSファイルの初期化
IO.SYS は、最小限のファイル アロケーション テーブルドライバーを初期化し、MSDOS.SYS をメモリにロードします。次に、MSDOS.SYS ファイルの Boot-Delay 行に応じて、「Windows を起動しています」と表示されます。次に、LOGO.SYSファイルをロードし、画面に起動イメージを表示します。DRVSPACE.INIまたはDBLSPACE.INIファイルが存在する場合は、圧縮ディスクのドライバーもロードします。次に、Windows はレジストリ ファイル SYSTEM.DAT を開こうとします。これが失敗すると、SYSTEM.DA0 を開こうとします。MSDOS.SYS またはレジストリで構成されている場合には、ダブル バッファリングも有効になります。
フェーズ 4 - CONFIG.SYS とリアル モード構成
Windows 95およびWindows 98では、CONFIG.SYS を分析して、MS-DOSリアル モードドライバをロードします。Windows ME では、これは無視されます。CONFIG.SYS ファイルが存在しない場合は、IO.SYS ファイルがドライバIFSHLP.SYS、HIMEM.SYS、および SETVER.EXEをロードします。Windows は、 Windows 95 オペレーティング システムまたは拡張メモリ用に、すべての上位メモリ ブロックを予約します。Windows 95 および 98 は、 AUTOEXEC.BAT を処理するためにCOMMAND.COMを実行します。これは、終了プログラムと常駐プログラムをメモリにロードします。Windows ME では、リアル モード DOS サポートが無効になっており、ロードされている TSR によってシステムの安定性が損なわれる可能性があるため、この手順は無視されます。
フェーズ5 - ドライバーの初期化
IO.SYS はWIN.COMを実行します。WIN.COM はVMM32.VXDファイルをメモリにロードするか、ハード ディスクからアクセスします。このファイルには、最も重要なドライバーと 9x カーネルが含まれています。リアル モード仮想デバイス ドライバーローダーは、Windows\System\Vmm32 フォルダーと VMM32.VXD ファイルの両方に存在する重複した仮想デバイス ドライバーをチェックします。重複している場合は、Windows\System\Vmm32 ディレクトリのドライバーがロードされます。
Windows 95 から 98 では、INT 2Fh を呼び出してリアル モード ドライバーを照会し、外部ファイルとしてロードされるようにマークされたレジストリ エントリ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD 内のドライバーを検索します。次に、Vmm32 は Windows\System.ini ファイルの [386 Enh] セクションを分析し、そこにリストされているドライバーをロードします。一部の重要なドライバーは、Windows レジストリ、SYSTEM.INI、または Windows\System\Vmm32 ディレクトリにリストされていない場合でもロードされます。
リアルモードの仮想デバイス ドライバーがロードされると、Windows 95 および 98 でドライバーの初期化が行われます。次に、Vmm32 は CPU をリアル モードから保護モードに切り替えます。次のステップは保護モード ドライバーの初期化で、デバイスごとに 3 つのフェーズで実行されます。初期化の重要な部分 (割り込みが無効になっている間)、デバイスの初期化 (ファイル I/O が許可されている場合)、および InitComplete フェーズです。ディスプレイ ドライバーの初期化後、Windows はグラフィカル モードに切り替わります。
フェーズ 6 - Win32 の初期化
すべてのドライバーが読み込まれると、kernel32.dll、 krnl386.exe、gdi32.dll、 gdi.exe、user32.dll、 user.exe、 shell32.dll およびexplorer.exeファイルが読み込まれます。 起動プロセスの次の手順は、ネットワーク環境の読み込みです。 ユーザーは、構成されているネットワークにログオンするように求められます。 ユーザーがログオンすると、デスクトップ設定がレジストリから読み込まれるか、デスクトップ構成で既定のデスクトップが使用されます。 次に、Windows は、スタートアップ フォルダー、WIN.INIで定義されているプログラムと、HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion および HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ ブランチ内のレジストリ キー Run、RunOnce、RunServices、および RunServicesOnce で定義されているプログラムを起動します。 RunOnce レジストリ キー内の各プログラムが起動されると、プログラムはキーから削除されます。
カーネル
Windows 9x カーネルは仮想メモリを備えた 32 ビット カーネルです。ドライバは .VXD ファイルで提供されますが、Windows 98 以降では新しいWDMドライバを使用できます。[2]ただし、MS-DOSカーネルはメモリに常駐したままになります。Windows は、 Windows Meを除き、古い MS-DOS 16 ビット ドライバがインストールされている場合はそれを使用します。Windows Me では、DOS は引き続き実行されますが、Windows は AUTOEXEC.BAT を解析するときにデバイス ドライバをロードする試みを無視し、認識できる環境変数を CONFIG.SYS から Windows レジストリに移動します。
参照
参考文献
- ^ 「Windows 95 OSR 2」。WinWorld 。 2022年7月31日閲覧。
- ^ Microsoft (2002-04-15). 「Windows Driver Model (WDM)」. Microsoft . 2013-01-18 時点のオリジナルよりアーカイブ。2016-05-27に取得。
さらに読む
- シュルマン、アンドリュー (1994 年 11 月)。Unauthorized Windows 95 - 開発者リソース キット (第 1 版)。米国カリフォルニア州フォスター シティ: John Wiley & Sons, Inc. ISBN 1-56884-305-4. ISBN 978-1-56884-305-6 .
- シュルマン、アンドリュー、ブラウン、ラルフ D. 、マクシー、デビッド、ミシェルズ、レイモンド J.、カイル、ジム (1994) [1993 年 11 月]。『Undocumented DOS: 予約済みの MS-DOS 関数とデータ構造のプログラマ ガイド - MS-DOS 6、Novell DOS、Windows 3.1 を含むように拡張 (第2 版)』。マサチューセッツ州レディング: Addison Wesley。ISBN 0-201-63287-X. ISBN 978-0-201-63287-3 . (xviii+856+vi ページ、3.5 インチフロッピー) 正誤表: [1][2]
- Paul, Matthias R. (2002-04-10). 「[fd-dev] TSR からの HMA アクセス」. freedos-dev . 2017-09-09 にオリジナルからアーカイブ。 2017-09-09に取得。
[...] MS-DOS 7.0 + [...] は、 [...] ほとんど文書化されていない RMD データ構造を導入しました。これは通常HMAにあります。カーネルは、ブート中に構成とリアル モード ドライバー データ (ドライバーの種類、ドライバーによってフックされた割り込み、 CONFIG.SYS呼び出し行など)を収集して記録し、この情報を [...] 複雑で [...] 増大するデータ構造に格納します。おそらく [...] Windows コアがロードされたリアル モード ドライバーのより良い画像を取得するために使用したり、それらの一部をアンフックまたはアンロードしようとしたりすることを意図していますが、 [...] 非常に限られた範囲でのみ使用されます ( [...] 起動時に作成されたログ ファイルに反映される情報の一部と、 [...] 構成マネージャーの一部もこれを利用します)。 [...] 技術的な側面以外には余地が残されています [...] 興味深い内容が何も文書化されていないためです [...]
- ポール、マティアス R. (2002-08-13)。 「Suche freien Speicherbereich unterhalb von 1 MB, der nicht von OS überschrieben wird」(ドイツ語)。ニュースグループ: de.comp.lang.assembler.x86。 2017-09-04 のオリジナルからアーカイブ。2017 年 9 月 3 日に取得。(注: MS-DOS 7+ HMA の使用法と \WINDOWS\IOS.LOG についても同様です。)
- Sweger, Kristofer (2007) [2002-07-15]. 「ANSIPLUS と Windows」。2021-11-28 にオリジナルからアーカイブ。2021-11-28に取得。 […] ANSIPLUS のコードは
、MS-DOS 7
(Windows 9x のみ)では
HMA
にロードできません。未使用の HMA メモリが不足しているようです。[…]
- Paul, Matthias R. (2004-06-17). 「Re: DR-DOS 7.03 でのランダムロックアップ」opendos@delorie.com; FidoNetカンファレンス: ALT_DOS。 2019-04-28 にオリジナルからアーカイブ。2019-04-28に取得。
[...] Windows 95 より前のすべての MS-DOS バージョンは、COM スタイルの COMMAND.COM ファイルを使用していました。このファイルには、ファイルの先頭に特別な署名があり、[...] MS-DOS BIOS はシェルをロードする前にこの署名を照会しますが、DR-DOS BIOS は照会しません [...] COMMAND.COM は [...] 「正しい」DOS バージョンで実行されているかどうかをチェックするため、DR-DOS で COMMAND.COM をロードすると、「バージョンが正しくありません」というエラー メッセージが表示され、COMMAND.COM は終了します。そのため、DR-DOS は [...] 「コマンド インタープリタが正しくないか、見つかりません」というエラー メッセージを表示します (DR-DOS が CONFIG.SYS 処理の終了後に SHELL= コマンド プロセッサをロードしようとした場合)。この場合、有効な DR-DOS COMMAND.COM (C:\DRDOS\COMMAND.COM) へのパスを入力すれば、すべて正常に動作します。今では、MS-DOS 7.0 以降、状況は変わりました [...] COMMAND.COM は内部的に EXE スタイルのファイルになったため、魔法の [...] 署名 [...] は存在せず、チェックもできません [...] そのため、DR-DOS が互換性のない COMMAND.COM を排除する方法はありません。さらに、COMMAND.COM はバージョン チェックを行わなくなり、[...] DR-DOS では動作しません [...] クラッシュするだけです [...] PC DOS COMMAND.COM は DR-DOS では正常に動作します [...]
[3][4] - キング、エイドリアン (1994)。Inside Microsoft Windows 95 (第 2 版)。ワシントン州レドモンド、Microsoft Press。ISBN 1-55615-626-X. ISBN 978-1-55615-626-7 .
- 『Microsoft Windows 95 プログラマーズ ガイド: Microsoft Windows 開発チームによる Windows プログラミングの主要トピック (第 1 版)』。ワシントン州レドモンド、米国: Microsoft Press。1995年 7 月 1 日。ISBN 1-55615-834-3. ISBN 978-1-55615-834-6 . 2016年5月26日閲覧。
{{cite book}}:|work=無視されました (ヘルプ) - Oney, Walter (1995)。Systems Programming for Windows 95 (第 1 版)。ワシントン州レドモンド、米国: Microsoft Press。ISBN 1-55615-949-8. ISBN 978-1-55615-949-7 .
- ピエトレック、マット(1995 年 11 月)。Windows 95 システム プログラミング シークレット (第 1 版)。John Wiley & Sons, Inc. ISBN 1-56884-318-6. ISBN 978-156884-318-6 . 2016年5月26日閲覧。
{{cite book}}:|work=無視されました (ヘルプ) - Hazzah, Karen (1997)。 『 Windows VxD とデバイス ドライバーの記述 - 仮想デバイス ドライバーのプログラミング秘訣』 (第 2 刷、第 2 版)。ローレンス、カンザス州、米国: Miller Freeman, Inc. ISBN 0-87930-438-3. ISBN 978-0-87930-438-6 .
- ミッチェル、スタン (1997-05-11)。シュルマン、アンドリュー (編)。Windows 95 ファイル システムの内部 (第 1 版)。セバストポル、カリフォルニア州、米国: O'Reilly & Associates, Inc. ISBN 1-56592-200-X. ISBN 978-1-56592-200-6 . 2016年5月26日閲覧。
{{cite book}}:|work=無視されました (ヘルプ)
外部リンク
- Microsoft. 「Windows 95 アーキテクチャ コンポーネント」。Microsoft。2014年 10 月 17 日にオリジナルからアーカイブ。2016 年 5 月 27 日に取得。
- Microsoft (2006-11-15). 「Windows 95 の起動プロセスの説明」. 1.1. Microsoft . Q174018. 2014-02-14 にオリジナルからアーカイブ。2016-05-27に取得。
- Microsoft (2013-10-26). 「Win16Mutex について」. 5.0. Microsoft . KB125867. Q125867. 2014-01-16 にオリジナルからアーカイブ。2016-05-27に取得。
