Torvalds anunció que Rust será aceptado en Linux 6.1

septiembre 20, 2022 0 Comments

Controladores Rust en Linux

Rust ya está listo para unirse a C como un lenguaje práctico para implementar en Linux

Este año 2022 podría ser el año de Rust dentro del kernel de Linux, ya que es probable que Rust para Linux esté listo para la versión 6.1 del kernel de Linux. Esto es lo que se desprende de un reciente discurso de Linus Torvalds en el último Open Source Summit.

Y es que los principales mantenedores del kernel de Linux están familiarizados con el lenguaje C cuya edad ya se considera que debe tomarse en cuenta, pues algunos incluso están se acercan a los sesenta, mientras que una nueva generación de mantenedores cuyo grupo de edad está en la treintena está ascendiendo, lo cual es probable que aumente la dificultad de encontrar mantenedores para el kernel de Linux si su desarrollo continúa en el lenguaje C.

Durante la Open Source Summit Europe, Linus Torvalds anunció que, salvo problemas imprevistos, se incluirán los parches para respaldar el desarrollo del controlador Rust en el kernel Linux 6.1, que se espera que se lance en diciembre.

Algunos de los beneficios de obtener soporte de Rust en el kernel son facilitar la escritura de controladores de dispositivos seguros al reducir las posibilidades de errores de memoria y alentar a los nuevos desarrolladores a involucrarse en el kernel.

«Rust es una de esas cosas que creo que traerá caras nuevas… nos estamos volviendo viejos y grises», dijo Linus.

Las notas de la versión de Linux 6.0 rc1 brindan una actualización sobre el progreso del proyecto Rust para Linux: existe un grupo de trabajo relacionado, está disponible un controlador preliminar para medios de almacenamiento NVMe desarrollado con dicho lenguaje, así como un controlador para un servidor previsto para el protocolo de red 9P.

Sin embargo, el equipo continúa enfrentando dificultades con la compilación. De hecho, está hecho con GCC para el kernel mientras que Rust todavía está con LLVM. Se está trabajando en una interfaz de Rust para GCC, pero la iniciativa aún está en pañales.

El inicio del soporte de Rust para el desarrollo del kernel de Linux se considera «un paso importante para poder escribir controladores en un lenguaje más seguro». Rust de Mozilla Research es el tipo de lenguaje de programación que aquellos que escriben código para sistemas básicos de entrada/salida (BIOS), cargadores de arranque, sistemas operativos, etc. tener un interés.

Según observadores, es el futuro de la programación de sistemas en lugar del lenguaje C. De hecho, los expertos opinan que ofrece mejores garantías de seguridad de software que el par C/C++. En AWS, especifican que que elegir Rust para los proyectos de desarrollo significa agregar la eficiencia energética y el rendimiento de ejecución de C a la ventaja de la seguridad.

Linus también anunció que la versión 6.1 del kernel mejorará algunas de las partes más antiguas y fundamentales del kernel, como la función printk(). Además, Linus recordó que hace unas décadas, Intel trató de convencerlo de que el procesador Itanium era el futuro, pero él respondió

«No, esto no sucederá, porque no existe una plataforma de desarrollo para ello. ARM lo está haciendo todo bien». «

Otro problema que señaló Torvalds es la inconsistencia en la producción de procesadores ARM:

«empresas de hardware locas del Lejano Oeste, que fabrican chips especializados para diversas tareas». Agregó que «fue un gran problema cuando salieron los primeros procesadores, hoy en día hay suficientes estándares para facilitar la transferencia de núcleos a los nuevos procesadores ARM».

Además, podemos señalar la publicación de la implementación inicial del controlador rust-e1000 para adaptadores Intel Ethernet, parcialmente escrito en Rust.

El código todavía tiene una llamada directa a algunos enlaces de C, pero se está trabajando gradualmente para reemplazarlos y agregar las abstracciones de Rust necesarias para escribir controladores de red (para acceder a PCI, DMA y API de red del kernel). En su forma actual, el controlador pasa con éxito la prueba de ping cuando se inicia en QEMU, pero aún no funciona con hardware real.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.