iX 7/2023
S. 46
Titel
Softwareentwicklung

Rust für Embedded-Systeme

Rust hat sich zu einem ernsthaften Kandidaten für die Systemprogrammierung gemausert. Zeit, einen Blick auf die Möglichkeiten und Fallstricke von Rust in Embedded-Systemen zu werfen.

Von Simon Jakob

Noch immer sind C und C++ dominant unter den Programmiersprachen im Embedded-Bereich. Doch seit einiger Zeit gewinnt Rust Anteile in der auf IT- und funktionale Sicherheit bedachten Landschaft der eingebetteten Systeme. Warum das so ist, lässt sich am Beispiel der Bug-Bounty-Summary-Meldung von Google erahnen, die eine Korrelation zwischen der verringerten Zahl eingegangener Vulnerabilities und dem gestiegenen Anteil von Rust in neueren Android-Versionen aufzeigt (siehe ix.de/z7qb). Was macht Rust aber nun – wie behauptet – sicherer als andere Systemprogrammiersprachen, und ist es so interessant, dass Entwickler eingebetteter Systeme einen Wechsel ins Auge fassen sollten?

Embedded-Systeme sind in Sachen Ressourcen stark begrenzt. Die Spannweite reicht von Controllern mit wenigen Kilobyte Speicher und ohne Memory Management Unit (MMU) bis hin zu leistungsstarken Systems-on-a-Chip (SoCs) auf ARM-Basis mit mehreren CPUs und Gigabyte Speicher. Oft setzt die Industrie aber einfache Controller (wie bei Motorsteuerungen) oder SoCs mit überschaubarer, aber zweckmäßiger Ausstattung ein. Eine sehr häufige Anforderung ist, dass diese Systeme zuverlässig funktionieren und dabei den industriespezifischen Safety- und Securitystandards genügen müssen. Embedded-Software-Architektinnen und -Architekten legen Systeme deshalb häufig redundant aus und achten darauf, dass sie harte Echtzeitanforderungen erfüllen.

Kommentieren