Desde Linux Darkcrizt  

Linux 6.1 RC1, el primer vistazo a Rust en Linux

 

RustLinux

La integración de Rust en Linux ha tenido un gran nivel de aceptación por parte de la comunidad y desarrolladores

Con la llegada de la primera RC de Linux 6.1 se han incorporado muchos cambios importantes en la versión 6.1, pero uno de los cambios que ha recibido más atención también tendrá el menor efecto a corto plazo para los usuarios del kernel: la introducción del soporte Rust.

Linus Torvalds había prometido en la última, Open Source Summit que impulsaría la inclusión de Rust para Linux en la versión 6.1 del kernel y del cual el marco inicial de Rust se ha fusionado con el árbol 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 solicitudes de extracción agregarán más abstracciones de subsistemas, varios controladores escritos en Rust y más, ademas de que la compilación del kernel de Linux con soporte de Rust sigue siendo opcional.

En un mensaje a la comunidad del kernel, Torvalds dijo:

“El árbol tiene una base reciente, pero básicamente ha estado en Linux-next durante un año y medio. Se actualizó en función de los comentarios de la Cumbre de mantenimiento del kernel. 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) en 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 en el contexto del kernel y tener una idea de cómo se lleva a cabo el desarrollo de Rust. La conclusión 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.

El trabajo en Rust para el kernel de Linux ha estado ocurriendo durante algunos años 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.

Para la fusión inicial con el núcleo principal, Linus Torvalds dejó en claro incluir la menor cantidad de funciones posible. Por lo tanto, estos controladores y su código de soporte se han eliminado y deben esperar una futura versión del kernel. 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.

Rust for 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 debates relacionados giran en torno a la posibilidad de desechar C a favor del lenguaje Rust.

Crear compatibilidad con Rust requiere versiones específicas del compilador Rust y la utilidad bindgen, específicamente, Rust 1.62.0 y bindgen 0.56.0. Si el sistema de destino tiene versiones más nuevas, el proceso de configuración emitirá advertencias pero aún continuará. Más inconveniente para cualquiera que intente 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 configuración del kernel aceptará establecer la 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.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.