カーネル全体の設計方針
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/16 14:38 UTC 版)
もちろん、上述したタスク群や機能群の提供方法は設計や実装の面で様々である。 「機構と方針の分離」の原則は、マイクロカーネルとモノリシックカーネルの哲学の間でかなり大きな相違がある。ここで、「機構」は様々な「方針」の実装を可能とするものであり、「方針」は特定の「操作のモード」である。例えば「機構」面では、ユーザーがログインしようとしたとき認証サーバを呼び出してアクセスを認めるべきか否かを決定するということが考えられる。一方「方針」面では、認証サーバがパスワードを要求し、データベース内の暗号化されたパスワードと照合するかもしれない。機構が汎用的であれば、機構と方針が同一モジュールに統合されている場合よりも方針の変更(例えば、パスワードの代わりにセキュリティトークンを使うなど)がより容易になる。 最小のマイクロカーネルでは非常に基本的な方針のみが含まれ、その機構はカーネル上で動作させるもの(OSの残りの部分やアプリケーション群)自身がどのような方針(メモリ管理、高度なプロセススケジューリング、ファイルシステム管理など)を採用するか決定することを可能にする。一方モノリシックカーネルは方針の大部分をカーネル内に含む傾向があり、結果としてその上の部分の自由度は制限される。 Per Brinch Hansen は機構と方針の分離のための主張を展開した。すなわち、この分離が不適切であることが既存のOSで本質的技術革新が見られないことの主要因だとし、コンピュータアーキテクチャにおける共通課題だとした。モノリシック設計は、従来の商用システムで一般的な保護技法である「カーネルモード」と「ユーザーモード」に分離するアーキテクチャ(いわゆるリングプロテクション)から生まれた。そのアーキテクチャでは、保護(プロテクション)を必要とするモジュールを可能な限りカーネルに含めようとする。このようなモノリシック設計と特権モードの関係が機構と方針の分離における重要な問題として再注目されている。実際「特権モード」のアーキテクチャ技法は保護機構とセキュリティ方針を融合させる傾向があるが、これとは大きく異なるアーキテクチャ技法であるケイパビリティベースドアドレッシング(英語版)ではその2つを明確に区別し、自然にマイクロカーネル設計が可能となる。 モノリシックカーネルはカーネルの全コードを同じアドレス空間(カーネル空間)で実行するが、マイクロカーネルでは多くのサービスをユーザー空間で実行しようとし、コードベースの保守性とモジュール性を向上させようとしている。多くのカーネルは明確にどちらかに分類できるわけではなく、その中間の実装とも言うべきハイブリッドカーネルになっている。さらに特殊な設計としてナノカーネルやエクソカーネルが研究されているが、広く使われるまでには至っていない。エクソカーネルの例としてXenハイパーバイザがある。
※この「カーネル全体の設計方針」の解説は、「カーネル」の解説の一部です。
「カーネル全体の設計方針」を含む「カーネル」の記事については、「カーネル」の概要を参照ください。
- カーネル全体の設計方針のページへのリンク