BT

Ready for InfoQ 3.0? Try the new design and let us know what you think!

Xen Project,Mirage 0S 1.0をリリース

| 作者: Chris Swan フォローする 635 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2014年1月5日. 推定読書時間: 4 分 |

原文(投稿日:2013/12/23)へのリンク

Mirage OSは "クラウドオペレーティングシステム" である。セキュリティ上の脆弱性回避と,単一目的の仮想アプライアンスの開発容易化による普及を目標とする。アプリケーションは関数型プログラム言語OCamlで開発され,Xen ハイパーバイザ上で直接動作するスタンドアロンの "ユニカーネル" にコンパイルされる。従来型のオペレーティングシステムを排除し,その構造を代替する言語ライブラリに置き換えることによって,従来よりコンパクトで高速に動作し,攻撃対象領域の少ないアプリケーションを実現する。開発したアプリケーションは,AmazonのEC2やRackspace Cloudのような,Xenベースのパブリッククラウドに直接デプロイすることも可能だ。

Mirage OSのアプローチはWebサーバやDNSサーバ,SDN (Software Defined Networking) などのインフラストラクチャソフトウェア開発者たちにアピールするかも知れない。コントリビュータであるケンブリッジ大学の Anil Madhavapeddy氏は,次のようにコメントしている:

Mirageは,OCamlに見られるような現代的モジュラプログラミング技術を用いて,特殊なインフラストラクチャアプリケーションを迅速に構築するという,私たちの夢を表現したものです。これまでに高レベル言語 (大部分はJavaとScala) で記述されたデータセンタツールは数多くありました。その底辺の部分に至るまで関数プログラミング技術を適用したならば,どのようなメリット(とデメリット!) があるのかを追求したいと思ったのです。

システムは現在Xenハイパーバイザを対象としているが,Unixユーザ空間用のバイナリのビルドも可能だ。さらにプロジェクトには,FreeBSDカーネルモジュール用の試験的実装,NS3ネットワークシミュレータ,JavaScriptなどもある。Anil Madhavapeddy氏はさらに言う:

VMWareやKVM, Hyper-Vといった他のハイパーバイザへの移植は,単純に適当なブートローダと仮想デバイスドライバを記述するだけの問題です。これはシステムプログラミングに足を踏み入れようという人にはうってつけのプロジェクトですので,私たちもメールリスト(mirageos-devel@lists.xenproject.org)を通じて,積極的に指導したいと思っています。

Mirage OSが大きな可能性も持つ応用分野は,コンパクトでセキュアな "ドメイン0",すなわちハイパーバイザの管理に使用される特別なドメインの提供だ。Anil Madhavapeddy氏は,これがMirage開発の背景となった大きな理由のひとつだとしている:

XenServerディストリビューションではここ数年間,単一のモノシリックな "ドメイン0" の必要性を着実に排除しています。Mirageが提供するのは,そのパズルの最後のピース – これまでの管理ツールスタックを,標準的な分散システムプロトコルで相互に通信してコンセンサスを達成する,専門化したマイクロカーネルの集まりに転換するためのプログラミング環境なのです。これに伴って,セキュアなクラウドを構築する上で達成すべき水準は確実に高くなるでしょう。クラスタ内の仮想マシンに配置されたすてべのユーザデータのキーが,管理ツールスタックに保持されることになるからです。

OCamlを選択した理由の質問に対して,同じくケンブリッジ大学のコントリビュータであるRichard Mortier氏は言う:

理由はいくつかあります – 関数型言語としての実績,活発なコミュニティ,ランタイムへの移植が非常に効率的かつ比較的簡単,Xen管理スタックにOCamlで記述された部分がかなりある,強力なモジュールシステムによって効果的なモジュール化システムが実現可能,といったところでしょうか。

TEE (Trusted Execution Environment) との関連性の有無についての質問には,Citrix XenServerシステムアーキテクトのDavid Scott氏が次のような説明をしている:

私にとってTE(Trusted Execution)には,(1) 意図したバイナリが実行中であることをどうやって確認するのか (2) 意図した動作をコードが行っていることをどうやって確認するのか,という2つの重要な側面があります。Measured Bootのようなテクニックは前者,つまり適切なバイナリの実行をチェックすることに注目しています。これに対してMirageは後者を,次のような方法で支援します。
  • 必要なライブラリのみをリンクすることで,攻撃対象領域を最小化する。
  • コンフィギュレーションをどこか外部の(おそらくは変更可能な)ファイルシステムに置くのではなく,アプリケーションにリンクさせる。
  • メモリ破壊やバッファオーバーフロー攻撃といった類いの影響を受けないコード量を最大化する。

Mirage OSチームでは,組み込みアプリケーションや "モノのインターネット(Internet of Things)" といったユースケースも対象に含めている。Anil Madhavapeddy氏は,"OCamlコンパイラ自体は,非常に小さなターゲット (PIC18マイクロコントローラのような) にも容易に対応できる"ものの,"ビルドシステム関連で多くの作業が必要になる" ことを指摘する。開発チームは先日の休暇を利用して,自分たちのWebページをMirage OSベースのサーバに移行した。その中には,バックエンドとしてRaspberry Piを使用したものもある。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション
BT