デジタル人材の育成
公開日:2023年6月19日
本プロジェクトでは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として普及し、特定のアプリケーションを動作させることに特化したカーネルの開発がよりカジュアルになる世界を実現する。
本提案はWasm(WebAssembly)を実行できるunikernelとコンパイラの開発を行うものであり、期待される具体的な効果として以下が挙げられる。
dotCloud, Inc.(現Docker, Inc.)の創設者でdockerの作者であるSolomon Hykes氏も、2008年にWasm/WASIがあればdockerを作っていなかっただろうという主旨の発言をTwitterでしており、まさに本提案がdockerの作者が描いたミッシングピースを埋めるものになると考えられる。
また、本提案についてさらに付け加えるべきことは、具体的な成果物以外にももう一つの重要な成果が生まれてくると考えられることである。本提案の実装を通じてシステムインターフェースの標準化への貢献が期待できる。Wasmを実行できる環境を広げることでWasmをさらにどこでも実行できるようにし、コンピューティングの未来を切り開いてほしい。
2023年6月19日
2023年度採択プロジェクト概要(上田・野崎PJ)を掲載しました。