С середины 2023 года Microsoft целенаправленно внедряет язык Rust в Windows. Сначала система научилась загружаться с кодом на Rust в ядре, а недавно компания стала активно привлекать разработчиков драйверов к использованию этого языка.
В июле Microsoft поделилась первыми подробностями о том, как команда Surface помогает в этом направлении, запустив новый проект с открытым исходным кодом под названием windows-drivers-rs — платформу для разработки драйверов Windows на Rust.
Теперь компания представила больше деталей о прогрессе разработки. Чтобы упростить создание драйверов на Rust, в составе windows-drivers-rs
появился новый пакет cargo-wdk. Это расширение Cargo создает пустые проекты драйверов с преднастроенными взаимосвязями, шагами сборки и зависимостями, а также может вызывать инструменты WDK вроде InfVerif — аналогично тому, как это делается при сборке драйвера на C в Visual Studio.
Главное преимущество Rust по сравнению с традиционными языками вроде C — безопасность работы с памятью. Rust позволяет минимизировать уязвимости, связанные с управлением памятью, и при этом обеспечивает отличную совместимость с кодом драйверов на C/C++, что облегчает переход.
Microsoft отмечает, что долгосрочная цель компании — предоставить разработчикам на Rust в среде Cargo те же инструменты сборки и параметры конфигурации, что доступны в Visual Studio. Среднесрочные планы включают автоматическую установку WDK, поддержку NT_TARGET_VERSION, полную поддержку ARM64 и другие возможности.
Сейчас windows-drivers-rs уже позволяет создавать отдельные типы драйверов на Rust, но пока требует активного использования небезопасного кода. Microsoft подчеркивает, что команда Windows Driver Framework (WDF) работает вместе с экспертами по Rust над созданием более безопасных абстракций для драйверов режима ядра (KMD) и пользовательского режима (UMD). Другие команды компании разрабатывают безопасные структуры и API за пределами WDF — как для ядра Windows, так и для сторонних драйверов. Часть из них уже включена в ядро Windows.
Абстракции позволяют безопасно переключаться между пользовательским и привилегированным режимами работы системы.
Также Microsoft заявила, что в ближайшие месяцы поделится дополнительными рекомендациями по лучшим практикам разработки драйверов, включая использование CodeQL для статического анализа. Напомним, в июле компания обновила руководство для сторонних разработчиков по статическому анализу драйверов в Windows 11, версия 25H2.
Последние статьи #Windows
• Windows 11, версия 25H2 стала «широко доступной» и предлагается всем пользователям Windows 10 и Windows 11 на совместимых ПК
• Media Creation Tool теперь скачивает официальные ISO-образы Windows 11, версия 25H2 (Сборка ОС 26200.6899)
• Обновление KB5067106 (Build 26120.6972) для Windows 11, версия 24H2 (Beta)
• Обновление KB5067106 (Build 26220.6972) для Windows 11, версия 25H2 (Dev)
• Обновления Windows 11 нарушили работу HTTP/2-соединений с localhost (127.0.0.1)
• Microsoft Copilot станет частью панели задач Windows 11, заменив классический поиск