Sichere Systemsoftware mit Rust?

Jonathan Klimt, Stefan Lankes, Jens Breitbart, Simon Pickartz, RWTH Aachen

Abstract

Die Programmiersprachen C/C++ ist für die Softwareentwicklung auf Systemebene konzipiert worden und dominiert diese bis heute, unter anderem da sie bekanntermaßen eine hohe Leistungsfähigkeit aufweist.
Programme in C/C++ sind jedoch auch dafür bekannt, dass sie fehleranfällig sind. Referenzen auf ungültige Speicherbereiche – sogenannte „Dangling pointers” – und fehlende Überprüfungen von Pufferüberläufe sind hierbei typische Probleme.
Dies ist nicht unbedingt eine neue Beobachtung, dennoch sind C und C++ die mit weitem Abstand meistgenutzten Sprachen in diesem Bereich.

Inzwischen steht mit Rust eine attraktive und moderne Alternative zur Verfügung, welche verspricht, diese Probleme bei ähnlich hoher Performanz zu verhindern. In der Linux Community wird gerade diskutiert, ob einzelne Komponenten in Rust geschrieben werden könnten, um die Robustheit des Systems zu erhöhen.

Mit RustyHermit steht auch ein Unikernel zur Verfügung, welcher komplett in Rust geschrieben wurde. Zudem wurde mit eduOS-rs ein Rust-Kernel entwickelt, der für die Lehre an der RWTH eingesetzt wird und auch einfache Linux-Programm starten kann.
Basierend auf diesen Erfahrungen soll in diesem Vortrag analysiert werden, wie gut sich Rust für die generelle Entwicklung von Systemsoftware eignet und ob in Rust entwickelte Programme auch für die Lehre tauglich sind.