Rust-Unterstützung für den Linux-Kernel hat Kritik von Torvalds erhalten.

Linus Torvalds hat die Patches zur Implementierung der Möglichkeit zur Erstellung von Treibern in der Sprache Rust für den Linux-Kernel überprüft und dabei einige kritische Anmerkungen geäußert.

Die schwerwiegendsten Bedenken betreffen die potenzielle Möglichkeit, in Fehlerzustände wie panic() zu geraten, insbesondere bei Speichermangel, wenn dynamische Speicherzuweisungen, auch im Kernel, fehlerhaft abschließen können. Torvalds erklärte, dass ein solcher Ansatz im Kernel grundsätzlich inakzeptabel ist und bei Unverständnis dieser Problematik könnte er jeden Code, der einen solchen Ansatz versucht, vollständig ablehnen (totally NAKed). Auf der anderen Seite stimmte der Entwickler, der sich mit den Patches befasst, diesem Problem zu und hält es für lösbar.

Ein weiteres Problem sind die Versuche, Gleitkomma-Berechnungen oder 128-Bit-Typen zu verwenden, was in Umgebungen wie dem Linux-Kernel nicht zulässig ist. Dies stellt ein ernsthafteres Problem dar, da die grundlegende Rust-Bibliothek derzeit undifferenziert ist und aus einem großen Blob besteht – es ist nicht möglich, nur bestimmte Funktionen abzufragen, um die Nutzung problematischer Funktionalitäten zu verhindern. Die Lösung des Problems könnte Änderungen im Rust-Compiler und in der Bibliothek erfordern, wobei das Team derzeit noch keine Strategie hat, wie die Modularität der Bibliotheken des Sprachsystems umgesetzt werden kann.

Darüber hinaus wies Torvalds darauf hin, dass das bereitgestellte Treiberbeispiel nutzlos ist, und empfahl, als Beispiel einen Treiber beizufügen, der ein tatsächlich praktisches Problem löst.

Ergänzung: Google hat seine Teilnahme an der Initiative zur Förderung der Unterstützung von Rust im Linux-Kernel bekannt gegeben und die technischen Aspekte der Eignung von Rust zur Bekämpfung von Problemen, die durch Speicherfehler entstehen, erläutert. Google ist der Meinung, dass Rust bereit ist, sich zusammen mit C als Programmiersprache für die Entwicklung von Komponenten des Linux-Kernels zu etablieren. In dem Artikel werden auch Beispiele für die Nutzung von Rust zur Entwicklung von Kernel-Treibern im Kontext ihrer Verwendung auf der Android-Plattform angeführt (Rust wird als offiziell unterstützte Sprache für die Android-Entwicklung anerkannt).

Es wird darauf hingewiesen, dass Google einen ersten Prototyp eines Treibers für den Interprozesskommunikationsmechanismus Binder, geschrieben in Rust, vorbereitet hat. Dieser wird es ermöglichen, die Leistung und Sicherheit der Implementierungen von Binder in C und Rust detailliert zu vergleichen. In der aktuellen Version ist die Arbeit noch nicht abgeschlossen, aber für nahezu alle grundlegenden Abstraktionen der Kernel-Funktionalität, die für die Funktion von Binder erforderlich sind, wurden bereits Schichten vorbereitet, um diese Abstraktionen im Rust-Code zu nutzen.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster