3min Ondernemen

Microsoft licht toe hoe het ‘next-gen’ Windows 11-driverlandschap verbetert met Rust

Microsoft licht toe hoe het ‘next-gen’ Windows 11-driverlandschap verbetert met Rust

Sinds midden 2023 werkt Microsoft doelgericht aan diepere Rust-integratie in Windows. Eerst kon Windows al booten met Rust-code in de kernel, en de afgelopen maanden heeft het bedrijf stappen gezet om driverschrijvers actief richting Rust te bewegen. In juli deelde Microsoft de eerste contouren: het open-sourceproject `windows-drivers-rs`, met hulp van het Surface-team, moet dé basis worden voor Windows-driverontwikkeling in Rust.

In de recent gedeelde update presenteert Microsoft `cargo-wdk`, een Cargo-extensie binnen `windows-drivers-rs` die het startwerk uit handen neemt. Concreet:

  • Projectgeneratie: maakt lege driverprojecten met voorgeconfigureerde linking, build-stappen en dependencies.
  • Tooling-koppeling: kan WDK-tools (zoals InfVerif) aanroepen, vergelijkbaar met hoe je in Visual Studio een C-driver bouwt.

Doel is dat een Rust-ontwikkelaar in een Cargo-omgeving dezelfde buildtools en configuratiemogelijkheden krijgt als in Visual Studio.

Waarom Rust

Rust levert geheugenveiligheid die in klassieke talen als C (en deels C++) ontbreekt. Daardoor kun je hele klassen van memory-gerelateerde kwetsbaarheden structureel terugdringen. Tegelijk blijft interoperabiliteit met bestaande C/C++-drivercode uitstekend, wat migratie of geleidelijke adoptie in bestaande stacks vergemakkelijkt.

Roadmap: pariteit met Visual Studio en meer platformdekking

Microsoft schetst twee horizons:

  • Lange termijn: pariteit voor Rust-ontwikkelaars met de Visual Studio-ervaring (build-tools, configuraties, ontwikkelcyclus).
  • Middellange termijn: o.a. automatische WDK-installatie, `NT_TARGET_VERSION`-support, volledige ARM64-ondersteuning, en aanvullende kwaliteitsverbeteringen.

Huidige stand

`windows-drivers-rs` ondersteunt bepaalde drivertypes in Rust, maar vereist momenteel nog aanzienlijke inzet van `unsafe`. Om dat te verkleinen, werkt het Windows Driver Frameworks (WDF)-team samen met Rust-experts aan veiligere abstracties voor zowel KMD (kernel mode drivers) als UMD (user mode drivers). Andere Windows-teams ontwikkelen veilige structs en API’s buiten WDF, voor kernelkern én third-party driverontwikkeling; een deel daarvan wordt al met de kernel meegeleverd.

> Kernbegrip: abstraction, een veilige, gecontroleerde manier om van user mode (minst geprivilegieerd) naar kernel mode (meest geprivilegieerd) te schakelen, met zo min mogelijk risico op geheugen- of privilegefouten.

Kwaliteit & security: best practices en CodeQL

De komende maanden deelt Microsoft best practices voor driverontwikkeling in Rust, waaronder het gebruik van CodeQL voor statische analyse. Eerder in juli is de guidance voor statische analyse van third-party drivers geüpdatet voor Windows 11 versie 25H2. Een signaal dat tooling en richtlijnen in lockstep met de nieuwe Rust-route worden aangescherpt.

Wat betekent dit voor ontwikkelaars

  • Sneller starten met drivers in Rust via `cargo-wdk` en kant-en-klare scaffolds.
  • Veiliger fundament door Rust’s memory safety en opkomende safe abstractions in WDF en kernel.
  • Toekomstbestendig: aankomende ARM64-pariteit, automatische WDK-setup en verbeterde buildconfiguratie.

Borging

Bottom line: Microsoft zet de deur wijd open voor next-gen Windows 11-drivers in Rust: vandaag al werkbaar met tooling als `cargo-wdk`, morgen steeds veiliger en volwassener dankzij nieuwe abstraheringen, platformdekking en strengere kwaliteitscontrole.