Movatterモバイル変換


[0]ホーム

URL:


コンテンツにスキップ
Wikipedia
検索

Genode

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Genode
GenodeベースのデスクトップシステムであるSculpt
開発者Genode Labs
開発状況安定版リリース
ソースモデルオープンソース
初版2008年 (18年前) (2008)
最新安定版25.02[1] /2025年2月28日 (11か月前) (2025-02-28)
リポジトリウィキデータを編集
対象市場デスクトップ、組み込み
使用できる言語英語
プラットフォームARMRISC-V[2]x86x86-64[3]
カーネル種別マイクロカーネル
ユーザランドGenode、POSIX
ライセンスAGPLv3
ウェブサイトgenode.org
テンプレートを表示

Genode[4][5][6]は、フリーでオープンソースオペレーティングシステムフレームワークであり、マイクロカーネル抽象化レイヤーとユーザースペースコンポーネントのコレクションで構成されている。Genodeは、例えばUnixのようなプロプライエタリーなオペレーティングシステムから派生したのではない数少ないオペレーティングシステムの一つとして知られている。特徴的な設計思想として、小さなトラステッド・コンピューティング・ベース(TCB)により、セキュリティーを指向したオペレーティングシステムであることを目指している。

Genodeは、デスクトップ[7][8]やタブレット[9]のOSとして使われるか、ゲストオペレーティングシステムのための仮想マシンモニターとして使われる。Genodeは、x86[10]とARM[11]の両方で、安全な仮想化システムの信頼されたコンポーネントとして使われている。

Genodeは、小規模なコードベースだが、より複雑であるUnixに由来するオペレーティングシステムの代替として利用できる。このため、Genodeは仮想化[12] やプロセス間通信、[13]IPスタック分離、[14][15]モニタリング、[16]ソフトウェア開発[17][18]の分野の研究のベースのシステムとして利用されている。

歴史

[編集]

Genodeは、初めはドレスデン工科大学におけるBastei OSアーキテクチャー[19]の研究リポートとして考案された。このリポートの目的は、ケーパビリティーベースのセキュリティーを使ったコンポーネントベースのオペレーティングシステムが実用的かどうかを見極めることであった。このリポートは、同時期に行われていたL4マイクロハイパーバイザー[20]の研究の一部として行われた。最初期のプロトタイプが成功すると、このリポートの著者たちはBasteiをGenode OS Frameworkとして開発するため、Genode Labs社を立ち上げた。

リリース

[編集]

プロジェクトは、GNU Affero General Public Licenseの元で、オープンソースで公開して開発されており、商業目的で他のライセンスでも提供されている。3カ月おきにリリースされ、OSのABIAPIの変更、文書の更新が行われる。Genodeはソースコードとして入手可能であり、18.02リリース以降は、Sculptと呼ばれる汎用の派生物がターゲットを定めたバイナリーの開発用に作られている。

アーキテクチャーの特徴

[編集]

Genodeは、より小さくシンプルなコードであれば、信頼性と正しさを検証するのはより容易になるというマイクロカーネルに一般的な哲学に基づいて構築されている。Genodeは、この哲学をユーザースペースへも拡張しており、小さなコンポーネントによって複雑なアプリケーションを構成している。それぞれのコンポーネントは、親子関係を持つ厳格な階層構造を持っている。親となっているコンポーネントは、リソースとプロセス間通信(UPC)を子に適用する階層構造は、直観的なパーティショニングの実現と特権の昇格を防ぐ仕組みを提供する。つまり、特定のサブシステムはより一般的なサブシステムの内側に配置され、中央集権的であったり、スーパーユーザーの存在するシステムポリシーに特有なconfused deputy problemを減少させる。

Genodeはマイクロカーネルによってホストされるように設計されている一定の機能セットを定め、モノリシックカーネルであってもこれらの機能以上を実装すれば良い。このように機能を抽象化することで、GenodeはL4マイクロカーネル[5][21]やLinuxにとってのユーザーランドとして振る舞うことができる。

批判

[編集]
この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。このテンプレートの使い方
出典検索?"Genode" – ニュース ·書籍 ·スカラー ·CiNii ·J-STAGE ·NDL ·dlib.jp ·ジャパンサーチ ·TWL
(2023年5月)

C++

[編集]

GenodeはしばしばC++で実装するという選択をしたことで批判されている(C++で実装されたオペレーティングシステムとしては、BeOSFuchsia、Ghost、HaikuIncludeOS英語版OSv英語版Palm OSReactOSSyllableなどがあり、全ての主要なブラウザーエンジンもC++で実装されている)。この批判は、C++の継承の複雑さと正しい動作をするかコードを分析するのが難しいという理由で、C++がシステムライブラリーとAPIを実装するのには向かない選択であると言うものである。Genodeは、多重継承とテンプレートをシステムライブラリー中で利用しているが、標準C++ライブラリーは利用せず、暗黙のグローバルステートに依存する言語機能であるスレッドローカルストレージとグローバルアロケーターも利用しない。C++の完全な静的解析は不可能だが、Genodeプロジェクトは経験論的な単体テストを提供している。

XML

[編集]

Genodeコンポーネントは、構造化されたデータをXMLにシリアライズし、状態の伝達に利用している。UNIX派生OSがプレインテキストを利用しているのと対照的である。XMLは、複雑な機能と非効率的な表現、手作業で編集するのが比較的難しいために、広く批判されている。Genodeフレームワークは、XMLはパーズとプログラムによる生成が容易で、手作業で読み書きすることも可能であるため、そのコンポーネント全体で効率的にXMLを利用している。Genodeでは完全なXML言語の単純なサブセットを使っているが、新たにGenodeを使い始めたユーザーは、XML文書の編集は手間がかかり、間違いやすいと言うことが多い。XMLの特別な機能に依存はしていないため、Genodeデータマークアップ言語は、JSONS式といったより単純な何かに置き換え可能である。しかし、そのような移行計画のアナウンスはされていない。

