Skip to content
research

Der neue Code der NASA ist... Browser-Technologie?

Die NASA hat gerade den Code als Open Source veröffentlicht, der zukünftige Raumfahrzeuge steuern wird, und er ist nicht das, was Sie denken. Dies ist nicht nur ein neuer Standard; es ist eine radikale Lösung für ein Milliarden-Dollar-Validierungsproblem, das Weltraummissionen seit Jahrzehnten plagt.

Aki Tanaka
Der neue Code der NASA ist... Browser-Technologie?

Der Milliarden-Dollar-Engpass im Orbit

Die flight software validation von Raumfahrzeugen stellt eine astronomische Hürde dar und wird oft zu einem Milliarden-Dollar-Engpass für Innovationen. Selbst die Einführung einer einzigen neuen Funktion, wie geringfügig sie auch sein mag, erfordert eine vollständige System-Neuverifizierung des gesamten Raumfahrzeugs. Dieser erschöpfende Prozess erfordert umfangreichen Zugang zu Testumgebungen und kann Jahre in Anspruch nehmen, was zu enormen Verzögerungen und steigenden Kosten führt.

Historisch gesehen wurden die Anweisungen für spezifische Missionsaufgaben, wie das Steuern eines Mars-Rovers oder die präzise Artikulation seines Roboterarms, in benutzerdefinierten command sequences definiert. Diese Sequenzen existierten außerhalb der Kern-Flugsoftware, und ihre Implementierungen variierten drastisch von einer Mission zur nächsten. Jedes neue Weltraumvorhaben erzeugte daher eine weitere maßgeschneiderte, fragmentierte und teure Codebasis, was Standardisierung und Wiederverwendbarkeit behinderte.

Dieser maßgeschneiderte Ansatz führte zu einem kritischen Dilemma: Die Weiterentwicklung der Autonomie von Raumfahrzeugen bedeutete die Integration komplexer neuer Software, aber das bestehende Validierungsparadigma machte dies unerschwinglich langsam und riskant. Das Jet Propulsion Laboratory der NASA benötigte dringend eine Methode, um neuartige autonomy software sicher und effizient bereitzustellen, ohne Multi-Milliarden-Dollar-Missionen zu gefährden oder in endlosen, mehrjährigen Validierungszyklen gefangen zu sein, die den Fortschritt erstickten.

Eine Browser-Sandbox für den Mars

WebAssembly, oder Wasm, kommt nicht als Browser-Spielerei, sondern als leistungsstarkes, hardwareunabhängiges Bytecode-Format – ein universeller Übersetzer für Computerbefehle. Es bietet eine standardisierte Ausführungsumgebung, die es ermöglicht, verschiedene Softwarekomponenten konsistent über grundlegend unterschiedliche Prozessorarchitekturen hinweg zu betreiben, ohne dass eine vollständige Neukompilierung erforderlich ist.

Diese inhärente Portabilität ist mit einer kritischen Funktion gebündelt: robustes Sandboxing. Wasm schafft einen sicheren, isolierten Container für Code mit 'geringerem Vertrauen' und verhindert grundlegend, dass dieser die Kern-Flugsysteme stört oder auf nicht autorisierten Speicher und Rechenressourcen zugreift.

Für die NASA ist diese Isolierung ein Wendepunkt. Die Haupt-Flugsoftware kontrolliert streng den zugewiesenen Speicher und die CPU-Zeit des sandboxed Moduls und überwacht akribisch dessen Ausführung von Anfang bis Ende. Dieser Paradigmenwechsel bedeutet, dass das Hinzufügen neuer Funktionen, wie etwa eines aktualisierten Navigationsalgorithmus, keine jahrelangen, systemweiten Neuverifizierungsprozesse mehr auslöst.

Um dieses sichere Ausführungsmodell in den Kosmos zu bringen, entwickelte das Jet Propulsion Laboratory der NASA SpaceWasm. Dieser speziell entwickelte Interpreter übersetzt Wasm-Binärdateien direkt auf Raumfahrzeugen und passt den kompakten Bytecode an ressourcenbeschränkte Umgebungen an. SpaceWasm führt Bytecode nicht direkt aus; stattdessen dekodiert es ihn in ein schnelleres, intermediäres Format unter Verwendung einer festen, messbaren Speichermenge, was eine deterministische Ressourcennutzung gewährleistet, die für missionskritische Systeme entscheidend ist.

Das ausfallsichere Design von SpaceWasm

Das Design von SpaceWasm priorisiert Vorhersehbarkeit gegenüber Flexibilität, was für den Betrieb von Raumfahrzeugen nicht verhandelbar ist. Es vermeidet die direkte Ausführung von kompaktem WebAssembly-Bytecode. Stattdessen dekodiert die Engine den Bytecode zunächst in eine schnellere, interne intermediate representation (IR). Dieser kritische Vorverarbeitungsschritt verbraucht eine feste, messbare Speichermenge und gewährleistet Laufzeiteffizienz ohne die unvorhersehbaren Speicherspitzen, die in dynamischen Systemen üblich sind. Dieser deterministische Ansatz verhindert Ressourcenkonflikte auf missionskritischer Hardware.

