# Self-Hosted WebAssembly Runtime
## 定義
自己ホスト型 WebAssembly ランタイム(self-hosted WebAssembly runtime)とは、Wasm バイトコード自体にコンパイルされ、他のホスト Wasm ランタイム上で動作する Wasm ランタイムのことである。ホストランタイムの上で動作する中間層としてアプリケーションバイトコードを実行することで、ホストランタイムの実装差異や最適化戦略(JIT/AOT/インタプリタ)の差異を抽象化できる。特にチェックポイント・リストア(C/R)やライブマイグレーションの文脈では、ホストランタイムではなく自己ホスト型ランタイムが作成する VM の内部状態を対象とすることで、ランタイム中立かつ最適化戦略中立な実行状態の保存・復元を実現する。(Source: [[@2025__Mid4CC__Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint-Restore in Edge-Cloud Continuum]] §1, §3)
## 横断的知見
- **自己ホスト型ランタイムは、ランタイム改変やバイトコード改変とは異なる第 3 のランタイム中立化アプローチである**: EdgeSys ’24 や CANDARW 2025 は、既存ランタイムを改変して内部状態を相互変換するか、Wasm バイトコードに C/R コードを挿入するアプローチを採用した。対照的に、Mid4CC 2025 の Chiwawa は、Wasm にコンパイルした自己ホスト型ランタイムを中間層とし、ホストランタイムの改変なしに実行状態を統一する。これにより、既存ランタイムをそのまま利用しつつ、任意の実行点での C/R を実現する。(Source: [[@2025__Mid4CC__Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint-Restore in Edge-Cloud Continuum]] §2.3, §3.1)
- **自己ホストを前提とした設計は、汎用の自己ホスト可能ランタイムをそのまま使うより性能面で優位になりうる**: Chiwawa は既存の自己ホスト可能ランタイム Wizard と比較して、pi-Leibniz で約 1.3 倍、n-body で約 1.4 倍高速であり、メモリ使用量も 71〜85%削減した。これは、スタック操作のマージ、SFI の省略、WASI のパススルーなど、自己ホストに伴う重複処理を設計時から削減した結果である。(Source: [[@2025__Mid4CC__Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint-Restore in Edge-Cloud Continuum]] §3.3, §5.1)
- **自己ホストのコストは、ホスト直接実行に対して大きいが、ランタイム計装型 C/R と比較すると許容範囲内になりうる**: Chiwawa の wasmtime 上での実行は sqlite-bench で最大 426.95 倍のオーバーヘッドを示したが、Wizard のランタイム計装を用いた C/R 擬似評価と比較すると最大 2.16 倍に留まった。これは、内部実行状態のトレースや変換自体が高コストであり、自己ホストが必ずしも最悪の選択ではないことを示唆する。(Source: [[@2025__Mid4CC__Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint-Restore in Edge-Cloud Continuum]] §5.2, §5.3)
- **自己ホスト型 C/R は一貫して小さな実行状態を達成できる**: ホストランタイムの内部実装に依存せず、Chiwawa VM の状態のみを C/R 対象とすることで、wasmtime・WAMR(Interpreter/AOT)・WasmEdge のいずれをホストとしても 1076 KB の一定したチェックポイントサイズを達成した。CRIU(プロセス全体の C/R)と比較して 1 〜 3 桁小さい。(Source: [[@2025__Mid4CC__Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint-Restore in Edge-Cloud Continuum]] §5.3)
## 未解決の問い
- 自己ホスト型ランタイムの二重ランタイム実行オーバーヘッドを、I/O 集約型ワークロードでどこまで削減できるか。特にストレージエンジンやトランザクション処理の二重化を避ける手法はあるか。
- 自己ホスト型ランタイムの SFI 省略によるセキュリティトレードオフを、形式検証やコンパイラ保証でどこまで緩和できるか。
- WASI を介した OS 依存資源(ソケット、ファイルディスクリプタ)を含むアプリケーションに対して、自己ホスト型 C/R をどう拡張するか。
- 自己ホスト型ランタイムが多数のホストランタイム上で動作する際、各ホストの最適化が Chiwawa のバイトコードにどう反映され、アプリケーションバイトコードへの影響をどう隔離するか。
- 自己ホスト型アプローチと、ランタイム改変型・バイトコード改変型アプローチは、どのワークロード特性や運用制約下で互いに優位か。
## 関連
- ソース: [[@2025__Mid4CC__Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint-Restore in Edge-Cloud Continuum]]
- 概念: [[WebAssembly]] / [[ランタイム中立チェックポイント]] / [[Application Checkpointing]] / [[VM Migration]] / [[Edge-cloud Collaboration]]
- エンティティ: [[Chiwawa]] / [[Wizard]] / [[WasmEdge]] / [[WAMR]] / [[CRIU]]
- 関連 MOC: [[System Engineering - MOC]] / [[Software Engineering - MOC]]
## 出典
- [[@2025__Mid4CC__Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint-Restore in Edge-Cloud Continuum]](§1, §2.3, §3, §3.3, §5.1, §5.2, §5.3)