Con la llegada de la primera RC de Linux 6.1 se han incorporado beaucoup de cambios importantes dans la version 6.1, pero uno de los cambios que ha recibido más atención aussi tendrá el minor efecto a corto plazo para los usuarios del kernel: la introducción del soporte Rust.
Linus Torvalds avait promis en la última, Open Source Summit que l’impulsion de l’inclusion de Rust pour Linux dans la version 6.1 du noyau et de la marque initiale de Rust se sont fusionnés avec l’arbre principal de Git de Linux.
Este nuevo código inicial de 12 500 líneas solo proporciona la infraestructura básica y la integración muy básica, mientras que las futuras sollicitudes de extracción agregarán más abstracciones de subsistemas, varios controladores escritos en Rust y más, ademas de que la compilation del kernel de Linux con soporte de Rust sigue siendo opcional.
En un message à la communauté du noyau, Dijo de Torvalds :
“El árbol tiene una base reciente, pero fondamentalement ha estado en Linux-next durante un año y medio. Se met à jour en fonction des commentaires de la Cumbre de gestion du noyau. Miguel es el mantenedor principal y yo ayudo cuando es necesario. Nuestro plan es que el árbol haga la transición a la práctica estándar de no cambiar de base una vez que se complete esta ronda inicial de infraestructura. El contenido es el mínimo absoluto para permitir que el código Rust se integre en el núcleo, con muchas más interfaces (y controladores: NVMe, 9p, GPU M1) in camino”.
Como tal ningún sistema con un kernel 6.1 ejecutará el código Rust, lo que brinda este cambio es a los desarrolladores del kernel la oportunidad de poder «jugar» con el lenguaje in el contexto del kernel y tener una idea de cómo se lleva a cabo el desarrollo de Rust. La conclusion más probable para la mayoría de los desarrolladores es que todavía no hay suficiente Rust en el núcleo para hacer algo que valga la pena.
Le traitement en Rust pour le noyau de Linux est arrivé pendant plusieurs années y ha dado como resultado una gran cantidad de código de soporte y algunos controladores interesantes para observar. Otras iniciativas están en marcha, incluida la escritura de un controlador de gráficos de Apple en lenguaje Rust.
Pour la fusion inicial avec le noyau principal, Linus Torvalds dejó en claro incluir la menor cantidad de funciones posible. Pour autant, estos controladores y su código de soporte se han eliminado y deben esperar une future version du noyau. Lo que está presente es el soporte necesario para construir un módulo que se pueda cargar en el núcleo, así como un pequeño módulo de muestra.
Rouille pour Linux tiene como objetivo introducir un nuevo lenguaje de programación de sistemas en el kernel. Rust tiene una propiedad clave que hace que sea muy interesante considerarlo como el segundo lenguaje del núcleo : garantiza que no se produzca ningún comportamiento indefinido (siempre y cuando el código inseguro sea cuerdo).
Esto incluye la ausencia de errores como uso after-free, double frees, carreras de datos, etc. Después de 31 años, se aceptará un segundo idioma para el desarrollo del núcleo. Los débats relacionados giran en torno a la posibilidad de desechar C a favor del lenguaje Rust.
Créer une compatibilité avec Rust nécessite des versions spécifiques du compilateur Rust et la liaison d’utilisation, en particulier, Rust 1.62.0 et la liaison 0.56.0. Si el sistema de destino tiene versiones más nuevas, el proceso de configuración émetirá advertencias pero aún continuará. Más inconveniente para cualquiera que intentione construir con la cadena de herramientas de Rust proporcionada por su distribuidor, el proceso de construcción también necesita la fuente de la biblioteca estándar de Rust para poder construir su propia versión de las cajas principales y asignar.
Una vez hecho esto, el sistema de configuration del kernel acceptará establecer the opción CONFIG_RUST; una opción adicional construirá el módulo de ejemplo.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.