Josh Triplett, der bei Intel arbeitet und Mitglied des Ausschusses ist, der die Entwicklung von Crates.io überwacht, spricht auf dem Open Source Technology Summit
In einer im Aufbau befindlichen Arbeitsgruppe werden Rust-Entwickler gemeinsam mit Ingenieuren von Intel Spezifikationen erarbeiten, die die Funktionalität definieren, die in Rust für die Systemprogrammierung implementiert werden muss. Die Systemprogrammierung erfordert häufig Manipulationen auf niedriger Ebene, z. B. das Ausführen privilegierter Prozessoranweisungen und das Erhalten detaillierter Informationen über den Zustand des Prozessors. Zu den ähnlichen Funktionen, die bereits für Rust entwickelt werden, gehört die Unterstützung unbenannter Strukturen, Unions, Assembler-Einfügungen (das „asm!“-Makro) und das Gleitkommazahlenformat BFLOAT16.
Josh glaubt, dass die Zukunft der Systemprogrammierung Rust gehört und dass die Sprache C in der modernen Realität den Platz einnimmt, den in den vergangenen Jahren Assembly einnahm. Rost
Entlastet Entwickler nicht nur von den Problemen, die der C-Sprache innewohnen und durch die Arbeit mit dem Speicher auf niedriger Ebene entstehen, sondern bietet auch die Möglichkeit, sie bei der Entwicklung moderner Programmierparadigmen zu verwenden.
Während der
Josh hatte die Idee, dem Linux-Kernel die Möglichkeit hinzuzufügen, Treiber in der Rust-Sprache zu entwickeln, was es ermöglichen würde, mit minimalem Aufwand sicherere und bessere Treiber zu erstellen, ohne Probleme wie Speicherzugriff nach dem Freigeben, null Zeigerdereferenzierungen und Pufferüberläufe.
Greg Kroah-Hartman, der für die Pflege des stabilen Zweigs des Linux-Kernels verantwortlich ist, äußerte seine Bereitschaft, dem Kernel ein Framework für die Entwicklung von Treibern in der Rust-Sprache hinzuzufügen, wenn es echte Vorteile gegenüber C bietet und beispielsweise Sicherheit bietet Bindungen über die Kernel-API. Darüber hinaus betrachtet Greg dieses Framework nur als Option und nicht standardmäßig als aktiv, um Rust nicht als Build-Abhängigkeit im Kernel einzubeziehen.
Es stellte sich heraus, dass mehrere Teams bereits in diese Richtung arbeiten. Zum Beispiel Entwickler der Firma „Fish in a Barrel“
Parallel
Es wurden noch nicht alle vorgesehenen Funktionen implementiert, aber das Framework ist bereits recht arbeitstauglich und wurde zum Schreiben eines funktionierenden Treibers für den im Raspberry Pi 9512-Board enthaltenen USB-Ethernet-Controller LAN3 verwendet. Der vorhandene smsc95xx-Treiber, geschrieben von in C Sprache. Es wird darauf hingewiesen, dass die Modulgröße und der Overhead durch Laufzeitkomponenten bei der Entwicklung eines Treibers in Rust unbedeutend sind, was die Verwendung des Frameworks für Geräte mit begrenzten Ressourcen ermöglicht.
Source: opennet.ru