Endlich frei und sicher: Windows-Treiber in Rust
Auf GitHub sind Rust-Komponenten zur Entwicklung von Windows-Treibern aufgetaucht. Niemand anders als Microsoft selbst steckt dahinter.
- Wolf Hosbach
Das Surface-Entwicklerteam von Microsoft hat auf GitHub eine Reihe von Rust-Paketen (sogenannte Crates) als Open Source freigegeben, mit denen Programmiererinnen und Programmierer Treiber für Windows in der Programmiersprache Rust schreiben. Erstellen lassen sich damit Treiber im Windows Driver Model (WDM) oder Windows Driver Frameworks (WDF), und zwar sowohl im User- als auch Kernel-Mode. Hinzu kommen W32-Services. Entwicklerinnen und Entwickler arbeiten damit also sowohl kernel- als auch komponentennah oder sie erstellen Systemdienste. Insgesamt handelt es sich laut der Betreiber um ein Testprojekt, das explizit dem Experimentieren und der Diskussion gilt – und nicht dem kommerziellen Gebrauch.
Die jetzt auf Crates.io bereitgestellten sechs Pakte unterstützen nur das Kernel Mode Driver Framework (KMDF) v 1.33, aber alle anderen Bindings lassen sich laut der Betreiber erzeugen. Interessenten sollen das GitHub-Repository des Projekts (windows-drivers-rs) importieren und die Konfiguration in der Datei build.rs im Ordner wdk-sys anpassen. Künftig möchte das Team das Projekt auf andere Versionen des Windows Development Kit (WDK) ausweiten. Von den Funktionen her schaffen die Crates insbesondere eine Anbindung an das WDK und stellen ein Foreign Function Interface (FFI) zu Windows APIs im WDK zur Verfügung. Voraussetzung für die Arbeit damit sind LLVM, Cargo Make und ein installiertes WDK.
Außerdem hat das aus dem Hardware-Bereich von Microsoft stammende Entwicklerteam die Beispieltreiber für Windows bereits in Rust umgeschrieben. Dass Microsoft bereits seit 2020 Rust stärker im Systemkern einsetzt, ist im Mai dieses Jahres bekannt geworden. Als Motive für die Hinwendung zu Rust nennt die Firma – wie so oft – erhöhte Sicherheit bei mindestens gleicher Performance.
(who)