L4マイクロカーネルファミリー
2006年にNICTAのグループはseL4と呼ばれる第3世代マイクロカーネルの設計を開始した。これはコモンクライテリア(Common Criteria:略称CC ISO/IEC 15408規格)を満たす、あるいはそれ以上のセキュリティ要件を満たすために高い安全性と信頼性が得られるような基本方針で設計された。最初からカーネルの形式的証明を目指して開発を行った。性能と検証の時に相反する要求を満たすために、チームはHaskellで書かれた実行可能な定義からソフトウェアによる処理を行いその結果を用る方法をとった。seL4ではオブジェクトのアクセス権についての形式的推論を可能にするために capability-basedアクセス制御 を用いている。
機能の正しさの形式的証明は2009年に完了した。この証明はカーネルの実装がその定義に対して正しいことを示し、従ってデッドロック、ライブロック(あるプロセスがbusy状態のまま実行権を放さなくなってしまう状態を指す)、バッファオーバーフロー、数値演算の例外、初期化していない変数の使用などの実装バグの無いことを意味する。seL4は汎用のOSカーネルとしては初めて証明されたという主張がなされている。
seL4は、カーネルリソースの管理に新しい方法をとっている。
リートケによるマイクロカーネルの一般的な設計指針は以下のようなものである
ある概念をマイクロカーネル内で実現することが許されるのは、それをカーネルの外に移した場合、すなわち競合する実装が可能となることでシステム必須の機能が妨げられる場合だけである
この考え方に基づいてL4マイクロカーネルはわずかな基本的機構を提供する
アドレス空間(抽象化されたページテーブルとメモリ保護の提供)
スレッドとスケジューリング(抽象化された実行と一時的な保護の提供)
プロセス間通信(分離された領域間の制御された通信)