Genode
Genodeコンポーネントは、構造化されたデータをXMLにシリアライズし、状態の伝達に利用している。UNIX派生OSがプレインテキストを利用しているのと対照的である。 XMLは、複雑な機能と非効率的な表現、手作業で編集するのが比較的難しいために、広く批判されている。 Genodeフレームワークは、XMLはパーズとプログラムによる生成が容易で、手作業で読み書きすることも可能であるため、そのコンポーネント全体で効率的にXMLを利用している。 Genodeでは完全なXML言語の単純なサブセットを使っているが、新たにGenodeを使い始めたユーザーは、XML文書の編集は手間がかかり、間違いやすいと言うことが多い。 XMLの特別な機能に依存はしていないため、Genodeデータマークアップ言語は、JSONやS式といったより単純な何かに置き換え可能である。 しかし、そのような移行計画のアナウンスはされていない。
Genode は、フリーでオープンソースなオペレーティングシステムフレームワークであり、マイクロカーネル抽象化レイヤー とユーザースペースコンポーネントのコレクションで構成されている。 Genodeは、例えばUnixのようなプロプライエタリーなオペレーティングシステムから派生したのではない数少ないオペレーティングシステムの一つとして知られている。 特徴的な設計思想として、小さなトラステッド・コンピューティング・ベース(TCB)により、セキュリティーを指向したオペレーティングシステムであることを目指している。
Genodeは、デスクトップ やタブレット のOSとして使われるか、ゲストオペレーティングシステムのための仮想マシンモニターとして使われる。 Genodeは、x86 とARM の両方で、安全な仮想化システムの信頼されたコンポーネントとして使われている。
Genodeは、小規模なコードベースだが、より複雑であるUnixに由来するオペレーティングシステムの代替として利用できる。 このため、Genodeは仮想化 やプロセス間通信、 IPスタック分離、 モニタリング、 ソフトウェア開発 の分野の研究のベースのシステムとして利用されている。
Genodeは、より小さくシンプルなコードであれば、信頼性と正しさを検証するのはより容易になるというマイクロカーネルに一般的な哲学に基づいて構築されている。 Genodeは、この哲学をユーザースペースへも拡張しており、小さなコンポーネントによって複雑なアプリケーションを構成している。 それぞれのコンポーネントは、親子関係を持つ厳格な階層構造を持っている。 親となっているコンポーネントは、リソースとプロセス間通信(UPC)を子に適用する 階層構造は、直観的なパーティショニングの実現と特権の昇格を防ぐ仕組みを提供する。 つまり、特定のサブシステムはより一般的なサブシステムの内側に配置され、中央集権的であったり、 スーパーユーザーの存在するシステムポリシーに特有なconfused deputy problemを減少させる。
Genodeはマイクロカーネルによってホストされるように設計されている一定の機能セットを定め、モノリシックカーネルであってもこれらの機能以上を実装すれば良い。 このように機能を抽象化することで、GenodeはL4マイクロカーネル やLinuxにとってのユーザーランドとして振る舞うことができる。