С середины 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
• Microsoft подтвердила проблему с доступом к диску C: на ноутбуках Samsung после обновления Windows 11
• Microsoft Edge 146: новая вкладка с Copilot, отключение «Коллекций» и обновления менеджера паролей
• Windows 11 Insider Preview Build 29550 (Canary) доступен для тестирования
• Windows 11 Build 28020.1737 (Canary): Обновление KB5079452 для Windows 11, версия 26H1
• Обновление KB5079464 (Build 26300.8068) для Windows 11, версия 25H2 (Dev)
• Обновление KB5079458 (Build 26220.8062) для Windows 11, версия 25H2 (Beta)
