Es scheint, dass dieses Jahr nicht das Jahr von Linux wird, denn obwohl im letzten Quartal des vergangenen Jahres alles danach aussah, als würden Linux und Desktops im Jahr 2025 durchstarten, sind die Dinge nicht immer so, wie sie scheinen.
Und erst vor wenigen Tagen machte Christoph Hellwig, eine prominente Persönlichkeit bei der Wartung kritischer Subsysteme wie DMA, KVM, Slab Allocator und PowerPC im Linux-Kernel , deutlich, dass er die Unterstützung von Patches ablehnt , die die Entwicklung von Treibern in Rust erleichtern .
Christoph Hellwig erwähnt, dass die betreffenden Patches die Einbindung von Wrappern um Funktionen des DMA-Subsystems vorschlugen, um dessen Nutzung durch in Rust geschriebene Treiber zu ermöglichen. Er argumentiert jedoch, dass diese Strategie die Code-Wartung erschwert und die Klarheit der C-Schnittstellen erhalten bleiben sollte , um die Erweiterung von Abstraktionen zu vermeiden, die die Integration mit dem restlichen Kernel behindern könnten.
Die Probleme beim Mischen von Sprachen in einem Projekt
Laut Hellwig liegt das Hauptproblem darin, dass die Rust-Codeintegration Abhängigkeiten erzeugt, die Entwickler des C-Subsystems zwingen, die Auswirkungen ihrer Änderungen auf den Rust-Linker zu berücksichtigen. Dies bedeutet, dass jede Anpassung interner C-Strukturen oder -Funktionen parallele Änderungen am Rust-Code erfordern kann, was langfristig zu einem schwer wartbaren Szenario führt.
Um diese Situation zu vermeiden, empfahl Hellwig, dass Treiber in Rust direkt auf die native DMA-API in C zugreifen, anstatt auf zusätzliche Wrapper zurückzugreifen, die seiner Meinung nach die Wartbarkeit des Kernels beeinträchtigen würden.
Die Entwickler, die die Patches vorschlugen, argumentierten, dass sie den Rust-Code pflegen würden und hatten zu diesem Zweck die Links in einem speziellen Unterverzeichnis (rust/kernel/dma.rs) organisiert. Hellwig lehnte diese Vorschläge jedoch ab und warnte, dass er nicht die Verantwortung für die Integration von Code aus anderen Sprachen in die Kernsubsysteme übernehmen müsse .
Darüber hinaus betonte er nachdrücklich, dass man, wenn man den Kernel in ein Mosaik aus mehreren Sprachen umwandeln wolle, mit den Treibern von Rust beginnen sollte, anstatt diese Komplexität in grundlegenden Bereichen aufzuerlegen.
Die Kontroverse verschärfte sich, als Persönlichkeiten wie Jason Gunthorpe, der bei NVIDIA für die Wartung von TPM, VFIO und Infiniband verantwortlich ist, Beispiele dafür lieferten, wie Änderungen an Speichersubsystemen zwar aus C-Code-Sicht korrekt waren, aber Probleme beim Kompilieren des Kernels mit Rust-Unterstützung verursachten. Diese Vorfälle zeigten, dass die Verbindungen zwischen C und Rust zusätzliche Abhängigkeiten hervorrufen können, die eine koordinierte Entwicklung behindern.
Es ist erwähnenswert, dass sich die Diskussion nicht nur auf technische Aspekte beschränkte. Héctor Martín schlug vor, die Verbindung direkt über Linus Torvalds herzustellen und so den DMA-Subsystem-Maintainer zu umgehen. Dieser Ansatz könnte jedoch die traditionelle hierarchische Struktur der Kernelentwicklung stören.
Hector wies auch auf Verhaltensweisen hin, die er als schädlich empfand, und erwähnte sogar, dass Hellwigs Kritik, in der er Rust mit einem „krebsartigen Tumor“ verglich, zu seiner Frustration und letztlich zu seiner Entscheidung beigetragen habe, als Maintainer der ARM/Apple-Plattform im Hauptkernel zurückzutreten. Trotz seines Rücktritts wird die Plattform weiterhin von Sven Peter unterstützt, der sich zur Fortsetzung der Wartung verpflichtet hat.
Linus Torvalds schaltete sich in die Diskussion ein und betonte, dass der Kernel -Entwicklungsprozess zwar nicht perfekt sei, aber funktioniere und dass sich technische Diskussionen auf Patches konzentrieren sollten , ohne von äußerem Druck oder Belästigungen in sozialen Medien beeinflusst zu werden. Für Torvalds sollte der Fokus rein technisch sein und persönliche Streitigkeiten außen vor lassen.
Die Weigerung von Christoph Hellwig, Rust-Wrapper in das DMA-Subsystem zu integrieren, verdeutlicht die Spannungen zwischen den Linux-Kernel-Entwicklern. Während einige Rust als leistungsstarkes Tool zum Erstellen neuer Projekte betrachten, befürchten andere, dass die Integration mehrerer Sprachen die Wartbarkeit und die Konsistenz der Codebasis beeinträchtigen könnte.
Die Situation ist weiterhin Gegenstand von Diskussionen und könnte erhebliche Auswirkungen auf die zukünftige Unterstützung von Rust im Kernel haben. Fest steht jedoch, dass die Linux-Entwicklergemeinschaft nach wie vor komplexen Herausforderungen gegenübersteht, bei denen technische Entscheidungen sorgfältig abgewogen werden müssen, um die langfristige Nachhaltigkeit des Projekts zu gewährleisten.