El Kernel de Linux Madura para Tener una Versión Mínima de Herramientas de Rust

Published:

En cada ciclo del kernel de Linux, hemos visto parches que actualizan la versión del lenguaje Rust que el kernel apunta a soportar, trabajando hacia una versión mínima adecuada. Con los últimos parches del kernel de Linux, parece que finalmente estamos alcanzando el punto donde se puede especificar una versión mínima segura, permitiendo así al kernel soportar múltiples versiones diferentes del compilador Rust.

El desarrollador líder del esfuerzo Rust para Linux, Miguel Ojeda, envió un conjunto de parches el lunes por la noche para abrir el código del kernel de Rust a múltiples versiones del compilador «rustc». Miguel explicó en la lista de correo:

«Es momento de comenzar a soportar varias versiones de la herramienta Rust y, por lo tanto, establecer una versión mínima del compilador Rust y de bindgen.

Para el compilador Rust, comenzaremos con una ventana de dos versiones estables y la ampliaremos con el tiempo. Esta serie mantiene el mínimo donde está (1.78.0), pero agrega soporte para la recientemente lanzada 1.79.0.

Esto debería ser suficiente para los desarrolladores del kernel en distribuciones que proporcionan versiones recientes del compilador Rust de manera rutinaria, como Arch Linux, Debian Unstable (fuera del período de congelación), Fedora Linux, Gentoo Linux (especialmente el canal de pruebas), Nix (inestable) y openSUSE Tumbleweed. Se agrega una documentación con las instrucciones para cada una de ellas.

Además, Rust para Linux ahora se está construyendo y probando en el CI previo a la fusión de Rust. Es decir, cada cambio que intenta aterrizar en el compilador Rust se prueba contra el kernel, y se fusiona solo si pasa, ¡gracias al proyecto Rust por eso!

Así, con el CI previo a la fusión en su lugar, ambos proyectos esperan evitar cambios no intencionales en Rust que rompan el kernel. Esto significa que, en general, aparte de cambios intencionales de su parte (que necesitaremos solucionar condicionalmente de nuestro lado), las versiones futuras del compilador Rust deberían funcionar generalmente.

Por ejemplo, actualmente, las ramas beta (1.80.0) y nightly (1.81.0) también funcionan.»

Dado el CI upstream y la evolución del soporte Rust para Linux a lo largo de varios ciclos del kernel y versiones upstream de Rust, parece que una versión mínima segura está lista para ser declarada en el soporte del kernel de Linux. Los 13 parches tentativos para establecer el soporte para manejar múltiples versiones de la herramienta Rust ahora están disponibles para discusión en la lista de correo rust-for-linux.

Impacto en el Desarrollo del Kernel

El establecimiento de una versión mínima definida y el estado de madurez general del ecosistema Rust para el kernel de Linux deberían llevar a más desarrollos útiles de controladores basados en Rust y otros códigos del kernel Rust. Ya no será necesario adaptarse a un objetivo en movimiento, lo que facilitará el desarrollo y la integración de nuevas características.

La comunidad espera que esto se finalice a tiempo para Linux 6.11 o quizás se extienda a un ciclo del kernel posterior. Con la certeza de una versión mínima soportada, los desarrolladores pueden enfocarse en construir sobre una base estable, lo que promete un futuro más robusto y seguro para el kernel de Linux.

Conclusión

El avance en la integración de Rust en el kernel de Linux representa un paso significativo hacia un entorno de desarrollo más moderno y seguro. La capacidad de soportar múltiples versiones del compilador Rust no solo facilitará la vida de los desarrolladores, sino que también abrirá la puerta a innovaciones más rápidas y eficientes dentro del ecosistema del kernel. Estaremos atentos para ver cómo este esfuerzo se materializa en las próximas versiones del kernel y qué nuevas posibilidades trae consigo.

- Advertisement -
Jorge
Jorgehttps://nksistemas.com
Soy Jorge, Sr Sysadmin Linux/DevOps/SRE y creador de NKSistemas.com Trabajo con plataformas: Linux, Windows, AWS, GCP, VMware, Helm, kubernetes, Docker, etc.

Related articles