С середины 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.94: поиск в настройках, обнаружение конфликтов горячих клавиш и другие улучшения
• Microsoft внедряет Rust в драйверы Windows 11 для лучшей безопасности
• Windows 11, версия 25H2 не получит новых функций: Поддержка до 2027 года и удаление устаревших компонентов
• Microsoft закрывает расширение Microsoft Editor для Chrome и Edge — функции уже встроены в браузер Edge
• Statcounter: Почти половина всех ПК с Windows работают на Windows 11
• Microsoft: Обновления для Windows 11 не стали причиной поломки SSD