Greg Kroa-Hartman hat erläutert, wie Rust bei der Bekämpfung von Fehlern im Linux-Kernel helfen kann.

Greg Kroah-Hartman, der für die Pflege der stabilen und "staging" Zweige des Linux-Kernels verantwortlich ist und die Hauptverantwortung für 16 Subsysteme des Kernels trägt, hielt einen Vortrag auf der Rust Week 2026, in dem er erläuterte, wie die Programmiersprache Rust dazu beitragen kann, Schwachstellen im Kernel zu verhindern, die aus typischen Fehlern von Entwicklern in C beim Umgang mit Speicher, Sperren, Fehlerbehandlung und unsicheren Daten resultieren. Ein Hauptvorteil von Rust ist die Fähigkeit, solche Fehler während des Kompilierungsprozesses zu identifizieren, anstatt sie von Menschen im Code-Review zu finden. Gleichzeitig wird Rust nicht als Allheilmittel betrachtet, das alle Probleme lösen kann, und es ist nicht geplant, den Kernel in Rust neu zu schreiben: Es wird erwartet, dass Rust schrittweise durch seine Nutzung für neue Treiber und Subsysteme integriert wird.

Ein Beispiel für Fehler im Kernel, die durch die Verwendung von Rust vermieden werden könnten, ist ein Fehler in der Bluetooth-Subsystem, der 15 Jahre lang unentdeckt blieb, sowie ein Problem im Hypervisor Xen. Im ersten Fall führte der Entwickler eine Dereferenzierung eines Zeigers ohne Überprüfung durch, während im zweiten Fall das Entsperren im Fehlerbehandlungscode vergessen wurde.
Laut Greg entstehen die meisten Fehler im Kernel durch solche Kleinigkeiten, die sich im Laufe der Zeit ansammeln und als Sicherheitsanfälligkeiten auftreten. In Rust werden viele dieser Probleme vom Compiler verhindert; beispielsweise ermöglichen Rust-Abstraktionen für Locking im Kernel den Zugriff auf die internen Zeiger von Strukturen erst nach dem Ergreifen der entsprechenden Sperre, die automatisch aufgehoben wird. Ohne das Ergreifen der Sperre ist der Zugriff auf die Strukturzeiger in Rust nicht möglich.

Greg ist der Ansicht, dass solche Möglichkeiten von Rust 60 % der im Kern gefundenen Fehler hätten verhindern können und dass die vom Compiler durchgeführten Überprüfungen die Entwickler von der Diskussion über die Korrektheit der Fehlerbehandlung und die Angemessenheit der Sperrungen an der richtigen Stelle befreit hätten. Darüber hinaus hat die Einführung der Rust-Unterstützung bereits positive Auswirkungen auf den C-Code im Kern gehabt, indem der C-Code und die Schnittstellen aufgeräumt wurden und einige Entwicklungstechniken übernommen wurden (zum Beispiel wurden Sperren mit begrenztem Gültigkeitsbereich implementiert).

Dank des Typsystems, das die Einhaltung festgelegter Regeln gewährleistet, sowie durch den Einsatz von kontinuierlichen Integrationssystemen, die den Code während des Builds überprüfen, können Reviewer beim Überprüfen von Änderungen in Rust den Fokus auf die Logik der Funktionsweise legen, anstatt die Manipulationen mit Ressourcen nachzuverfolgen. Die Anwendung von Rust ermöglicht auch eine genauere Betrachtung der Daten, die von der Hardware oder externen Systemen stammen. Dies wird durch die explizite Unterscheidung zwischen vertrauenswürdigen und nicht vertrauenswürdigen Daten auf der Ebene des Typsystems erreicht: Der Entwickler muss lediglich eine Analyse durchführen, wenn er von einem nicht vertrauenswürdigen in einen vertrauenswürdigen Zustand übergeht.

In letzter Zeit veröffentlicht das Team, das für die Sicherheit des Kernels verantwortlich ist, jeden Tag etwa 13 Berichte über Sicherheitsanfälligkeiten, was im Vergleich zur vorherigen Dynamik der Schwachstellenerkennung wie Wahnsinn erscheint (zum Beispiel wurden gestern 277 Berichte über Schwachstellen im Kernel veröffentlicht). Greg ist der Ansicht, dass die Verwendung von Rust eine der wirksamen Möglichkeiten ist, die Anzahl von Fehlern im Kernel zu verringern, die durch traditionelle Fehler beim Umgang mit Fehlern und Ressourcenverwaltung verursacht werden. Die Unterstützung von Rust im Kernel hat bereits den experimentellen Status überschritten und wurde Ende letzten Jahres als reguläre Funktion des Kernels anerkannt.

Video abspielen


Quelle: opennet.ru
Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster