Linus Torvalds plant, die mit Rust verbundenen Änderungen an den Maintainers vorbei einzuführen

Christoph Hellwig, Hauptmaintainer der DMA-, KVM-, Slab Allocator-Subsysteme und der PowerPC-Architektur im Linux-Kernel, hat sich entschieden, Rust-Bindings für das DMA-Subsystem nicht in den Kernel aufzunehmen. Er beteiligte sich an der Diskussion über die von Rust for Linux veröffentlichten Richtlinien zur Unterstützung von Rust im Kernel. Christoph ist der Meinung, dass solche Richtlinien nutzlos sind, solange sie nicht mit der Gemeinschaft abgestimmt und in die Kernel-Dokumentation aufgenommen werden.

Christoph wies auch darauf hin, dass in den Richtlinien irreführende Informationen enthalten sind, die besagen, dass Maintainer eigenständig Entscheidungen über die Aufnahme von Rust-bezogenen Codes in ihre Subsysteme treffen können. Laut Christoph hat Linus Torvalds in einem persönlichen Gespräch erklärt, dass er entschlossen ist, Rust-Code in den Kernel aufzunehmen, trotz der Einwände der Maintainer. Daher müssen Entwickler und Kernel-Maintainer nun mit Rust umgehen, egal ob sie das wollen oder nicht.

Christoph verglich die Verbreitung von Rust-Bindungen erneut mit einem Krebs, der sich über alle Subsysteme des Kernels ausbreitet und zur Fragmentierung führt. Aus einem einheitlichen Ganzen wird der Kernel zu einem Projekt, das in mehreren Sprachen geschrieben ist, ohne klare Definition, wann welche Sprache verwendet werden sollte. Laut Christoph wurde die Arbeit mit einer solchen gemischten Codebasis zu seinem schlimmsten Albtraum, da unter diesen Bedingungen ständig Code von einer Sprache in die andere und wieder zurückgeschrieben wird.

Christoph bittet um eine Erklärung für das Ziel der Integration von Rust in den Kernel. Falls das Ziel darin besteht, Sicherheitsprobleme zu lösen, die bei der low-level Speicherverwaltung auftreten, ist zunächst eine Modernisierung des bestehenden Codes erforderlich. Angesichts der Tatsache, dass Betreuer bereits auf triviale Dinge wie Überlaufprüfungen schmerzhaft reagieren, ist unklar, wie die Kluft zwischen einem Teil des Kernels, der nicht einmal einfache Sicherheitsvorschriften annimmt, und einem anderen Teil, der strenge Regeln einhält, überwunden werden kann. Wenn das Ziel hingegen darin besteht, die Entwicklung von Treibern zu vereinfachen, würde die Einführung der Unterstützung einer weiteren Sprache nur neue Aufgaben schaffen und die ohnehin schon überlasteten Menschen, die die Kerninfrastruktur am Laufen halten, zusätzlich belasten.

Die Befürworter der Einführung von Rust in den Kernel nennen folgende Ziele:

  • Das Schreiben neuer Codes in Rust wird das Risiko von Fehlern bei der Arbeit mit Speicher und von Race Conditions verringern sowie einige logische Fehler ausschließen.
  • Es wird für die Maintainer einfacher sein, Änderungen zu überprüfen und Module unter Berücksichtigung der Garantien, die die Programmiersprache Rust bietet, zu refaktorisieren.
  • Das Vorhandensein von Abstraktionen, die die fortschrittlichen Funktionen der Programmiersprache Rust nutzen, wird die Erstellung neuer Treiber und Module erleichtern.
  • Die Unterstützung einer modernen Sprache wird neue Teilnehmer zur Entwicklung des Kernels anziehen.
  • Die Nutzung der Werkzeuge von Rust wird die Anforderungen an die Dokumentation des Codes erleichtern. Zum Beispiel wurde im Projekt Rust for Linux die Anforderung der zwingenden Dokumentation öffentlicher APIs, Sicherheitsanforderungen, unsafe-Blöcke und Typinvarianten eingeführt.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster