はじめに
第2回では、Windows NT 3.1 の中核となる システムアーキテクチャ を解説します。NT が単なるモノリシックカーネルでも、純粋なマイクロカーネルでもない理由がここにあります。
1. ハイブリッドカーネルという選択
Windows NT はしばしば「マイクロカーネル」と誤解されますが、実際には ハイブリッドカーネル に分類されます。
- Mach などのマイクロカーネル思想の影響
- 性能低下を避けるため、重要機能はカーネルモードに配置
結果として、
- 柔軟性
- 性能
- 移植性
のバランスを取った設計となりました。
2. カーネルモード構成要素
カーネルモードは大きく以下に分かれます。
2.1 Kernel
- 割り込み処理
- スレッドスケジューリング
- 同期プリミティブ(スピンロック等)
極力小さく保たれ、OS の「心臓部」を担います。
2.2 Executive
OS 機能の大半は Executive に実装されています。
- プロセスマネージャ
- メモリマネージャ
- I/O マネージャ
- オブジェクトマネージャ
- セキュリティ参照モニタ
これらはすべて オブジェクト指向的設計 に基づいています。
2.3 デバイスドライバ
- カーネルモードで動作
- IRP を介して I/O マネージャと連携
- ファイルシステムもドライバとして実装
2.4 HAL(Hardware Abstraction Layer)
- 割り込みコントローラ
- DMA
- タイマ
CPU やチップセット依存部分を HAL に隔離することで、高い移植性を実現しました。
3. ユーザーモード サブシステム
3.1 環境サブシステムの概念
NT は複数の API 環境を同時に提供可能な設計でした。
- Win32
- POSIX
- OS/2(初期計画のみ)
3.2 Win32 サブシステム
- CSRSS(Client/Server Runtime Subsystem)
- ウィンドウ管理、プロセス生成の一部を担当
Win32 が主流になることで、NT は Windows 系 OS として確立されました。
4. ユーザーモードとカーネルモードの境界
- システムコールによる明確な境界
- 不正アクセスは例外として処理
- OS 全体の安定性を確保
この分離は、以降の Windows バージョンでも一貫して維持されています。
5. 第2回のまとめ
Windows NT 3.1 のアーキテクチャは、
- マイクロカーネル思想の取り込み
- 実用性能を重視した現実的設計
- 将来拡張を見据えた構造化
という特徴を持っていました。
次回は、これらの基盤の上で動作する 「プロセスとジョブ」 の内部構造を詳しく解説します。

コメント