Auf dem Kernel Maintainers Summit kündigte Linus Torvalds an, dass, sofern keine unvorhergesehenen Probleme auftreten, die Patches zur Unterstützung der Entwicklung von Treibern in Rust in den Linux-Kernel 6.1 aufgenommen werden, dessen Veröffentlichung für Dezember geplant ist.
Zu den Vorteilen der Rust-Unterstützung im Kernel gehört die Vereinfachung der Erstellung sicherer Gerätetreiber, da das Risiko von Speicherfehlern verringert wird, sowie die Motivation neuer Entwickler, sich an der Arbeit am Kernel zu beteiligen. "Rust ist eines dieser Dinge, die, wie ich denke, neue Gesichter anziehen werden... wir werden älter und grauer", sagte Linus.
Linus kündigte außerdem an, dass in der Version 6.1 des Kernels einige der ältesten und grundlegendsten Teile des Kernels, wie die Funktion printk(), verbessert werden. Darüber hinaus erinnerte Linus daran, dass Intel vor mehreren Jahrzehnten versuchte, ihn davon zu überzeugen, dass die Zukunft bei den Itanium-Prozessoren liege, aber er antwortete: "Nein, das wird nicht passieren, da es dafür keine Entwicklungsplattform gibt. ARM macht alles richtig."
Ein weiteres Problem, das Torvalds ansprach, ist die Uneinheitlichkeit in der Produktion von ARM-Prozessoren: "verrückte Hardware-Firmen aus dem Wilden Westen, die spezialisierte Chips für verschiedene Anwendungen herstellen." Er fügte hinzu, dass "das eine große Herausforderung war, als die ersten Prozessoren erschienen, heute gibt es ausreichend Standards, um die Portierung von Kernen auf neue ARM-Prozessoren einfach zu gestalten."
Zusätzlich kann die Veröffentlichung der ersten Implementierung des rust-e1000 Treibers für Intel-Ethernetadapter erwähnt werden, der teilweise in Rust geschrieben wurde. Im Code bleiben vorläufig direkte Aufrufe zu einigen C-Bindings, aber es wird schrittweise daran gearbeitet, diese durch Rust-Abstraktionen zu ersetzen, die für das Schreiben von Netzwerktreibern erforderlich sind (für den Zugriff auf PCI, DMA und die Netzwerk-APIs des Kernels). In der aktuellen Form besteht der Treiber den Ping-Test beim Start in QEMU, funktioniert jedoch nicht mit realer Hardware.
Quelle: opennet.ru
