問題 No.5831
オペレーティングシステムのカーネル設計の一つであるエクソカーネルに関する記述として、最も適切なものはどれか。
【正解の解説】
ハードウェア資源の保護を維持しつつ、アプリケーションに対して物理的なハードウェアに近い低水準のインタフェースを提供し、リソース管理のポリシーを各アプリケーション側で自由に実装できるようにする。
高級レストランのシェフが包丁の研ぎ方まで細かく指定するのではなく、食材だけを渡して調理法をすべて料理人に任せるようなものです。OSが勝手に決めていたリソース管理のルールを外して、アプリが直接ハードウェアの性能を極限まで引き出せるようにします。
スポンサーリンク
【その他の選択肢の解説】
ハードウェアの抽象化を徹底的に行い、仮想化レイヤーを通じて複数のゲストOSを同時に実行することで、システム全体の可用性と耐障害性を向上させる。
一台のパソコン上で複数の異なるOSを動かす仮想化技術と混同しやすいですが、エクソカーネルは仮想化ではなく物理ハードウェアを効率的かつ自由度高く直接制御するための設計思想です。出題者はよく似たOSの進化系技術と混ぜて出題してきます。
すべてのシステム機能を単一の巨大なアドレス空間に集約し、モジュール間の通信オーバーヘッドを削減して極めて高速なタスク切り替えを実現する。
巨大な一つの部屋にあらゆる機能を集約させるモノリシックカーネルの特徴であり、通信の効率化を図る反面、一部のバグが全体に波及する弱点があります。エクソカーネルはむしろ機能を極限まで削ぎ落とすアプローチなので対極に位置します。
システムの中核機能を極限まで削ぎ落として最小限の機能だけを残し、ファイルシステムやデバイスドライバなどのサービスをすべてユーザー空間のプロセスとして実行する。
マイクロカーネルとエクソカーネルはどちらも従来のカーネルをスリム化する発想ですが、マイクロカーネルはサービスを別プロセス化して安全性を高めるのに対し、エクソカーネルは物理リソースの直接操作権をアプリに渡す点が決定的な違いです。