
Integración de Rust por parte de Microsoft en el desarrollo de controladores de Windows
Desde mediados de 2023, Microsoft se ha centrado en la incorporación de Rust al sistema operativo Windows. Esta iniciativa comenzó con la exitosa integración de Rust en el kernel de Windows y ahora ha evolucionado para animar a los desarrolladores de controladores a adoptar este innovador lenguaje de programación.
Lanzamiento del windows-drivers-rs
Proyecto de Código Abierto
En julio, Microsoft presentó el proyecto de código abierto windows-drivers-rs
, una iniciativa del equipo Surface destinada a simplificar el desarrollo de controladores de Windows con Rust. Este framework está diseñado para optimizar el desarrollo de controladores en Rust, ofreciendo una alternativa más moderna a lenguajes convencionales como C.
Introducción de la cargo-wdk
caja
Recientemente, Microsoft anunció mejoras en esta iniciativa, en particular con el lanzamiento de la cargo-wdk
extensión Cargo. Esta nueva extensión Cargo optimiza el proceso de creación de controladores al generar proyectos de controladores vacíos que incluyen pasos de compilación, dependencias y vinculación preconfigurados. También puede utilizar herramientas del Kit de controladores de Windows (WDK) como InfVerif, lo que replica la experiencia de compilar controladores con C en Visual Studio.
Ventajas de usar Rust
Rust se distingue de los lenguajes de programación tradicionales como C al ofrecer características superiores de seguridad de memoria. Esta característica mitiga significativamente el riesgo de vulnerabilidades de seguridad relacionadas con la memoria. Además, Rust presume de una compatibilidad excepcional con el código de controlador de C y C++, lo que facilita la transición para los desarrolladores.
Objetivos y desarrollos futuros
La visión a largo plazo de Microsoft es dotar a los desarrolladores de Rust dentro del ecosistema Cargo de herramientas de compilación y opciones de configuración compatibles con las de Visual Studio. A medio plazo, la compañía busca implementar la instalación automática del Kit de controladores de Windows, compatibilidad con NT_TARGET_VERSION y compatibilidad total con ARM64, entre otras mejoras.
Estado actual de Rust en el desarrollo de controladores
Actualmente, el windows-drivers-rs
framework facilita tipos específicos de controladores en Rust; sin embargo, aún requiere una cantidad considerable de código inseguro. Microsoft colabora activamente con especialistas de Rust para crear abstracciones más seguras tanto para los controladores en modo kernel (KMD) como para los controladores en modo usuario (UMD).Varios equipos también trabajan en el desarrollo de estructuras y API seguras adaptadas tanto a las funcionalidades principales del kernel como al desarrollo de controladores de terceros; algunas de estas innovaciones ya están integradas en el kernel de Windows.
Comprensión de la abstracción en el desarrollo de controladores
Para quienes no estén familiarizados con el término, la abstracción en este contexto se refiere al proceso de transición segura entre el modo usuario y el modo kernel. El modo kernel opera con el nivel de privilegio más alto, mientras que el modo usuario funciona con un nivel de privilegio más bajo, lo que resalta la importancia de transiciones seguras y eficientes.
Próximos pasos y mejores prácticas
De cara al futuro, Microsoft planea proporcionar más información y mejores prácticas para el desarrollo de controladores, incluyendo el uso de CodeQL para el análisis estático. Cabe destacar que la compañía actualizó sus directrices para el análisis estático de controladores de terceros en julio, coincidiendo con el lanzamiento de Windows 11 versión 25H2.
Para explorar más sobre estos desarrollos, puede acceder a la publicación del blog completa aquí en el sitio web oficial de la comunidad tecnológica de Microsoft.
Deja una respuesta