デジタル人材の育成

未踏IT人材発掘・育成事業:2023年度採択プロジェクト概要(上田・野崎PJ)

公開日:2023年6月19日

1.担当プロジェクトマネージャー

  • 曾川 景介(株式会社メルコイン取締役CINO)

2.採択者氏名

  • 上田 蒼一朗(京都大学工学部情報学科)
  • 野崎 愛(東京大学情報理工学系研究科システム情報学専攻)

3.採択金額

  • 2,736,000円

4.プロジェクト名

  • Wasmを実行するunikernelとWasmコンパイラ

5.関連Webサイト

  • なし

6.申請プロジェクト概要

本プロジェクトではWasm(WebAssembly)の実行に特化したunikernelと、独自のWASI(WebAssembly System Interface)実装をWasmバイナリに挿入できるWasmコンパイラを開発する。

unikernelはプロセスをただ1つだけ持つという特殊な軽量OSであり、サーバレスコンピューティングのカーネルとして非常に適している。ところが、unikernelはその互換性の低さの問題で今まで日の目を浴びることがなかった。

Wasmとはウェブブラウザ上で実行することができる新しいバイナリコード(仮想命令セット)である。従来ウェブブラウザ上ではJavaScriptで記述されたプログラムが動かされてきたが、Wasmはバイナリコードであるため、JavaScriptよりも高速に動作する。WasmバイナリはC, C#, Zig, Rust, Go といった様々なプログラミング言語からコンパイルして生成することができる。昨今はLinuxなどのOS上にWasmランタイムを実装してそれをサンドボックス化することで、Wasmバイナリの動作環境をウェブブラウザ以外にも広げようとする動きもある。

そこで本プロジェクトではWasmバイナリを実行できるunikernelを開発することで、unikernelの軽量さを保ちつつ互換性の問題を解決する。これにより、クラウドにおけるFaaSを用いた処理の高速化・高密度化を可能にする。さらには、他のWasmランタイムなどと組み合わせることで、新たなIoTアーキテクチャが実現することが期待される。

また本unikernelの開発の過程で、WASIの実装とWasmのバイナリを繋げるためのWasmコンパイラを開発する。WASIとはWasmに対してシステムのリソースを提供するAPIである。本コンパイラはWasmバイナリに対して独自のWASI実装を挿入することを可能にすることで、Wasmバイナリを実行できる新たなカーネルの開発を促進する。さらには、Wasm/WASIがカーネルに対する標準的なAPI/ABIとして普及し、特定のアプリケーションを動作させることに特化したカーネルの開発がよりカジュアルになる世界を実現する。

7.採択理由

本提案はWasm(WebAssembly)を実行できるunikernelとコンパイラの開発を行うものであり、期待される具体的な効果として以下が挙げられる。

  • 本提案をベースとしたPaaSプラットフォーム
  • サーバレスコンピューティングでの活用
  • Functional as a Serviceなどのクラウドコンピューティングに新しい実装形態を提案する
  • コンテナレイヤーにおけるLinuxカーネル依存からの脱却(あるいは、Linuxカーネルへの依存度の低いプログラムをわざわざLinuxカーネル上で実行することのオーバヘッドの低減)

dotCloud, Inc.(現Docker, Inc.)の創設者でdockerの作者であるSolomon Hykes氏も、2008年にWasm/WASIがあればdockerを作っていなかっただろうという主旨の発言をTwitterでしており、まさに本提案がdockerの作者が描いたミッシングピースを埋めるものになると考えられる。

また、本提案についてさらに付け加えるべきことは、具体的な成果物以外にももう一つの重要な成果が生まれてくると考えられることである。本提案の実装を通じてシステムインターフェースの標準化への貢献が期待できる。Wasmを実行できる環境を広げることでWasmをさらにどこでも実行できるようにし、コンピューティングの未来を切り開いてほしい。

更新履歴

  • 2023年6月19日

    2023年度採択プロジェクト概要(上田・野崎PJ)を掲載しました。