Eingebaute Navigationssysteme, Fahrassistenzsysteme, Software-basierte Fehlerdiagnostik, ein eigenes Betriebssystem im Auto: Fahrzeuge gleichen zunehmend rollenden Computern. Die Transformation hin zu Software-Defined Vehicles (SDV) ist in vollem Gange und wird sich zukünftig im Hinblick auf autonomes Fahren noch beschleunigen. SDV bedeutet, dass Software maßgeblich die Funktionalität des Autos bestimmt und dadurch zum differenzierenden Faktor wird.
Das allerdings bringt neue Risiken mit sich. Wo bislang häufig menschliche Fehler ausschlaggebend waren, können nun technische Ausfälle zu Unfällen führen. So verursachte etwa vor kurzem eine fehlgeleitete automatische Bremsung einen Zusammenstoß mehrerer Autos mitten in einem Tunnel. Ein Stück weit vertrauen wir unser Leben also der Technologie an. Um uns bestmöglich zu schützen, muss die Software daher genau so sicher und stabil konstruiert sein wie die Hardware.
Doch auf welche Programmiersprache setzt man dafür am sinnvollsten? C und C++ haben den Markt lange dominiert, auch ein Großteil der Automotive-Software ist in dieser Sprache geschrieben. Allerdings haben sich zuletzt einige prominente Akteure für eine Alternative ausgesprochen: Rust. Volvo etwa setzt als einer der ersten Autohersteller bereits in der Entwicklung darauf.
Rust hat in den letzten Jahren ob dessen Sicherheit und Leistungsfähigkeit an Popularität gewonnen. Allerdings fehlten bislang zertifizierte Rust-Toolchains für Anwendungen in sicherheitskritischen Märkten wie der Automobilindustrie. Diese Lücke schließt nun eine Rust-Compiler-Toolchain: Das Ferrocene-Projekt verspricht, die ISO 26262-Norm für funktionale Sicherheit für elektronische Systeme in Straßenfahrzeugen zu erfüllen.
Doch warum ist überhaupt eine neue Programmiersprache für die Anforderungen des automatisierten Fahrens notwendig? Jüngste Daten zeigen, dass die meisten kritischen Laufzeitfehler bei C mit der Speichersicherheit und Data Races zusammenhängen. Letztere treten auf, wenn zwei oder mehr Threads versuchen, einen Speicherplatz ohne geeigneten Synchronisationsmechanismus gleichzeitig zu aktualisieren. Die Krux: Während der Softwareentwicklung selbst sind diese kaum zu erkennen. Das führt dazu, dass Sicherheitsprobleme erst nach dem Release in der Fahrpraxis auftauchen und nachträglich behoben werden müssen. Diese Wartungen und Nacharbeiten verursachen zusätzliche Kosten.
Ein weiterer negativer Effekt: Die Produkt-Teams sind mit Ausbesserungen beschäftigt, anstatt neue Funktionen zu entwickeln. Dadurch können sie die Zeit bis zur Markteinführung nicht verkürzen.
Rust ist von Grund auf als sichere Programmiersprache konzipiert. Das bringt diverse Vorteile mit sich, unter anderem:
Darüber hinaus ist Rust interoperabel mit C/C++ – so können Autohersteller ihre bestehenden Projekte mit Rust weiterentwickeln. AUTOSAR und SOAFEE, Verbände für autonomes Fahren, sehen ebenfalls das Potenzial von Rust und haben bereits Rust-Arbeitsgruppen gebildet. Sie prüfen, inwiefern Rust für den Einsatz in Middleware und Systemsoftware geeignet ist.
Aufgrund seiner zahlreichen Vorteile ist Rust eine vielversprechende Wahl für den Einsatz in der Automobilindustrie. Mit der Weiterentwicklung der Software für SDVs wird die Programmiersprache wahrscheinlich noch attraktiver werden. Durch den Fokus auf Sicherheit ist Rust besonders geeignet für den Einsatz in sicherheitskritischen Systemen. Darunter fällt unter anderem Software für autonomes Fahren.
Autohersteller haben zahlreiche Herausforderungen, wenn sie ihre Software hausintern entwickeln: Zum einen benötigen sie Fachkräfte, die moderne Funktionen und Schnittstellen programmieren können. Zum anderen müssen sie in die Entwicklung neue Technologien einbeziehen, die bislang keine oder wenig Relevanz hatten, z.B. Kamera- und Sensortechnik. Darüber hinaus erfordert die Software-Entwicklung agilere Strukturen als viele Hersteller derzeit aufweisen.
Erfüllen sie allerdings all diese Voraussetzungen und setzen auf Rust, können sie sich darauf verlassen, dass ihre Software zuverlässiger und sicherer ist als bislang. Mit Rust programmierte Software kann zudem helfen, die Wartungskosten nach der Veröffentlichung zu senken. Außerdem können sich ob des geringeren Wartungsaufwands die Produkt-Teams darauf fokussieren, neue Funktionen zu entwickeln statt bestehende zum Laufen zu bringen. Das verkürzt letztlich die Zeit bis zur Markteinführung.
Insgesamt hilft Rust also, die Gesamtqualität und -leistung von Fahrzeugen zu verbessern, die Entwicklungseffizienz zu steigern und die Markteinführungen neuer Funktionen zu beschleunigen. Damit können sich Hersteller in einem hart umkämpften Automarkt einen echten Wettbewerbsvorteil verschaffen.
Michael Fait
ist Softwareentwickler, Hauptberater und Leiter Software-Defined Vehicle bei Thoughtworks Deutschland. Seit 2018 konzentriert er sich auf die Entwicklung von In-Vehicle-Software.
Unternehmen wissen oft nicht, welche Geräte in der Produktion eine IP-Adresse haben, warnt Peter Machat…
KPMG-Studie: 97 Prozent der Cloud-nutzenden Unternehmen verwenden KI-Dienste von Cloud-Anbietern.
Bitkom veröffentlicht Online-Tool und Leitfaden zum KI-Einsatz in Unternehmen. Beide Angebote sind kostenlos.
Neue Kunden sind unter anderem SAP, Conforama Schweiz, 11teamsports, Phillip Morris International, Baywa und Thalia.
Oracle schafft einheitliche Plattform für vier Ministerien und über 250.000 Beamte mit der Oracle Applications…
Der Grund: Geräte, die mit veralteter Software arbeiten, sind anfällig für Cyberangriffe und Datenlecks.