SpaceWASM: el intérprete de WebAssembly de la NASA para software de vuelo espacial

Fuentes: SpaceWASM: A flight-compliant WebAssembly interpreter for safety-critical execution

SpaceWASM es un intérprete del estándar WebAssembly 1.0 desarrollado por la NASA para ejecutar módulos WASM a bordo de naves espaciales. El proyecto resuelve un reto técnico concreto: adaptar la portabilidad y seguridad de WASM a entornos donde cada byte de memoria y cada ciclo de cómputo están estrictamente limitados y deben comportarse de forma determinista, condiciones habituales en el software de vuelo.

La herramienta se compone de un decodificador-validador y un intérprete. El decodificador lee el binario WASM en fragmentos (streaming), lo valida en una sola pasada y lo traduce a una representación intermedia optimizada para ejecución, sin necesidad de volver a recorrer el bytecode. El intérprete ejecuta esa representación sobre memoria lineal y se integra en el sistema anfitrión mediante funciones hook proporcionadas en tiempo de compilación.

El modelo de memoria es la pieza más singular. SpaceWASM prohíbe la desasignación antes de la asignación, fija los tamaños de cada subregión por adelantado, exige un uso de memoria determinista y prohíbe que un fallo de asignación provoque un panic. Como el sistema de asignación estándar de Rust no garantiza esas propiedades, el proyecto incluye sus propias estructuras de datos, único punto donde se utiliza Rust inseguro.

El software impone restricciones adicionales al estándar WASM: máximo 256 módulos y 256 módulos anfitrión, 255 palabras de 32 bits por parámetro de función, 65.535 palabras de variables locales, profundidad de anidamiento configurable y pila de valores configurable, entre otras. El proyecto se valida con los spectests oficiales de WASM 1.0, incorpora pruebas unitarias, bancos de pruebas con CoreMark para detectar regresiones de rendimiento y una infraestructura de fuzzing basada en libFuzzer y wasm-smith. Todo el código se distribuye bajo una licencia BSD modificada del California Institute of Technology.