El proyecto respaldado por Google para hacer de Rust el segundo lenguaje de programación en el desarrollo del kernel de Linux.
La clave del proyecto es el desarrollador español Miguel Ojeda, quien ha estado liderando la carga de trabajo llevar el lenguaje de programación de los sistemas Rust de Mozilla al kernel de Linux.
Rust y el compilador de Rust son dos elementos clave que les han gustado a los desarrolladores, a pesar de tener una gran curva de aprendizaje para aquellos que saben escribir en C y C++.
La idea, es que nuevas partes del kernel de Linux se puedan escribir en Rust en lugar de reescribir los 30 millones de líneas de código que contiene el kernel.
Rust, como lenguaje, ha encontrado apoyo financiero y de ingeniería de Amazon Web Services, Google, Microsoft, Facebook y otros; debido a su capacidad para detectar problemas de seguridad relacionados con la memoria antes de que el código llegue a las fases de producción.
Linux, por supuesto, está en el corazón de gran parte de la infraestructura de Internet y ejecuta la mayor parte de la infraestructura en la nube y los servidores web del mundo.
Pero aún quedan dudas sobre si el creador de Linux, Linus Torvalds y otros desarrolladores clave del kernel aceptarán la propuesta de Rust.
El compilador de Rust es una parte importante del lenguaje, ya que ofrece a los desarrolladores mensajes de error útiles, herramientas y soporte para completar el código en editores de código populares como Visual Studio Code, VIM o Intellij IDEA.
Sin embargo, todavía aún queda mucho trabajo por delante. Ojeda, señala que el kernel de Linux aún requiere características inestables, incluso si está compilado con una versión estable de
rustc
.
“Por lo tanto, no podemos garantizar que las futuras versiones de
rustc
funcionen sin cambios en conjunto con el kernel “, advierte Ojeda.
Ojeda y sus colaboradores han estado trabajando en GNU Compiler Collection (GCC) para Rust, una interfaz de GCC para Rust.
Hay nuevos componentes de Rust que usan implementaciones del kernel C de Linux para los controladores, con actualizaciones para Binder, un componente para comunicarse con el controlador del kernel, así como también funciona con el generador de números aleatorios basado en Rust todo ello sobre algunos dispositivos Raspberry Pi.
Además de todo esto, el proyecto de Ojeda ahora cuenta con el apoyo del equipo de Linux de Microsoft, el diseñador de chips Arm, Google e IBM. Linux Systems Group de Microsoft quiere contribuir a Rust en el kernel de Linux.
Por su parte, Arm está trabajando con la comunidad de Rust para mejorar Rust en sistemas basados en Arm.
Por ejemplo, la contribución de Arm’s RFC al lenguaje Rust convirtió a Linux en sistemas Arm de 64 bits en una plataforma compatible con Rust de nivel 1.
Google apoya y contribuye directamente al proyecto Rust para Linux, el equipo de Android Rust está evaluando una nueva implementación de Binder, donde otros controladores podrían usar una reescritura de Rust. IBM respalda el soporte del kernel de Rust Linux para PowerPC.
Torvalds ha dicho que Rust podría fusionarse en la versión de Linux 5.14. El proyecto de Rust para Linux es de código abierto y se puede comprobar en GitHub.