Linux-Entwicklung: Pläne zu Rust-Code für den Linux-Kernel werden konkreter
Das Rust-Team ist offenbar bereit, Linux-spezifische Komponenten neu zu entwickeln. Auch Linus Torvalds kann sich inzwischen Rust im Linux-Kernel vorstellen.
- Silke Hahn
Die Idee, den Linux-Kernel oder Teile davon in Rust neu zu schreiben, stehen schon länger im Raum. Offenbar konkretisieren sich gerade die Pläne für den Einsatz von Rust-Code für einzelne Module des Kernels, wie Einträge einer internen Mailingliste belegen.
Konferenz-Session zur Rust-Entwicklung für Linux
Der Google-Mitarbeiter Nick Desaulniers hatte für eine LLVM-Mikrokonferenz in die Runde gefragt, ob Interesse an einer "In-Tree-Entwicklung von Rust für Linux" besteht. Er schlug vor, im Rahmen der Linux Plumbers Conference (24.-28. August 2020) eine Session zu den technischen Aspekten des Themas auszurichten. An der anschließenden Diskussion haben sich Schlüsselfiguren der Linux-Community wie Linus Torvalds und der Kernel-Maintainer Greg Kroah-Hartman beteiligt.
Rust-Team bietet Kernel-spezifische Entwicklung an
Linus Torvalds kann sich den Einsatz von Rust inzwischen grundsätzlich vorstellen, wenngleich die Programmiersprache C in seinen Augen weiterhin zentral für den Kernel bleibt. Flankierend dazu bot Josh Triplett vom Rust-Entwicklerteam an, gegebenenfalls den Linux-Kernel mit spezifischen neuen Rust-Sprachfeatures zu unterstützen. Das Rust-Team signalisierte Bereitschaft, die Linux-Kernel-Entwicklung zu einer neuen Priorität in der Rust-Entwicklung zu machen. Die bevorstehende Konferenz-Session könnte einen entscheidenden Durchbruch bringen.
Rust soll C offenbar nicht ablösen, könnte allerdings für einzelne sicherheitsrelevante Module des Kernels durchaus zum Zuge kommen. Im Rahmen des Open Source Summit hatte Linus Torvalds mit Blick auf das bevorstehende große Release von Linux Kernel 5.8 vor zwei Wochen beklagt, dass es schwierig sei, Maintainer für den Linux-Kernel zu finden. In Bezug auf Rust sind seine größten Bedenken mögliche Compiler-Bugs, ergänzte er nun in der Mailingliste. Diese seien zwar "sehr selten, aber unglaublich schwierig zu beheben".
Rust-Schnittstellen für die Implementierung in den Linux-Kernel
Um Rust in den Kernel hineinzubringen, bräuchte es zunächst geeignete Schnittstellen. Die Option eines C Foreign Function Interface (FFI) gilt offenbar als suboptimal, andere Optionen wurden in der Mailingliste andiskutiert. Torvalds schlug eine automatische Konfiguration is rust available
vor, was bei dem Überprüfen von Compilerversionen mit den Compiler Flags bereits gang und gäbe sei. Wesentlich sei für ihn, dass Rust standardmäßige Build-Tests durchlaufe und dass nicht bloß eine kleine, exklusive Gruppe in abgeschotteten Bereichen mit Rust herumexperimentiere.
Wieso Rust für den Linux-Kernel im Gespräch ist
Die Programmiersprache ist wohl vor allem aus Sicherheitsgründen als Ergänzung zu C und C++ im Gespräch. Rust gilt als komplett speichersicher, außer man stellt die Speichersicherheit explizit ab durch den Modus unsafe
. Auch das Entwicklerteam von Microsoft hat Rust als "sichere Alternative zu C und C++" bezeichnet, und als Experiment gibt es bereits eine nach Rust projizierte Windows-Runtime. Für Windows ist das sicherlich interessant, da das Betriebssystem gelegentlich mit speicherbezogenen Bugs zu kämpfen hatte.
Die Diskussion zum Rust-Einsatz für den Linux-Kernel lässt sich auf der Kernel-Mailingliste nachvollziehen. Informationen zur Online-Ausgabe der Linux Plumbers Conference stehen auf der Veranstaltungs-Webseite. Interessierte können dort in einer Session diskutieren, ob die Kernel-Entwicklung Rust aufnehmen soll, und wenn ja, für welche Bereiche der Rust-Einsatz sinnvoll wäre.
(sih)