ZeroVM
作者 | Camuel Gilyadov、Constantine Peresypkin、Dmitri Bortok |
---|---|
開発元 | LiteStack (Rackspaceに買収された) |
最新評価版 |
0.9.4
/ 2013年11月26日 |
リポジトリ | |
プログラミング 言語 | C, アセンブリ |
対応OS | Linux |
プラットフォーム | x86-64 |
サポート状況 | Active |
種別 | アプリケーション仮想化 |
ライセンス | Apacheライセンス 2.0 |
公式サイト |
zerovm |
ZeroVMは、オープンソースの軽量な仮想化とサンドボックス化の技術である。 ZeroVMは、Google Native Clientのプラットフォームを利用して、一つのプロセスを仮想化する。 一つのプロセスだけを仮想化するため、(オペレーティングシステム全体を仮想化するのとは違い)起動のオーバーヘッドは5 ms台である。[1]
サンドボックス化
[編集]ZeroVM creates a sandbox around a single process,[2] ZeroVMは、Google Native Client (NaCl)ベースの技術を使い、一つのプロセスのためにサンドボックスを作成する。 そのサンドボックスは、実行されるアプリケーションがホストオペレーティングシステム上のデータにアクセスできないことが保証されている。 そのため、信頼できないコードを実行しても安全である。 ZeroVM内で実行されるプログラムは、まずNaClプラットフォーム用にクロスコンパイルされなくてはならない。 ZeroVMはx86-64プラットフォーム向けにコンパイルされたNaClコードのみ実行することができ、 ポータブルNaCl (PNaCl)フォーマットのコードは実行できない。
ZeroVM内で実行されるコードは、通常のシステムコールを呼び出すことはできず、ホスト環境と通信することもできない。 外部との全ての通信はチャネルを使って行われ、チャネルはプログラムが実行されるより前に定義しておかなくてはならない。 サンドボックスの外側では、チャネルはローカルファイルやパイプ、他のZeroVMインスタンスに接続することができる。 [3] サンドボックスの内側では、チャネルはファイル記述子として見えている。 サンドボックス化されたプログラムは、チャネルを通じて双方向に読み書きを実行可能であるが、チャネルがホストで何に接続されているかを知ることはできない。
ZeroVM向けにコンパイルされたプログラムは、ZeroVMランタイムライブラリー(ZRT)を使うこともできる。
このライブラリーは、POSIX環境をプログラムに提供することを目的としている。
[4]
これは、Cの標準ライブラリーを部分的に置き換えることで実現されている。
特に、ZRTはCのファイル入出力関数であるfopen
とopendir
などをメモリー内のファイルシステムを操作する関数に置き換える。
ルートファイルシステムはtarアーカイブファイルで提供される。
これによりプログラムからは、通常のUnix環境が存在するように見える。
ZRTは、Cの日付時刻関数であるtime
なども置き換え、プログラムに固定的で決定論的な環境を提供する。
一定の入力を与えると、毎回同じ結果を得られることが保証されている。
関数型言語でないプログラムであっても、この制約付きの環境であれば、決定論的に動作する。
[5]
これによりプログラムの挙動は固定され、デバッグが容易になる。
Swiftとの統合
[編集]ZeroVMは、OpenStackの分散オブジェクトストレージコンポーネントであるSwiftと統合されている。 [6] SwiftにZeroCloudミドルウェアをインストールすると、クライアントはSwiftにZeroVMプログラムをリクエストできるようになる。 そのプログラムはストレージノードで直接実行される。 つまり、プログラムがデータに直接アクセスできると言うことである。
歴史
[編集]ZeroVMはイスラエルのスタートアップであるLiteStackによって開発された。
zewrovm
Gitリポジトリーの最初のコミットは、2011年11月に行われている。
[7]
LiteStackは2013年10月にRackspaceに買収された。
[1][8][9]
ZeroVMは、Techstars Cloud 2013インキュベータープログラムに参加し、500,000米ドルを得た。
[10][11]
最初のZeroVM Design Summitは、2014年1月にテキサス大学サンアントニオ校で開催された。[12]
関連項目
[編集]- Google Native Client
- LXC (LinuX Containers)
- Docker
脚注
[編集]- ^ a b Lindberg, Van. “ZeroVM: Smaller, Lighter, Faster”. Rackspace Blog. 14 April 2014閲覧。
- ^ Yegulalp, Serdar (23 October 2013). “ZeroVM virtualizes apps, not machines”. InfoWorld 14 April 2014閲覧。
- ^ “ZeroVM Channels”. 14 April 2014閲覧。
- ^ “ZRT Readme”. 14 April 2014閲覧。
- ^ “ZeroVM Architecture”. 14 April 2014閲覧。
- ^ “ZeroCloud”. 14 April 2014閲覧。
- ^ Gilyadov, Camuel. “First Commit”. GitHub. 18 April 2014閲覧。
- ^ Shamah, David (October 24, 2013). “Rackspace picks up ZeroVM's 'built-for-cloud' hypervisor”. ZDNet 14 April 2014閲覧。
- ^ Clark, Jack (25 October 2013). “Rackspace goes to Israel, picks up slick new weapon for cloud wars”. The Register. 14 April 2014閲覧。
- ^ Idan, Henn (3 November 2013). “Israeli ZeroVM acquired by RackSpace”. Geektime. 14 April 2014閲覧。
- ^ Lorek, Laura (19 April 2013). “ZeroVM Creates Software for Cloud Computing”. Silicon Hills News. 14 April 2014閲覧。
- ^ Rackspace. “ZeroVM Design Summit”. YouTube. 18 April 2014閲覧。