ICDロゴ

マイクロカーネル (micro kernel)

最終更新日: 2001/06/28

 OSのハードウェア依存部分を必要最小限のレベルで分離独立させることで、マルチ プロセッサ化による性能の向上やOSの多機能化を容易にする技術、またはこうした技術によって構成されたOSのコア部分。

 マイクロ カーネルが提唱される以前、汎用大型計算機向けなどの従来型のオペレーティング システムでは、ハードウェア管理から仮想メモリ管理、プロセス/タスク管理など、OSの機能のすべてを渾然一体として組み込んだモノリシック(monolithic)型が一般的だった。このモノリシック型のOSでは、ハードウェア依存部分と非依存部分が明確に分離されておらず、あらゆる要素が複雑に関係し合っており、異なるアーキテクチャ上にOSを移植したり、OSの機能性を向上させたりすることが非常に困難だった。マイクロ カーネル技術は、こうしたモノリシック型OSの問題点や限界を克服するために考案された。

 マイクロ カーネルでは、割り込み/例外処理などのハードウェアの管理部分やメモリ管理、プロセス/スレッド管理、プロセス間通信機能など、OSとして必要最低限の機能を分離独立させ、これ以外の部分は、マイクロカーネルのサービスを利用するサブシステムとして構成する。このようにカーネルのコア部分と、その上でさまざまな機能性をOSに与えるサブ システムを分離し、一種のクライアント/サーバ 型モデルをOS内部に導入することで、OSの機能性を向上させ、スケーラビリティを向上させる(マルチプロセッサ システムへの対応や、さらに高性能な異なるハードウェアへの対応を円滑化させる)。OSの内部は、コア部分と各種サブシステムで構成されており、たとえばマルチプロセッサ環境では、各サブシステムを異なるプロセッサで並列実行し、全体としての性能を向上させることなどが可能になる。またコア部分と各種サブシステム同士の独立性が高いので、新しいサブシテムを追加し、OSの機能性を向上させるなどが容易という特徴がある。

 マイクロ カーネル技術を応用したOSの実装例としては、カーネギー メロン大学で開発されたMach(マーク)オペレーティング システムが有名である。Windows NT/Windows 2000の内部も、マイクロ カーネル技術が活かされており、HAL(Hardware Abstraction Layer)と呼ばれるハードウェア依存部分を独立させている。ただし純粋なマイクロ カーネル構成にしてしまうと、サブシステム間での通信や、サブシステム−コアOS間でのコンテキスト スイッチにかかるオーバーヘッドが大きく、実用性が損なわれるために、NT(Windows 2000)では、HALと各サブシステム間にExecutive(エグゼクティブ)と呼ばれる中間層を設け、ここにネットワーク サービスやグラフィックス サービスの機能を組み込むことで、オーバーヘッドを低減させるように工夫している。

Copyright (C) 2000-2007 Digital Advantage Corp.

アイティメディアの提供サービス

キャリアアップ