L4

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

L4は第二世代マイクロカーネルのファミリーで、一般的にはUnix系オペレーティングシステムの実装に使われますが他の様々なシステムにも使われます。前身のL3マイクロカーネルと同じように、ドイツのコンピュータ科学者ヨッヘン・リートケによってそれ以前のマイクロカーネルベースのオペレーティングシステムの性能の低さを解決する答えとしてL4は作られました。リートケは性能を最優先に設計したシステムであれば実用的なマイクロカーネルを作ることができるのではないかと考えました。彼のインテルi386アセンブリ言語でハードコードした最初の実装はコンピュータ産業界の関心を引きました。これを始めとしてL4はプラットフォーム非依存、セキュリティの改善、分離、堅牢性に向けた開発が行われました。

オリジナルのL4カーネルインターフェース(ABI)やその後継がいくつも再実装されています。L4KA::Pistachio(カールスルーエ工科大学), L4/MIPS(ニューサウスウェールズ大学), Fasco(ドレスデン工科大)などです。 このためL4はリートケの最初の実装だけを指すのではなくファミリーの名前になっています。 現在ではオリジナルのL4とその改良版のカーネルインターフェースを持つマイクロカーネルファミリーが該当します。

設計理念[編集]

Machは中途半端に大きなマイクロカーネルであり、カーネルを徹底的に小さくした方が性能が出る、という考えで作られたマイクロカーネル。モノリシックカーネルの置き換えを目指した初期のマイクロカーネルに対し、マイクロカーネルらしさを追求したことから第二世代のマイクロカーネルと呼ばれる。

歴史[編集]

Machのような第1世代のマイクロカーネルの性能が悪かったため、多くの開発者が1990年代半ばにマイクロカーネルの概念全体を再検討しました。マッハで使用されている非同期カーネルバッファリングプロセス間通信コンセプトは、パフォーマンスの低さの主な理由の1つでした。これにより、Machベースのオペレーティングシステムの開発者は、ファイルシステムやドライバのようないくつかのタイムクリティカルなコンポーネントをカーネル内に戻すようになりました。これはパフォーマンスの問題をやや改善しましたが、真のマイクロカーネルの最小概念 (それらの大きな利点を浪費する)。

Machのボトルネックの詳細は、ワーキングセットが大きすぎることを示しています。IPCコードは、空間的なローカリティが低いことを表しています。 つまり、キャッシュメモリミスが多すぎて、そのほとんどがカーネル内です。これにより、効率的なマイクロカーネルは、パフォーマンスクリティカルなコードの大部分が(第1レベル)キャッシュに乗るように十分小さくなければならないという原則が生じました。

L3[編集]

Jochen Liedtke氏は、パフォーマンスとマシン固有の(プラットフォームに依存しない)設計に細心の注意を払って、IPCレイヤーを細かく設計すれば、実際のパフォーマンスが大幅に向上することを証明しました。 Machの複雑なIPCシステムの代わりに、彼のL3マイクロカーネルは単に追加のオーバーヘッドなしでメッセージを渡しました。 必要なセキュリティポリシーの定義と実装は、ユーザースペースサーバーの任務とみなされました。 カーネルの役割は、ユーザーレベルのサーバーがポリシーを実施するのに必要なメカニズムを提供することだけでした。 1988年に開発されたL3は、TÜV SÜD[要出典]など長年にわたって使用されている安全で堅牢なオペレーティングシステムであることが証明されました。

L4 family tree


種類[編集]

  • Hazelnut
  • Pistachio
  • Fiasco
  • Embedded

関連項目[編集]

ウィキポータル 関連ポータルのリンク

外部リンク[編集]