第2回: システム アーキテクチャ

はじめに

第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 のアーキテクチャは、

  • マイクロカーネル思想の取り込み
  • 実用性能を重視した現実的設計
  • 将来拡張を見据えた構造化

という特徴を持っていました。

次回は、これらの基盤の上で動作する 「プロセスとジョブ」 の内部構造を詳しく解説します。

コメント

タイトルとURLをコピーしました