Skip to content
research

Le nouveau code de la NASA est... une technologie de navigateur ?

La NASA vient de rendre open-source le code qui fera fonctionner les futurs engins spatiaux, et ce n'est pas ce que vous croyez. Ce n'est pas juste une nouvelle norme ; c'est une solution radicale à un problème de validation à un milliard de dollars qui handicape les missions spatiales depuis des décennies.

Aki Tanaka
Le nouveau code de la NASA est... une technologie de navigateur ?

Le goulot d'étranglement à un milliard de dollars en orbite

La flight software validation des engins spatiaux représente un obstacle astronomique, devenant souvent un goulot d'étranglement à un milliard de dollars pour l'innovation. L'introduction d'une seule nouvelle fonctionnalité, aussi mineure soit-elle, nécessite une revérification complète du système sur l'ensemble de l'engin spatial. Ce processus exhaustif exige un accès étendu aux bancs d'essai et peut prendre des années, créant d'immenses retards et faisant grimper les coûts.

Historiquement, les instructions pour des tâches de mission spécifiques, comme piloter un rover martien ou articuler précisément son bras robotique, étaient définies dans des command sequences personnalisées. Ces séquences existaient en dehors du logiciel de vol principal et leurs implémentations variaient radicalement d'une mission à l'autre. Chaque nouvelle entreprise spatiale générait donc une autre base de code sur mesure, fragmentée et coûteuse, entravant la standardisation et la réutilisabilité.

Cette approche sur mesure a conduit à un dilemme critique : faire progresser l'autonomie des engins spatiaux signifiait intégrer de nouveaux logiciels complexes, mais le paradigme de validation existant rendait cela extrêmement lent et risqué. Le Jet Propulsion Laboratory de la NASA avait besoin de toute urgence d'une méthode pour déployer des autonomy software innovants de manière sûre et efficace, sans risquer des missions à plusieurs milliards de dollars ou rester piégé dans des cycles de validation interminables de plusieurs années qui étouffaient les progrès.

Un bac à sable de navigateur pour Mars

WebAssembly, ou Wasm, n'arrive pas comme un gadget de navigateur mais comme un format de bytecode puissant et indépendant du matériel — un traducteur universel pour les instructions informatiques. Il offre un environnement d'exécution standardisé, permettant à divers composants logiciels de fonctionner de manière cohérente sur des architectures de processeurs très différentes sans nécessiter de recompilation complète.

Cette portabilité inhérente est accompagnée d'une fonctionnalité critique : un sandboxing robuste. Wasm crée un conteneur sécurisé et isolé pour le code de « moindre confiance », empêchant fondamentalement celui-ci d'interférer avec les systèmes de vol principaux ou d'accéder à de la mémoire et des ressources de calcul non autorisées.

Pour la NASA, cette isolation change la donne. Le logiciel de vol principal contrôle strictement la mémoire allouée et le temps CPU du module isolé, surveillant méticuleusement son exécution du début à la fin. Ce changement de paradigme signifie que l'ajout de nouvelles capacités, comme un algorithme de navigation mis à jour, ne déclenche plus de processus de revérification complète du système sur plusieurs années.

En apportant ce modèle d'exécution sécurisé au cosmos, le Jet Propulsion Laboratory de la NASA a développé SpaceWasm. Cet interpréteur conçu à cet effet traduit les binaires Wasm directement sur les engins spatiaux, adaptant le bytecode compact aux environnements aux ressources limitées. SpaceWasm n'exécute pas le bytecode directement ; au lieu de cela, il le décode en un format intermédiaire plus rapide en utilisant une quantité de mémoire fixe et mesurable, garantissant une utilisation déterministe des ressources, cruciale pour les systèmes critiques de la mission.

Au cœur de la conception sécurisée de SpaceWasm

La conception de SpaceWasm privilégie la prévisibilité à la flexibilité, une condition non négociable pour les opérations spatiales. Il évite d'exécuter directement le bytecode compact WebAssembly. Au lieu de cela, le moteur décode d'abord le bytecode en une intermediate representation (IR) interne plus rapide. Cette étape de prétraitement critique consomme une quantité de mémoire fixe et mesurable, garantissant l'efficacité de l'exécution sans les pics de mémoire imprévisibles courants dans les systèmes dynamiques. Cette approche déterministe empêche la contention des ressources sur le matériel critique de la mission.

