RUST in der Embedded-Welt
Aktuell dominiert in Embedded-Softwareprojekten klar die Programmiersprache C bzw. C++. Doch ein neuer Trend zeichnet sich ab. Rust gewinnt als Alternative zunehmend an Bedeutung. Woran liegt das? Und bedeutet dies, dass C/C++ bald ausgedient haben? In diesem Beitrag werfen wir einen bodenständigen Blick auf den Aufstieg von Rust im Embedded-Bereich.
Ein Hauptargument für Rust ist die deutlich höhere Codesicherheit. Die Sprache erkennt viele Programmierfehler. Insbesondere Speicherfehler wie z.B. Nullzeiger oder Pufferüberläufe – bereits zur Kompilierzeit. Das heißt, solche Fehler werden abgefangen, bevor das Programm überhaupt läuft. (Zur Erläuterung: Die Kompilierzeit ist die Phase, in der der Quellcode in für den Prozessor ausführbare binäre Befehle übersetzt wird.) Man kann sich das vereinfacht vorstellen wie einen hochqualifizierten Simultandolmetscher, der sogar Grammatikfehler und Ungenauigkeiten des Redners bemerkt und in seiner Übersetzung automatisch korrigiert.
Viele potenzielle Abstürze oder Sicherheitslücken werden von vornherein verhindert. Der Rust-Compiler lässt unsicheren Code gar nicht erst entstehen. Das Ergebnis sind weniger Fehlersuche und Debugging-Aufwand im Nachhinein. Das Beste daran ist, dass diese zusätzliche Sicherheit nicht zulasten der Performance geht. Rust-Programme werden direkt in effizienten Maschinencode übersetzt und laufen in der Regel genauso schnell und ressourcenschonend wie C/C++-Programme. Jedoch mit dem beruhigenden Gefühl, dass kritische Speicherprobleme bereits ausgemerzt sind.

Gerade in sicherheitskritischen Bereichen wie der Medizintechnik, Automobilindustrie oder Luftfahrt ist Softwarezuverlässigkeit oberstes Gebot. Fehler in eingebetteter Software können hier schlimmstenfalls Menschenleben gefährden oder hohe Folgekosten verursachen. Ein Großteil schwerwiegender Softwarefehler lässt sich auf Probleme in der Speicherverwaltung zurückführen. Man denke etwa an unbemerkte Speicherlecks oder Überschreibungen, die später zu Systemabstürzen führen. Rust setzt genau hier an und verhindert solche Fehlerquellen von Anfang an. Für Entwickler und Unternehmen bedeutet das ein geringeres Risiko, dass kritische Bugs erst im Feld entdeckt werden.
In der Medizintechnik beispielsweise müssen Steuerungssoftware oder Firmware für Geräte absolut zuverlässig funktionieren. Wenn Rust durch seine strikte Überprüfung dafür sorgt, dass Pufferüberläufe oder Zugriffe auf ungültige Speicherbereiche gar nicht erst ins fertige Produkt gelangen, ist das ein enormes Plus an Sicherheit. Es überrascht daher nicht, dass Rust in diesen Branchen viel Aufmerksamkeit bekommt. Selbst große Tech-Unternehmen und Behörden zeigen Interesse an Rust als Weg, um die Softwarequalität und -sicherheit zu erhöhen. Schließlich bietet Rust eine seltene Kombination: hohe Ausführungsgeschwindigkeit wie C/C++ und dabei eine eingebaute Absicherung gegen die häufigsten Programmierfehler.
Rust steckt noch in den Kinderschuhen
So vielversprechend Rust auch ist, die Sprache ist noch vergleichsweise jung (erst 2015 veröffentlicht) und befindet sich im Embedded-Umfeld gewissermaßen in den Kinderschuhen. In der Praxis bedeutet das, dass C und C++ vorerst weiterhin die Hauptrolle spielen. Es gibt mehrere Gründe dafür. Zum einen ist die Rust-Community und Verbreitung noch kleiner als die über Jahrzehnte gewachsene C/C++-Gemeinschaft. Erfahrene Rust-Entwickler sind entsprechend schwerer zu finden. Für Unternehmen kann die noch begrenzte Verfügbarkeit von Rust-Profis ein Risiko darstellen, vor allem wenn Stellenprofile oft „mehrjährige Erfahrung“ verlangen, die bei einer neuen Technologie naturgemäß selten ist.
Zum anderen ist das Ökosystem rund um Rust im Embedded-Bereich noch im Aufbau. Nicht für alle Mikrocontroller oder Prozessorplattformen gibt es bereits ausgereifte Rust-Toolchains und Bibliotheken.
Wie gehen wir bei B&W mit diesem Trend um?
Wir behalten neue Technologien wie Rust im Auge, denn alles, was die Qualität und Sicherheit unserer Entwicklungen erhöht, begrüßen wir grundsätzlich. Der Ansatz von Rust, kritische Fehler von Beginn an zu eliminieren, passt daher gut zu unserem Verständnis von qualitativ hochwertiger Software. Gleichzeitig setzen wir auf Pragmatismus und Erfahrung. Bewährte Sprachen wie C und C++ bleiben aktuell aus guten Gründen der Standard: Sie sind ausgereift, überall unterstützt und unsere Entwickler verfügen über langjährige Expertise darin. Wir rennen also nicht blind jedem Trend hinterher, sondern prüfen sorgfältig, wann und wo Rust echten Mehrwert bietet. In Pilotprojekten und internen Tests sammeln wir Erfahrungen mit Rust, um die Vorteile in der Praxis zu verifizieren und mögliche Anfangsschwierigkeiten zu identifizieren. So stellen wir sicher, dass wir bereit sind, Rust gezielt dort einzusetzen, wo es sinnvoll und reif ist – ohne die Zuverlässigkeit aufs Spiel zu setzen.
Wir nutzen Chancen und wägen Risiken mit Bedacht ab. Damit bleiben wir am Puls der Zeit und liefern zugleich die Verlässlichkeit, die in Embedded-Projekten unerlässlich ist.