ローカル名前空間

[編集]

Genodeは、グローバルな名前空間を全く利用していない。つまり、グローバルなファイルシステムやプロセス、IPCエンドポイントのレジストリーは存在しない。これは、例えばUNIXのように、ファイルシステムがどこでも利用可能で、スーパーユーザーコンテキストをシステム内の任意のプロセスに許すシステムとは対照的である。パーミッションとコンポーネントのルーティングを明示的に宣言することは、UNIXと比較して多くの負荷を発生させる。しかし管理者権限を区分けすることで、同じマシン上で、仮想化や一般的な分離手法を用いることなく、サブシステムが相互に信頼していない管理者により管理されることを許せる。

Sculpt

[編集]

Genodeプロジェクトは、現代的な消費者向けノートPC[22]をターゲットとした「Sculpt」と呼ばれるデスクトップオペレーティングシステムをリリースしている。Sculptは、自動的にデバイスの検出と設定をし、GUIのコントロールインターフェイスを持ち、Genodeパッケージングマネージャーへのフロントエンドを持つ小さなベースシステムである。Sculptは完全なデスクトップ環境ではなく、ユーザーが完全なデスクトップ環境を利用するには、伝統的なOSを仮想マシンとして展開する必要がある。Sculptは、Genodeオペレーティングシステムフレームワークとは特定のシステムのために静的に構成するのではなく、特権制御コンポーネントを使って動的に構成を変更することに大きく依存している点が異なる。

脚注

[編集]
[脚注の使い方]
  1. ^Genode 25.02”. 2025年3月12日閲覧。
  2. ^Genode OS adds RISC-V support”. 2019年6月4日閲覧。
  3. ^Genode Is Developing A GPU Multiplexer For Intel Graphics Hardware”. Phoronix. 2019年6月4日閲覧。
  4. ^Introduction of the Genode OS Framework”. archive.fosdem.org/2012. 2019年6月4日閲覧。
  5. ^abL4 Based Operating Systems”. L4hq.org. 2019年6月4日閲覧。
  6. ^Redox OS, MINIX, Hurd & Genode Had Their Time At FOSDEM Too”. Phoronix. 2019年6月4日閲覧。
  7. ^Genode 2018.2 mit Sculpt OS”. pro-linux.de. 2019年6月4日閲覧。
  8. ^Sculpt Aims To Be A General-Purpose OS Built Atop Genode”. 2019年6月4日閲覧。
  9. ^Tarasikov, Alexander (2013年5月11日). “Porting Genode to commercial hardware”. allsoftwaresucks.blogspot.com. 2019年6月4日閲覧。
  10. ^Muen - An x86/64 Separation Kernel for High Assurance”. 2019年6月4日閲覧。
  11. ^Inspecting data from the safety of your trusted execution environment”. 2019年6月4日閲覧。
  12. ^Embassies: Radically Refactoring the Web”. USENIX. 2019年6月4日閲覧。
  13. ^Contract Specification and language”. ccc-project.org (2014年12月11日). 2019年6月4日閲覧。
  14. ^The Secure Communication Module of CCC”. ccc-project.org (2016年1月6日). 2019年6月4日閲覧。
  15. ^Hamad, Mohammad. “A communication framework for distributed access control in microkernel-based systems”. 2019年6月4日閲覧。
  16. ^B.PRUTHIVIRAJ, G.S.MADHUSUTHUN, S.VIJAYASARATHY, K.CHAKRAPANI. “A MICROKERNEL BASED SECURE OPERATING SYSTEM USING GENODE FRAMEWORK”. jatit.org. 2019年6月4日閲覧。
  17. ^Empirical Comparison of SCons and GNU Make”. 2019年6月4日閲覧。
  18. ^Genode OS Framework, un framework para el desarrollo de sistemas embebidos”. ResearchGate. 2019年6月4日閲覧。
  19. ^TU Dresden technical report TUD-FI06-07”. 2019年6月4日閲覧。
  20. ^NOVA Microhypervisor”. 2019年6月4日閲覧。
  21. ^SeL4 Community Projects”. sel4.systems. 2019年6月4日閲覧。
  22. ^Release notes 18.02”. 2019年6月4日閲覧。

関連項目

[編集]
  • HelenOS: マイクロカーネルベースのデスクトップオペレーティングシステム
  • QNX: マイクロカーネルにホストされたプロプライエタリーなUnix系オペレーティングシステム
  • Qubes OS: 仮想化によってセキュリティーを提供するデスクトップオペレーティングシステム
  • Subgraph (オペレーティングシステム)英語版: サンドボックスを使ってセキュリティーを提供するLinuxディストリビューション
  • Capability-based security

外部リンク

[編集]
ウィキメディア・コモンズには、Genodeに関連するメディアがあります。
公式ウェブページ
研究プロジェクト
概要
カーネル
アーキテクチャ
コンポーネント
プロセス管理
概念
スケジューリング
アルゴリズム
メモリ管理
リソース保護
ストレージアクセスと
ファイルシステム
一覧
Unix系
その他
その他
OpenPGPS/MIME
セキュア通信
OTR英語版
SSH
TLS/SSL
VPN
ZRTP英語版
P2P
D R A英語版
匿名化
ディスク暗号化英語版
ファイルシステム
セキュアOS
Service providers
教育
暗号通貨
Related topics
関連人物
https://ja.wikipedia.org/w/index.php?title=Genode&oldid=106328223」から取得
カテゴリ:
隠しカテゴリ:

[8]ページ先頭

©2009-2026 Movatter.jp