マイクロソフト、次世代 Windows 11 ドライバーの機能強化の詳細を発表

マイクロソフト、次世代 Windows 11 ドライバーの機能強化の詳細を発表

Microsoft による Windows ドライバ開発への Rust の統合

2023年半ば以降、MicrosoftはRustをWindowsオペレーティングシステムに組み込むことに注力してきました。この取り組みは、RustのWindowsカーネルへの統合成功から始まり、現在ではドライバー開発者にこの革新的なプログラミング言語の採用を促すまでに発展しています。

オープンソースwindows-drivers-rsプロジェクトの立ち上げ

マイクロソフトは7月、SurfaceチームによるRustを用いたWindowsドライバ開発の簡素化を目的としたオープンソースwindows-drivers-rsプロジェクトを発表しました。このフレームワークは、Rustでのドライバ開発の効率性を高めることを目的としており、C言語などの従来の言語に代わる、より現代的な選択肢を提供します。

cargo-wdkクレートの紹介

マイクロソフトは最近、この取り組みの強化、特にクレート(crate)のロールアウトを発表しましたcargo-wdk。この新しいCargo拡張機能は、ビルドステップ、依存関係、リンケージが事前に構成された空のドライバープロジェクトを生成することで、ドライバー作成プロセスを効率化します。また、InfVerifなどのWindows Driver Kit(WDK)ツールも利用できるため、Visual StudioでC言語を使用してドライバーを構築するのと同じようなエクスペリエンスを実現できます。

Rustを使用する利点

Rustは、優れたメモリ安全性機能を備えている点で、C言語などの従来のプログラミング言語とは一線を画しています。この特性により、メモリ関連のセキュリティ脆弱性のリスクが大幅に軽減されます。さらに、RustはC言語およびC++のドライバコードとの優れた互換性を誇り、開発者にとって移行を容易にします。

将来の目標と展開

Microsoftの長期的なビジョンは、Cargoエコシステム内のRust開発者に、Visual Studioと同等のビルドツールと設定オプションを提供することです。中期的には、Windows Driver Kitの自動インストール、NT_TARGET_VERSIONのサポート、ARM64との完全な互換性など、様々な機能強化の実装を目指しています。

ドライバー開発におけるRustの現状

現在、このwindows-drivers-rsフレームワークはRustで特定の種類のドライバをサポートしていますが、依然としてかなりの量のアンセーフコードを必要とします。Microsoftは、カーネルモードドライバ(KMD)とユーザーモードドライバ(UMD)の両方において、より安全な抽象化を実現するために、Rustの専門家と積極的に協力しています。また、複数のチームが、コアカーネル機能とサードパーティ製ドライバ開発の両方に適したセキュアな構造体とAPIの開発に取り組んでおり、これらのイノベーションの一部は既にWindowsカーネルに統合されています。

ドライバー開発における抽象化の理解

この用語に馴染みのない方のために説明すると、ここでの抽象化とは、ユーザーモードとカーネルモード間の安全な遷移プロセスを指します。カーネルモードは最高権限レベルで動作し、ユーザーモードはより低い権限レベルで動作するため、安全かつ効率的な遷移が重要になります。

次のステップとベストプラクティス

今後、Microsoftは、静的解析のためのCodeQLの活用を含め、ドライバー開発に関するさらなる知見とベストプラクティスを提供していく予定です。特に注目すべきは、Windows 11バージョン25H2のリリースに合わせて、7月にサードパーティ製ドライバーの静的解析に関するガイダンスを更新したことです。

これらの開発について詳しく知りたい場合は、 Microsoft の公式 Tech Community Web サイトでブログ投稿全文をご覧ください。

出典と画像

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です