
Microsofts Integration von Rust in die Windows-Treiberentwicklung
Seit Mitte 2023 konzentriert sich Microsoft auf die Integration von Rust in das Windows-Betriebssystem. Diese Initiative begann mit der erfolgreichen Integration von Rust in den Windows-Kernel und hat sich nun weiterentwickelt, um Treiberentwickler zur Übernahme dieser innovativen Programmiersprache zu ermutigen.
Start des Open-Source windows-drivers-rs
-Projekts
Im Juli stellte Microsoft das Open-Source windows-drivers-rs
-Projekt vor, ein Projekt des Surface-Teams, das die Windows-Treiberentwicklung mit Rust vereinfachen soll. Dieses Framework soll die Effizienz der Treiberentwicklung in Rust steigern und bietet eine modernere Alternative zu konventionellen Sprachen wie C.
Einführung der cargo-wdk
Kiste
Zuletzt kündigte Microsoft Verbesserungen dieser Initiative an, insbesondere die Einführung der cargo-wdk
Crate. Diese neue Cargo-Erweiterung optimiert den Treibererstellungsprozess, indem sie leere Treiberprojekte mit vorkonfigurierten Build-Schritten, Abhängigkeiten und Verknüpfungen generiert. Sie kann auch Windows Driver Kit (WDK)-Tools wie InfVerif nutzen und spiegelt damit die Erfahrung der Treibererstellung mit C in Visual Studio wider.
Vorteile der Verwendung von Rust
Rust unterscheidet sich von traditionellen Programmiersprachen wie C durch überlegene Speichersicherheitsfunktionen. Diese Eigenschaft reduziert das Risiko speicherbezogener Sicherheitslücken erheblich. Darüber hinaus zeichnet sich Rust durch eine außergewöhnliche Kompatibilität mit C- und C++-Treibercode aus, was den Umstieg für Entwickler vereinfacht.
Zukünftige Ziele und Entwicklungen
Microsofts langfristige Vision besteht darin, Rust-Entwickler im Cargo-Ökosystem mit Build-Tools und Konfigurationsoptionen auszustatten, die denen von Visual Studio entsprechen. Mittelfristig strebt das Unternehmen unter anderem die automatische Installation des Windows Driver Kits, Unterstützung für NT_TARGET_VERSION und vollständige ARM64-Kompatibilität an.
Aktueller Status von Rust in der Treiberentwicklung
Derzeit windows-drivers-rs
unterstützt das Framework bestimmte Treibertypen in Rust, erfordert jedoch noch immer eine beträchtliche Menge unsicheren Codes. Microsoft arbeitet aktiv mit Rust-Spezialisten zusammen, um sicherere Abstraktionen sowohl für Kernel Mode Drivers (KMD) als auch für User Mode Drivers (UMD) zu entwickeln. Mehrere Teams arbeiten außerdem an der Entwicklung sicherer Strukturen und APIs, die sowohl auf Kernel-Kernel-Funktionen als auch auf die Entwicklung von Drittanbieter-Treibern zugeschnitten sind. Einige dieser Innovationen sind bereits in den Windows-Kernel integriert.
Abstraktion in der Treiberentwicklung verstehen
Für diejenigen, die mit dem Begriff nicht vertraut sind: Abstraktion bezieht sich in diesem Zusammenhang auf den sicheren Übergangsprozess zwischen Benutzermodus und Kernelmodus. Der Kernelmodus arbeitet auf der höchsten Berechtigungsebene, während der Benutzermodus auf einer niedrigeren Berechtigungsebene arbeitet. Dies unterstreicht die Bedeutung sicherer und effizienter Übergänge.
Nächste Schritte und Best Practices
Für die Zukunft plant Microsoft, weitere Einblicke und Best Practices zur Treiberentwicklung bereitzustellen, darunter auch die Verwendung von CodeQL für die statische Analyse. Insbesondere hat das Unternehmen im Juli seine Leitlinien zur statischen Analyse von Drittanbietertreibern aktualisiert, passend zur Veröffentlichung von Windows 11 Version 25H2.
Um mehr über diese Entwicklungen zu erfahren, können Sie hier auf der offiziellen Tech Community-Website von Microsoft auf den vollständigen Blogbeitrag zugreifen.
Schreibe einen Kommentar