
Integração do Rust pela Microsoft no desenvolvimento de drivers do Windows
Desde meados de 2023, a Microsoft tem se concentrado na incorporação do Rust ao sistema operacional Windows. Essa iniciativa começou com a integração bem-sucedida do Rust ao kernel do Windows e agora evoluiu para incentivar os desenvolvedores de drivers a adotar essa linguagem de programação inovadora.
Lançamento do windows-drivers-rs
Projeto Open-Source
Em julho, a Microsoft lançou o projeto de código aberto windows-drivers-rs
, um esforço da equipe do Surface com o objetivo de simplificar o desenvolvimento de drivers para Windows usando Rust. Esta estrutura foi projetada para aumentar a eficiência do desenvolvimento de drivers em Rust, oferecendo uma alternativa mais moderna a linguagens convencionais como C.
Introdução da cargo-wdk
Caixa
Mais recentemente, a Microsoft anunciou melhorias nessa iniciativa, principalmente com o lançamento do cargo-wdk
Crate. Esta nova extensão do Cargo simplifica o processo de criação de drivers, gerando projetos de drivers vazios que vêm com etapas de compilação, dependências e vinculação pré-configuradas. Ela também pode utilizar ferramentas do Windows Driver Kit (WDK), como o InfVerif, espelhando a experiência de compilação de drivers em C no Visual Studio.
Vantagens de usar Rust
Rust se destaca de linguagens de programação tradicionais, como C, por oferecer recursos superiores de segurança de memória. Esse atributo reduz significativamente o risco de vulnerabilidades de segurança relacionadas à memória. Além disso, Rust apresenta compatibilidade excepcional com código de driver C e C++, facilitando a transição para desenvolvedores.
Metas e desenvolvimentos futuros
A visão de longo prazo da Microsoft é equipar os desenvolvedores Rust no ecossistema Cargo com ferramentas de compilação e opções de configuração que correspondam às disponíveis no Visual Studio. A médio prazo, a empresa pretende implementar a instalação automática do Windows Driver Kit, suporte para NT_TARGET_VERSION e compatibilidade total com ARM64, entre outras melhorias.
Status atual do Rust no desenvolvimento de drivers
Atualmente, o windows-drivers-rs
framework facilita tipos específicos de drivers em Rust; no entanto, ainda requer uma quantidade considerável de código inseguro. A Microsoft está colaborando ativamente com especialistas em Rust para criar abstrações mais seguras para Drivers de Modo Kernel (KMD) e Drivers de Modo Usuário (UMD).Várias equipes também estão trabalhando no desenvolvimento de estruturas e APIs seguras, adaptadas tanto para as funcionalidades principais do kernel quanto para o desenvolvimento de drivers de terceiros, com algumas dessas inovações já integradas ao kernel do Windows.
Compreendendo a abstração no desenvolvimento de drivers
Para quem não conhece o termo, abstração, neste contexto, refere-se ao processo de transição segura entre o modo usuário e o modo kernel. O modo kernel opera no nível de privilégio mais alto, enquanto o modo usuário opera em um nível de privilégio mais baixo, destacando a importância de transições seguras e eficientes.
Próximos passos e melhores práticas
Olhando para o futuro, a Microsoft planeja fornecer mais insights e práticas recomendadas sobre o desenvolvimento de drivers, incluindo o uso de CodeQL para análise estática. Notavelmente, a empresa atualizou suas diretrizes para análise estática de drivers de terceiros em julho, em alinhamento com o lançamento do Windows 11 versão 25H2.
Para explorar mais sobre esses desenvolvimentos, você pode acessar a postagem completa do blog aqui no site oficial da Comunidade de Tecnologia da Microsoft.
Deixe um comentário