Contrairement aux logiciels classiques, SpaceWasm utilise un allocateur de mémoire dynamique personnalisé avec un système déterministe sans panique. La mémoire est gérée via des pages mémoire de taille fixe, qui ne peuvent pas être redimensionnées dynamiquement en cours d'opération. Les sous-régions au sein de ces pages ont également des tailles prédéterminées et immuables, éliminant le risque de défaillances d'allocation inattendues qui pourraient paralyser un vaisseau spatial. Ce modèle de mémoire « sans surprise » est fondamental pour sa fiabilité.

Il ne s'agit pas d'un runtime WebAssembly à usage général ; c'est un moteur hautement spécialisé et méticuleusement conçu au Jet Propulsion Laboratory de la NASA. Écrit en Rust pour une sécurité et une concurrence maximales, SpaceWasm impose des limites opérationnelles strictes. Il prend en charge un maximum de 256 modules, dispose d'une profondeur de pile configurable et utilise un adressage de page 24 bits. Pour plus de détails techniques sur sa conception robuste et ses tests complets, explorez le code source du projet : nasa/spacewasm: A flight-compliant WebAssembly interpreter. Cette ingénierie rigoureuse garantit la fiabilité là où l'échec n'est pas une option.

Cet article vous plaît ? Recevez-en un comme celui-ci chaque matin.

un e-mail par jour · désinscription en deux clics · aucun traqueur tiers

La nouvelle norme pour le code hors planète

La capacité d'exécution universelle promet une portabilité de code sans précédent pour les futures missions. Le logiciel d'un seul instrument, une fois validé, pourrait être déployé sur divers vaisseaux spatiaux voyageant vers Mars, Jupiter, ou même au-delà du système solaire. Cette approche standardisée élimine le fardeau historique des réécritures de logiciels sur mesure pour chaque nouvelle mission, réduisant considérablement les cycles de développement et les coûts de validation.

Le Jet Propulsion Laboratory de la NASA a fait de SpaceWasm un projet open-source, accessible sur GitHub. Cette transparence favorise la collaboration mondiale, invitant les contributions d'autres agences spatiales, comme le DLR allemand, et de la communauté technologique au sens large. Un tel modèle ouvert accélère le développement d'un écosystème logiciel robuste et partagé pour l'espace, permettant une innovation plus large.

SpaceWasm marque un changement de paradigme fondamental dans l'ingénierie logicielle spatiale. Il permet un processus de développement plus agile et plus rentable, libéré des goulots d'étranglement liés à la re-vérification pluriannuelle des logiciels de vol traditionnels. En fin de compte, cette innovation libère le potentiel de la prochaine génération d'exploration spatiale hautement autonome, étendant la portée de l'humanité à travers le cosmos avec une vitesse et une capacité accrues.

Questions fréquemment posées

Qu'est-ce que SpaceWasm ?

SpaceWasm est un interpréteur WebAssembly (Wasm) spécialisé développé par le Jet Propulsion Laboratory de la NASA. Il est conçu pour exécuter en toute sécurité du code en bac à sable sur des vaisseaux spatiaux aux ressources limitées, et non dans des navigateurs Web.

Pourquoi la NASA utilise-t-elle WebAssembly dans l'espace ?

La NASA utilise WebAssembly pour standardiser les logiciels de commande entre différentes missions et pour exécuter en toute sécurité du nouveau code moins fiable dans un bac à sable. Cette approche réduit considérablement le temps et le coût de plusieurs millions de dollars liés à la validation des logiciels de vol.

En quoi SpaceWasm est-il différent des runtimes WebAssembly standard ?

SpaceWasm est un runtime hautement contraint et non standard, conçu pour la sécurité et le déterminisme. Il dispose d'un allocateur de mémoire unique sans panique et convertit le bytecode Wasm en un format plus rapide, ce qui le rend adapté aux systèmes critiques où l'échec n'est pas une option.

SpaceWasm est-il open source ?

Oui, le JPL de la NASA a rendu SpaceWasm open-source. Le projet est écrit dans le langage de programmation Rust et est disponible sur GitHub pour la contribution et l'utilisation par la communauté.

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$500 · AI tools & software only

Pour les builders

Cette page travaille pour l’outil de quelqu’un d’autre.

Les agents IA la lisent. Des acheteurs y arrivent. Elle répond en huit langues et via MCP. Votre outil peut avoir la sienne — en ligne en 24 heures.