Im Gegensatz zu typischer Software verwendet SpaceWasm einen benutzerdefinierten dynamischen Speicher-Allocator mit einem deterministischen, Panic-freien System. Der Speicher wird durch fest definierte Speicherseiten verwaltet, deren Größe während des Betriebs nicht dynamisch geändert werden kann. Teilbereiche innerhalb dieser Seiten haben ebenfalls vorbestimmte, unveränderliche Größen, was das Risiko unerwarteter Allokationsfehler eliminiert, die ein Raumfahrzeug lahmlegen könnten. Dieses „No-Surprises“-Speichermodell ist grundlegend für seine Zuverlässigkeit.

Dies ist keine WebAssembly-Laufzeitumgebung für allgemeine Zwecke; es ist eine sorgfältig entwickelte, hochspezialisierte Engine, die am Jet Propulsion Laboratory der NASA entwickelt wurde. Geschrieben in Rust für maximale Sicherheit und Nebenläufigkeit, setzt SpaceWasm strenge Betriebsgrenzen. Es unterstützt maximal 256 Module, bietet eine konfigurierbare Stapeltiefe und nutzt 24-Bit-Seitenadressierung. Weitere technische Details zu seinem robusten Design und den umfassenden Tests finden Sie im Quellcode des Projekts: nasa/spacewasm: A flight-compliant WebAssembly interpreter. Dieses rigorose Engineering gewährleistet Zuverlässigkeit dort, wo ein Ausfall keine Option ist.

Gefällt Ihnen der Artikel? Erhalten Sie jeden Morgen einen wie diesen per E-Mail.

eine E-Mail pro Tag · Abmeldung mit zwei Klicks · kein Tracking durch Dritte

Der neue Standard für Code außerhalb unseres Planeten

Die universelle Laufzeitfähigkeit verspricht eine beispiellose Code-Portabilität für zukünftige Missionen. Die Software eines einzelnen Instruments könnte nach der Validierung auf verschiedenen Raumfahrzeugen eingesetzt werden, die zum Mars, Jupiter oder sogar über das Sonnensystem hinaus reisen. Dieser standardisierte Ansatz beseitigt die historische Last maßgeschneiderter Software-Neuschreibungen für jede neue Mission und reduziert Entwicklungszyklen sowie Validierungskosten drastisch.

Das Jet Propulsion Laboratory der NASA hat SpaceWasm zu einem Open-Source-Projekt gemacht, das auf GitHub zugänglich ist. Diese Transparenz fördert die globale Zusammenarbeit und lädt Beiträge von anderen Raumfahrtbehörden, wie dem DLR in Deutschland, und der breiteren Tech-Community ein. Ein solches offenes Modell beschleunigt die Entwicklung eines robusten, gemeinsamen Software-Ökosystems für den Weltraum und ermöglicht breitere Innovationen.

SpaceWasm signalisiert einen grundlegenden Paradigmenwechsel in der Softwaretechnik für die Raumfahrt. Es ermöglicht einen agileren und kosteneffizienteren Entwicklungsprozess, frei von den mehrjährigen Engpässen bei der Neuverifizierung traditioneller Flugsoftware. Letztendlich erschließt diese Innovation das Potenzial für die nächste Generation hochgradig autonomer Weltraumforschung und erweitert die Reichweite der Menschheit im Kosmos mit größerer Geschwindigkeit und Leistungsfähigkeit.

Häufig gestellte Fragen

Was ist SpaceWasm?

SpaceWasm ist ein spezialisierter WebAssembly (Wasm)-Interpreter, der vom Jet Propulsion Laboratory der NASA entwickelt wurde. Er wurde entwickelt, um sicher in einer Sandbox isolierten Code auf ressourcenbeschränkten Raumfahrzeugen auszuführen, nicht in Webbrowsern.

Warum verwendet die NASA WebAssembly im Weltraum?

Die NASA verwendet WebAssembly, um die Befehlssoftware über verschiedene Missionen hinweg zu standardisieren und neuen Code mit geringerem Vertrauensgrad sicher in einer Sandbox auszuführen. Dieser Ansatz reduziert die Zeit und die millionenschweren Kosten für die Validierung von Flugsoftware drastisch.

Wie unterscheidet sich SpaceWasm von Standard-WebAssembly-Laufzeitumgebungen?

SpaceWasm ist eine stark eingeschränkte, nicht standardisierte Laufzeitumgebung, die auf Sicherheit und Determinismus ausgelegt ist. Sie verfügt über einen einzigartigen, Panic-freien Speicher-Allocator und konvertiert Wasm-Bytecode in ein schnelleres Format, wodurch sie für missionskritische Systeme geeignet ist, bei denen ein Ausfall keine Option ist.

Ist SpaceWasm Open Source?

Ja, das JPL der NASA hat SpaceWasm als Open Source veröffentlicht. Das Projekt ist in der Programmiersprache Rust geschrieben und steht auf GitHub für Beiträge und die Nutzung durch die Community zur Verfügung.

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

Für Builder

Diese Seite arbeitet gerade für das Tool von jemand anderem.

KI-Agenten lesen sie. Käufer landen darauf. Sie antwortet in acht Sprachen und über MCP. Dein Tool kann so eine haben — in 24 Stunden live.