Microsoft Research писала о Rust в 2019, но драйверы всё ещё ждут.
Разработчики, которые хотят писать драйверы Windows на Rust, получили больше инструментов и примеров, но до полноценного продакшн-использования ещё далеко.
Старший инженер Microsoft Нэйт Дейсингер рассказал о текущем состоянии Rust в драйверах Windows. По его словам, уже существуют пакеты (crates) для создания валидных драйверов Windows 11 с использованием WDM (Windows Driver Model), KMDF (Kernel-Mode Driver Framework) и UMDF (User-Mode Driver Framework). WDM — более старый и низкоуровневый вариант, а KMDF и UMDF предоставляют абстракции, которыми чаще пользуются разработчики.
Тем не менее, Дейсингер отметил, что драйверам на этих пакетах всё ещё приходится использовать unsafe-блоки для взаимодействия с системой. Это снижает выгоду от Rust, хотя бизнес-логика по-прежнему получает защиту от ошибок управления памятью.
Команда Windows Driver Frameworks работает над безопасными абстракциями, которые помогут уменьшить количество небезопасного кода. Параллельно ведётся работа по внедрению Rust в само ядро Windows, часть изменений уже вошла в Windows 11 24H2. Дополняет экосистему и расширение cargo-wdk , которое постепенно становится полноценным инструментом для разработки драйверов. Например, команда <code>cargo wdk new --kmdf</code> создаёт шаблон KMDF-драйвера. В планах — поддержка ARM64, автоматическая установка зависимостей и развёртывание драйверов на тестовые машины.
Несмотря на прогресс, выпустить драйвер на Rust пока непросто. В GitHub-репозитории проекта прямо сказано, что он находится на ранней стадии и «пока не рекомендуется для продакшн-использования».
Ещё два года назад участники Windows Networking Team обсуждали , какие препятствия мешают продакшну. В январе этого года мейнтейнер подтвердил, что «заявление в readme остаётся в силе», хотя разработчики могут использовать код на свой страх и риск — при условии прохождения стандартных процедур подписания драйверов Microsoft.
Одна из проверок требует анализа через CodeQL. Этот инструмент получил поддержку Rust в публичном превью версии 2.22.1 (июль 2025), однако официальная документация WHCP указывает, что сертифицированной для драйверов остаётся версия 2.21.4.
Поэтому для продакшн-разработки Rust-драйверов пока ещё много барьеров. Дейсингер пообещал поделиться новыми подробностями о подаче Rust-драйверов в WHCP «в ближайшие месяцы».
Ещё в 2019 году Microsoft Research писала о намерении использовать Rust для устранения проблем безопасности памяти. А в 2022-м CTO Azure Марк Руссинович призывал полностью отказаться от новых проектов на C/C++ в пользу Rust.
Прошло четыре года, и теперь разработка драйверов Windows на Rust становится почти реальностью.
Разработчики, которые хотят писать драйверы Windows на Rust, получили больше инструментов и примеров, но до полноценного продакшн-использования ещё далеко.
Старший инженер Microsoft Нэйт Дейсингер рассказал о текущем состоянии Rust в драйверах Windows. По его словам, уже существуют пакеты (crates) для создания валидных драйверов Windows 11 с использованием WDM (Windows Driver Model), KMDF (Kernel-Mode Driver Framework) и UMDF (User-Mode Driver Framework). WDM — более старый и низкоуровневый вариант, а KMDF и UMDF предоставляют абстракции, которыми чаще пользуются разработчики.
Тем не менее, Дейсингер отметил, что драйверам на этих пакетах всё ещё приходится использовать unsafe-блоки для взаимодействия с системой. Это снижает выгоду от Rust, хотя бизнес-логика по-прежнему получает защиту от ошибок управления памятью.
Команда Windows Driver Frameworks работает над безопасными абстракциями, которые помогут уменьшить количество небезопасного кода. Параллельно ведётся работа по внедрению Rust в само ядро Windows, часть изменений уже вошла в Windows 11 24H2. Дополняет экосистему и расширение cargo-wdk , которое постепенно становится полноценным инструментом для разработки драйверов. Например, команда <code>cargo wdk new --kmdf</code> создаёт шаблон KMDF-драйвера. В планах — поддержка ARM64, автоматическая установка зависимостей и развёртывание драйверов на тестовые машины.
Несмотря на прогресс, выпустить драйвер на Rust пока непросто. В GitHub-репозитории проекта прямо сказано, что он находится на ранней стадии и «пока не рекомендуется для продакшн-использования».
Ещё два года назад участники Windows Networking Team обсуждали , какие препятствия мешают продакшну. В январе этого года мейнтейнер подтвердил, что «заявление в readme остаётся в силе», хотя разработчики могут использовать код на свой страх и риск — при условии прохождения стандартных процедур подписания драйверов Microsoft.
Одна из проверок требует анализа через CodeQL. Этот инструмент получил поддержку Rust в публичном превью версии 2.22.1 (июль 2025), однако официальная документация WHCP указывает, что сертифицированной для драйверов остаётся версия 2.21.4.
Поэтому для продакшн-разработки Rust-драйверов пока ещё много барьеров. Дейсингер пообещал поделиться новыми подробностями о подаче Rust-драйверов в WHCP «в ближайшие месяцы».
Ещё в 2019 году Microsoft Research писала о намерении использовать Rust для устранения проблем безопасности памяти. А в 2022-м CTO Azure Марк Руссинович призывал полностью отказаться от новых проектов на C/C++ в пользу Rust.
Прошло четыре года, и теперь разработка драйверов Windows на Rust становится почти реальностью.
- Источник новости
- www.securitylab.ru