Linuxカーネル内にWebAssemblyランタイムを実装し、ネイティブバイナリよりも高速に実行可能にする「Kernel-WASM」登場  2023年1月25日

代表的なWebAssemblyランタイムの1つであるWasmerを開発しているWasmer社は、
Linuxカーネル内にWebAssemblyランタイムを実装することで、安全かつ通常のLinuxバイナリよりも高速に
WebAssemblyバイナリを実行可能にするオープンソースソフトウェア「Kernel-WASM」を公開しています。

同社はLinuxカーネル内にWebAssemblyランタイムを実装する理由として、性能と柔軟性が得られるとしています。
性能面では、WebAssemblyランタイムとはそもそも保護された仮想マシン内で命令セットを実行するものであるため、
仮想マシンであるWebAssemblyランタイムをOS上のユーザー空間内で実装するよりも、カーネル内でランタイムを実装する方が、
システムコール時のコンテキストスイッチやメモリ内容のコピーといったオーバーヘッドをなくせるとしています。

また、カーネル内での実装によって低レイヤでの制御ができることで、仮想メモリのような操作やパケットフィルタリングのような
カーネルでのイベント処理など、ユーザー空間で実行されるソフトウェアでは困難かもしくは処理が重くなってしまうような機能も
高速に実行可能なソフトウェアが実現できるとしています。

---

ただしKernel-WASMはまだ開発中で、WASIの実装は進行中。Linuxカーネルイベントのepollのサポートによる非同期ネットワーキングに対応、
ソフトウェア障害を分離する完全なサンドボックスによる実行環境などは実装されており、
ネイティブバイナリを上回る高速化、WebAssembly内でのeBPFの実装などはこれから実現とのことです。

またLinuxカーネル内でコードを実行することは非常に危険であるため、現時点でスタックオーバーフローのチェックや
メモリ境界のチェックなどのセキュリティ確保のための仕組みはあるものの、今後さらにセキュリティ面の強化もしていくとしています。

https://www.publickey1.jp/blog/23/linuxwebassemblykernel-wasm.html