С середины 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 PowerToys 0.99.1: улучшения утилит Grab and Move и Power Display, исправления Палитры команд
• Microsoft заменит анимацию загрузки в Windows 11, оставшуюся со времен Windows 8
• Microsoft PowerToys 0.99.0: перемещение и изменение размера окон «в стиле Linux» и новая утилита Power Display для управления мониторами
• Microsoft улучшила режим сна в Windows 11: меньше пробуждений ПК, больше автономности
• Microsoft улучшает обновления Windows: меньше принудительных перезагрузок и больше контроля
• Windows K2: план Microsoft по развитию Windows 11
