Rust for Linux se fusiona oficialmente en Linux 6.1
El código de «Rust for Linux» se fusionó con el árbol principal de Linux 6.1 Git el pasado lunes y este nuevo código inicial de 12 500 líneas solo proporciona infraestructura e 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.
La compilación del kernel de Linux con soporte de Rust sigue siendo opcional, ya que el proyecto «Rust para Linux» está dando otro gran paso, pero algunos desarrolladores todavía parecen escépticos acerca de llevar el lenguaje Rust al kernel de Linux.
En un mensaje a la comunidad del kernel Torvalds dijo:
«el árbol tiene una base reciente, pero está fundamentalmente en linux-nextdurante 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 recordatorio, el proyecto «Rust for Linux» tiene como objetivo introducir un nuevo lenguaje de programación en el núcleo. 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. Esto incluye errores de no uso after-free, double frees, data races, etc.
Con ello, casi 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.
El soporte de Rust ha estado en linux-next durante un año y medio, y el corto log no hace justicia a la cantidad de personas que han contribuido tanto al lado del kernel de Linux como al lado ascendente de Rust para respaldar las necesidades del kernel.
Gracias a estas 173 personas, y a muchas más, que se han involucrado en todo tipo de formas
Torvalds anunció dentro de las listas de correo del Kernel, que el soporte inicial para Rust para Linux se encuentra en aproximadamente 4 áreas y las cuales incluyen:
- elementos internos del núcleo (expansión kallsyms para símbolos Rust, formato %pA);
- Infraestructura de Kbuild (reglas de compilación de Rust y scripts de soporte)
- Rust core documentación y muestras.
Torvalds investigó recientemente un posible problema de seguridad con las primitivas de ejecución especulativa de la lista enlazada del kernel escritas en ANSI C. Fue mientras solucionaba este problema que se dio cuenta de que ‘en C99, el iterador pasado a la lista de macros transversales debe declararse en un ámbito fuera del ciclo sí mismo.
Es a partir de esta observación que surgió su reciente decisión de actualizar el kernel de Linux a C11, cuya estandarización se completó en 2011. Este es el tipo de razones técnicas que podrían justificar el abandono del lenguaje C a favor de Rust por mucho tiempo, ademas del término de desarrollo básico.
El soporte de Rust para el desarrollo del kernel de Linux continúa y se considera «un paso importante para poder escribir controladores en un lenguaje más seguro». El lenguaje Rust, desarrollado por Mozilla Research, es el tipo de lenguaje de programación que utilizan quienes escriben código para sistemas básicos de entrada/salida (BIOS), gestores de arranque, sistemas operativos, etc. tener un interés.
Según algunos observadores expertos, 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 del software que el par C/C++. Por ejemplo, en el líder mundial en computación en la nube AWS, se especifica que elegir Rust para sus proyectos de desarrollo significa agregar la eficiencia energética y el rendimiento de ejecución de C a la ventaja de la seguridad.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar las listas de correo en el siguiente enlace.