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-Servern đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster