Zum Hauptinhalt Zur Navigation

Security: Rust im Linux-Kernel macht wichtige Fortschritte

Mehr Treiber, besserer Architektur-Support und das Problem der Speicherzuweisung gelöst: Rust im Linux-Kernel erreicht wichtige Meilensteine.
/ Sebastian Grüner
2 Kommentare News folgen (öffnet im neuen Fenster)
Rust im Linux-Kernel bekommt zahlreiche Verbesserungen. (Bild: Andrea Schaffer/Flickr.com)
Rust im Linux-Kernel bekommt zahlreiche Verbesserungen. Bild: Andrea Schaffer/Flickr.com / CC-BY 2.0

Der Betreuer des Projekts, Rust im Linux-Kernel zu etablieren , Miguel Ojeda, hat seine Patch-Serie aktualisiert und als sogenannten RFC auf der Linux-Kernel-Mailing-Liste veröffentlicht(öffnet im neuen Fenster) . Ojeda zählt zahlreiche Neuerungen und Verbesserungen auf, die das Projekt einer Aufnahme in den Hauptzweig des Linux-Kernels deutlich näher bringen, da damit einige Probleme angegangen werden, die diesem Schritt bisher im Weg standen.

Dazu gehört vor allem ein vollständig geänderter Umgang mit dem Alloc-Aufruf, um neuen Speicher zuzuweisen. Ojeda und seine Mitstreiter haben dazu die sogenannten unfehlbaren Zuweisungen aus dem Code entfernt. Rust nimmt standardmäßig an, dass die Zuweisungen immer funktionieren, und falls dies nicht funktioniert, wird der Prozess beendet.

Im Linux-Kernel würde das aber zu einer Kernel-Panic führen, so dass dieses Verhalten nicht akzeptiert werden würde. Damit dies nicht passiert, wurde der Alloc-Code von Rust nun angepasst. Die Möglichkeit einer Rust-Panic wird im Kernel nicht kompiliert und ist so nicht nutzbar. Die Änderungen an Rust selbst dafür sind auch schon vorbereitet.

Treiber- und Architektur-Support verbessert

Zu den Rust-Arbeiten hinzugekommen sind außerdem Ports für die 32-Bit-Variante von Arm sowie für RISC-V. Darüber hinaus schreiten die Arbeiten an einem GCC-Port für Rust voran sowie an einer Art Rust-Compiler-Backend für GCC. Die Codegenerierung übernimmt GCC. Die Arbeiten an und mit GCC sind im Zusammenhang mit Linux von Bedeutung, da dies über Jahrzehnte der einzige nutzbare und weiter standardmäßig genutzte Compiler für den Linux-Kernel ist. Letzteres gilt insbesondere für die meisten Linux-Distribution. Der Rust-Compiler Rustc baut dagegen auf LLVM auf.

Vergrößert haben die Beteiligten auch die Anzahl der Abstraktionen bestimmter Kernel-Techniken. Der Treibersupport wurde ebenso verbessert. Zusätzlich zu einem experimentellen Binder-Port ist nun auch ein weiterer Rust-Treiber entstanden, der die Unterstützung für den Zufallszahlengenerator des Raspberry Pi umsetzt. Microsoft hat darüber hinaus angekündigt, das Projekt zu unterstützen und Hyper-V-Treiber in Rust erstellen zu wollen.

Anzeige

Programmierung sicherer Systeme mit Rust: Eine Einführung

Jetzt bestellen bei Amazon (öffnet im neuen Fenster)

Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.

Zum Kompilieren des Rust-Codes im Linux-Kernel kann außerdem die Beta der Version 1.54 von Rustc genutzt werden. Mit der stabilen Veröffentlichung, die Ende des Monats geplant ist, kann Rust in Linux dann erstmals mit einer stabilen Compiler-Version erstellt werden. Dennoch sind hier weitere Nacharbeiten nötig, da weiterhin auf experimentelle Funktionen gesetzt wird. Wann und ob Rust in den Hauptzweig des Linux-Kernels aufgenommen wird, ist derzeit noch nicht absehbar.


Relevante Themen