10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linux学習 4日目

Posted at

オペレーティングシステムの基本的概念 3回目

カーネルアーキテクチャ

ほとんどの UNIX カーネルは モノリシックカーネル です。モノリシックカーネルでは、カーネル内の各レイヤが統合され、カレントプロセスの代わりに カーネルモード で動作します。

これに対し、マイクロカーネル 方式のオペレーティングシステムでは、カーネルが提供する機能は最小限に抑えられます。一般的に、マイクロカーネルには以下のような機能のみが実装されます。

  • 同期プリミティブ(排他制御やロック機構)
  • シンプルなスケジューラ(プロセスのスケジューリングを担当)
  • プロセス間通信(IPC)(異なるプロセス間のデータ交換を可能にする)

その他の機能(例:メモリアロケータ、デバイスドライバ、システムコールハンドラなど)は、ユーザ空間で動作するシステムプロセス によって処理されます。

モノリシックカーネル vs. マイクロカーネル

学術的な研究ではマイクロカーネルが注目されていますが、実用上はモノリシックカーネルの方が高速である場合が多いです。これは、異なるレイヤ間の通信にかかるオーバーヘッド(メッセージパッシングのコスト)があるためです。

それでも、マイクロカーネルには以下のような利点があります。

  • モジュール化が強制される → システムが分離され、各コンポーネントの独立性が向上
  • 移植性が高い → ハードウェア依存のコードがカプセル化されているため、別のアーキテクチャへの移植が容易
  • メモリの効率的な使用 → 使われていないシステムプロセスをスワップアウトできる

しかし、性能を維持しつつマイクロカーネルの利点を活かすために、モジュール機能が導入されました。

モジュールとは

モジュールとは、 実行中にカーネルへ動的に組み込む(または削除する)ことができるオブジェクトファイル です。主に、以下のようなカーネルの上位レイヤの機能を提供します。

  • ファイルシステム
  • デバイスドライバ
  • ネットワークプロトコル
  • その他のシステムサービス

モジュールは、マイクロカーネルの「ユーザ空間で動作する外部プロセス」とは異なり、カーネル空間で実行されます。つまり、静的にリンクされたカーネル関数と同様に、カレントプロセスの代わりにカーネルモードで動作します。

モジュールの利点

1. モジュール化による拡張性

モジュールは 実行時にロード/アンロードが可能 なため、新しい機能を容易に追加できます。また、モジュールは 明確に定義されたインターフェース を介してデータにアクセスするため、カーネルのコードを直接変更せずに機能を拡張できます。

2. プラットフォーム非依存性

モジュールは特定のハードウェアに依存しません(ただし、特定のデバイス規格に依存することはあります)。たとえば、SCSI デバイスドライバのモジュールは、異なるアーキテクチャ(例:HP Alpha、IBM 互換機)でも動作します。

3. メモリ使用の効率化

必要なときに 動的にロード し、不要になれば アンロード できるため、RAM の節約につながります。特に、メモリの制約がある 組み込みシステム では重要な特性です。

4. 性能の維持

一度ロードされたモジュールは、静的に組み込まれたカーネルコードと同等の速度で実行されます。マイクロカーネルとは異なり、メッセージパッシングのオーバーヘッドがない ため、処理の遅延を最小限に抑えられます。

まとめ

  • モノリシックカーネルは高速 だが、モジュール化しにくい
  • マイクロカーネルはモジュール化しやすい が、IPC のオーバーヘッドがある
  • カーネルモジュール を導入することで、モノリシックカーネルの 性能を維持しつつ、拡張性を向上させることが可能

このように、カーネルのアーキテクチャは 性能・拡張性・保守性 のバランスを考慮して設計されています。

10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?