Noticia Linus Torvalds dice que es probable que Rust llegue en Linux 5.20

Rust-Linux.png



Durante la cumbre de código abierto de The Linux Foundation en Austin, Texas, Linus Torvalds menciono que espera que el soporte para el código Rust en el kernel de Linux se fusione pronto y que tal evento posiblemente podría suceder con el próximo lanzamiento del Kernel 5.20.

Esta noticia fue dada a conocer después de que Linus Torvalds y Dirk Hohndel tuvieran su habitual intercambio durante una sesión de la edición 2022 del Open Source Summit. Linus Torvalds luego comentó sobre la evolución del proyecto Rust para Linux, señalando que es probable que esté listo para Linux 5.20.



Esto es gracias a las publicaciones periódicas en las que ha estado trabajando Miguel Ojeda, líder del proyecto Rust for Linux, y las cuales ya habían permitido elaborar un listado de los avances de la iniciativa: soporte para un compilador beta de Rust, prueba de soporte para las arquitecturas ARM y RISC-V, nuevas abstracciones de Rust, etc.

Con ello se espera poder mitigar diveras vulnerabilidades que han afectado al kernel de Linux en 20 años, las cuales se estiman que son al rededor del 15,9% de las, 2288 vulnerabilidades que (cifras del diccionario Common Vulnerabilities and Exposure (CVE)) que están vinculadas a fallas en el lenguaje C.

Los problemas relacionados con la gestión de la memoria en su mayoría son: memoria de búfer desbordada, sin liberar asignaciones, acceso a áreas de memoria no válidas o liberadas, etc.


Linus 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 las macros transversales de la lista debe declararse en un ámbito fuera del bucle en sí.

Es a partir de esta observación que surgió su reciente decisión de trasladar el kernel de Linux aModern C (C11) cuya estandarización se completó en 2011. Estos son los tipos de razones técnicas que podrían justificar desechar el lenguaje C en favor de Rust para el desarrollo del kernel a largo plazo.

La noticia llega en un momento en que la visión de Linus Torvalds sobre el lenguaje Rust ha cambiado. De hecho, el soporte de Rust para el desarrollo del kernel de Linux está comenzando a tomar forma y se considera «un paso importante para poder escribir controladores en un lenguaje más seguro».

Al menos desde diciembre pasado, cuando un parche agregó soporte para Rust como segundo lenguaje para el código del kernel, la comunidad de Linux ha estado anticipando esta transición, con la esperanza de que conduzca a una mayor estabilidad y seguridad.


«Mucha gente en realidad piensa que somos demasiado reacios al riesgo», dijo Torvalds. «Entonces, cuando se trata de Rust, se ha discutido durante varios años hasta ahora. Está llegando al punto en que muy pronto, lo fusionaremos en el kernel. Tal vez en el próximo lanzamiento».

Sin embargo, Torvalds en su momento realizo una dura crítica sobre la implementación de rust:

«Antes de que la gente de Rust se emocione», dijo el creador y jefe del kernel de Linux. «¿Verdad? Sabes quién eres. Para mí, es una prueba, ¿verdad? Queremos tener la seguridad de la memoria [de Rust]. Así que hay razones técnicas reales por las que Rust es una buena idea en el kernel.

«Pero al mismo tiempo, es una de esas cosas: Probamos C++ hace más de 25 años y lo probamos durante dos semanas y luego dejamos de intentarlo. Entonces, para mí, Rust es una forma de probar algo nuevo. Y con suerte , funciona, y la gente ha estado trabajando mucho en ello, así que realmente espero que funcione porque de lo contrario estarán desanimados».

Para quienes desconocen de Rust, deben saber que es un lenguaje de programación, a palabras de muchos, 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 de software que el par C/C++.

En AWS, por ejemplo, recomiendan elegir Rust para sus proyectos de desarrollo, lo cual significa agregar la eficiencia energética y el rendimiento de ejecución de C a la ventaja de seguridad.




Continúar leyendo...