Microsoft продвигает Rust для разработки драйверов Windows 11
С 2023 года Microsoft активно интегрирует язык программирования Rust в операционную систему Windows. Теперь компания призывает разработчиков драйверов использовать этот язык для создания своих продуктов.
Rust обеспечивает повышенную безопасность памяти по сравнению с традиционными языками программирования, такими как C, что помогает предотвращать уязвимости, связанные с управлением памятью. Кроме того, он предлагает отличную совместимость с кодом на C/C++, что упрощает переход на новую технологию.
В июле этого года Microsoft поделилась первыми деталями о том, как команда Surface помогает в этой области — они создали новый открытый проект windows-drivers-rs, представляющий собой платформу для разработки драйверов Windows на Rust.
Сегодня компания опубликовала дополнительные подробности о своих успехах. Для упрощения разработки драйверов на Rust Microsoft представила новый пакет расширения cargo-wdk.
Это расширение Cargo позволяет генерировать шаблонные проекты драйверов с предварительно настроенными параметрами компоновки, этапами сборки и зависимостями. Оно также может вызывать инструменты WDK, аналогично тому, как это происходит при сборке драйверов на C в Visual Studio.
В Microsoft заявили, что их долгосрочная цель — предоставить разработчикам на Rust в среде Cargo те же инструменты сборки и варианты конфигурации, что доступны в Visual Studio. В среднесрочные планы входит автоматическая установка WDK, поддержка NT_TARGET_VERSION, полная поддержка ARM64 и другие улучшения.
Компания также подчеркнула, что команда Windows Driver Framework (WDF) сотрудничает с экспертами по Rust для создания более безопасных абстракций для драйверов режима ядра (KMD) и пользовательского режима (UMD).
Другие команды Microsoft разрабатывают безопасные структуры и API, выходящие за рамки WDF, для основного ядра и разработки драйверов сторонних производителей. Некоторые из этих разработок уже были выпущены в ядре Windows.
В заключение Microsoft сообщила, что в ближайшие месяцы поделится дополнительной информацией о лучших практиках разработки драйверов, включая использование CodeQL для статического анализа.
0 комментариев