Rust im Linux-Kernel: Gut genug für Treiberentwicklung

Drei Monate nach der Ankündigung soll "Rust for Linux" jetzt für die Entwicklung von Linux-Treibern und Kernel-Modulen bereit sein.

In Pocket speichern vorlesen Druckansicht 273 Kommentare lesen
Lesezeit: 2 Min.

Die Entwickler des Projekts "Rust for Linux" um Miguel Ojeda haben mit einer Serie von 17 umfangreichen Patches die Rust-Unterstützung im Linux-Kernel erweitert. Sie sei nun gut genug, um Rust für die Entwicklung von Treibern und anderen Modulen zu benutzen, so Ojeda auf der Kernel-Mailingliste.

"Rust for Linux" erweitert den Kernel um eine Infrastruktur, die es erlaubt, Rust als Alternative zu C für die Kernel-Entwicklung zu nutzen. Es wurde im April 2021 angekündigt und fand bei den wichtigsten Linux-Entwicklern, inklusive Linus Torvalds, insgesamt positive Resonanz. Torvalds befürchtete jedoch Probleme bei der Speicherallozierung, die Kernel Panics auslösen könnten.

Die jetzt vorgelegte Version soll das vorerst durch eine eigene, auf den Kernel abgestimmte Version der Allozierungsbibliothek (im Rust-Jargon Alloc-Crate) verhindern. Künftig sollen aber alle Änderungen wieder in Standard-Rust zurückfließen, sodass keine speziellen Versionen für die Kernel-Entwicklung mehr nötig sind.

In seiner Ankündigung auf der Kernel-Mailingliste gab Ojeda eine ganze Reihe von zusätzlichen Updates bekannt: Unterstützung der ARM- und RISC-V-Architekturen, Funktionen und Infrastruktur für Software- und Dokumentationstests und eine Überarbeitung von Abstraktionsschicht und Treibern.

Auch ist kein spezieller Compiler mehr für Kernel-Code notwendig, die aktuelle Beta-Version des Compilers und das derzeit stabile rustc reichen aus, jedoch müssen einige experimentelle Features aktiviert sein. Nach wie vor gilt auch die gesamte Rust-Unterstützung als experimentell, wird aber ab Dienstag in linux-next, dem "Bleeding Edge"-Zweig des Kernel-Codes, zu finden sein.

Die Unterstützung einer moderneren Sprache als C im Linux-Kernel findet in der IT-Industrie großes Interesse. So wird "Rust for Linux" von Google gesponsert, obwohl der Konzern mit Go eine systemnahe Sprache mit ähnlicher Ausrichtung hat. Microsoft wird voraussichtlich Hyper-V-Treiber für Linux in Rust entwickeln. ARM und IBM steuerten architekturspezifischen Code bei.

(ulw)