Die Rust-Unterstützung für den Linux-Kernel wird von Torvalds kritisiert

Linus Torvalds überprüfte die Patches, die die Möglichkeit implementierten, Treiber in der Rust-Sprache für den Linux-Kernel zu erstellen, und äußerte einige kritische Kommentare.

Die größten Beschwerden wurden durch die potenzielle Möglichkeit von panic() in Fehlersituationen verursacht, beispielsweise bei wenig Speicher, wenn Vorgänge der dynamischen Speicherzuweisung, auch innerhalb des Kernels, fehlschlagen könnten. Torvalds erklärte, dass ein solcher Ansatz im Kernel grundsätzlich inakzeptabel sei, und wenn dieser Punkt nicht verstanden werde, könne er jeden Code, der versucht, einen solchen Ansatz zu verwenden, völlig NAKen. Andererseits stimmte der Patch-Entwickler diesem Problem zu und hält es für lösbar.

Ein weiteres Problem waren Versuche, Gleitkomma- oder 128-Bit-Typen zu verwenden, die für Umgebungen wie den Linux-Kernel nicht akzeptabel sind. Dies stellte sich als schwerwiegenderes Problem heraus, da die Kernbibliothek von Rust derzeit unteilbar ist und einen großen Blob darstellt – es gibt keine Möglichkeit, nur einige der Funktionen anzufordern, was die Verwendung der einen oder anderen problematischen Funktionalität verhindert. Um das Problem zu lösen, sind möglicherweise Änderungen am Rust-Compiler und an den Bibliotheken erforderlich, obwohl das Team derzeit noch keine Strategie für die Umsetzung der Modularisierung der Sprachbibliotheken hat.

Darüber hinaus bemerkte Torvalds, dass das bereitgestellte Treiberbeispiel nutzlos sei und empfahl uns, als Beispiel einen Treiber zu verwenden, der eines der wirklichen Probleme löst.

Update: Google hat seine Teilnahme an der Initiative zur Integration der Rust-Unterstützung in den Linux-Kernel angekündigt und technische Gründe für die Einführung von Rust angegeben, um Probleme aufgrund von Speicherfehlern zu bekämpfen. Google glaubt, dass Rust bereit ist, sich C als Sprache für die Entwicklung von Linux-Kernelkomponenten anzuschließen. Der Artikel enthält auch Beispiele für die Verwendung der Rust-Sprache zur Entwicklung von Kernel-Treibern im Kontext ihrer Verwendung auf der Android-Plattform (Rust ist als offiziell unterstützte Sprache für die Android-Entwicklung anerkannt).

Es wird darauf hingewiesen, dass Google einen ersten Prototyp eines in Rust geschriebenen Treibers für den Binder-Interprozess-Kommunikationsmechanismus vorbereitet hat, der einen detaillierten Vergleich der Leistung und Sicherheit von Binder-Implementierungen in C und Rust ermöglichen wird. In ihrer jetzigen Form ist die Arbeit noch nicht abgeschlossen, aber für fast alle grundlegenden Abstraktionen der Kernel-Funktionalität, die für die Funktion von Binder erforderlich sind, wurden Schichten für die Verwendung dieser Abstraktionen im Rust-Code vorbereitet.

Source: opennet.ru

Kommentar hinzufügen