SpaceWASM – 宇宙船搭載用のWebAssemblyインタプリタ
NASA SpaceWASM – A flight-compliant WebAssembly interpreter
SpaceWASMは、宇宙船搭載用に設計されたWebAssembly 1.0仕様の実装です。主なコンポーネントとして、WASMバイナリをデコード・検証する「Decoder/Validator」と、線形メモリ上で動作し、ホスト環境との連携が可能な「Interpreter」があります。SpaceWASMは、WASMバイトコードを直接実行するのではなく、解釈に適した中間表現(IR)に変換します。宇宙船のフライトソフトウェア標準の要件を満たすため、ページ(固定サイズのブロック)単位の動的メモリ割り当てモデルを採用し、メモリ使用量の決定論、割り当て失敗時のパニック回避などを保証します。これは、標準的なRustのアロケータでは満たせない制約です。また、ピークメモリ使用量を削減し、ストリーミング実行を可能にするため、WASMバイナリ全体を単一のメモリ領域にロードする必要がないように最適化されています。SpaceWASMは、リソース制約の厳しい宇宙船環境をサポートするため、モジュール数、関数パラメータ数、スタック深度などに具体的な制約を課しています。性能評価にはCoremarkベンチマークを使用し、テストにはRustのユニットテスト、WASM 1.0 MVPのspectests、およびlibfuzzerとwasm-smithを用いたファジングインフラストラクチャが含まれます。現在はWASM MVPとミュータブルグローバルを実装しており、将来的な拡張の可能性もあります。
- SpaceWASMは宇宙船搭載用WebAssemblyインタプリタとして公開された
- 宇宙船フライトソフトウェア標準の要件を満たすため、ページ単位の動的メモリ割り当てモデルやリソース制約を実装している
SpaceWASMは、宇宙船のフライトソフトウェア向けに特化したWebAssemblyインタプリタであり、リソース制約・決定論的動作・信頼性という宇宙機特有の要件を満たす設計がなされている点が重要。宇宙機搭載ソフトウェアの標準化・移植性向上に貢献する基盤技術であり、今後の宇宙船ソフトウェアエコシステムの中核となり得る。ただし現時点では研究開発レベルのプロジェクトであり、具体的な採用企業・実機搭載の動きがあるわけではないため、長期的な技術動向として注視すべき。