Después de los incidentes que se han suscitado dentro de la comunidad de desarrolladores del Kernel de Linux, debido a una discusión sobre la introducción de Rust en el kernel, en donde diferentes desarrolladores han dado a conocer su postura sobre el rumbo que estÔ tomando el proyecto.
Greg Kroah-Hartman, un reconocido mantenedor de la rama estable del kernel de Linux, ha salido a dar la cara por Rust y ha manifestado su respaldo al uso del lenguaje Rust en el desarrollo de nuevos componentes del nĆŗcleo.
Greg menciona que durante los últimos 15 años, ha sido una de las principales fuentes de información sobre errores y vulnerabilidades en el kernel y afirma que muchos de estos problemas provienen de peculiaridades no documentadas del lenguaje C. Rust, en contraste, elimina por completo estas ambigüedades, lo que representa un avance significativo en términos de estabilidad y seguridad.
Ventajas de Rust en el Kernel
Para Greg uno de los principales beneficios de integrar Rust en el desarrollo del kernel es la erradicación de errores comunes de manejo de memoria. Problemas como el acceso a memoria liberada, desbordamientos parciales de búfer, liberación incorrecta de recursos tras fallos en la ejecución y la omisión de validaciones en códigos de retorno, se verÔn reducidos drÔsticamente. Gracias a estas mejoras, los mantenedores del kernel podrÔn enfocarse en aspectos mÔs relevantes, como condiciones de carrera y problemas lógicos, en lugar de perder tiempo resolviendo fallos evitables.
El código existente en C no serÔ reemplazado, pero la posibilidad de escribir nuevos controladores y subsistemas en Rust contribuirÔ a mejorar la calidad del software en el futuro. AdemÔs, el uso de este lenguaje permitirÔ reestructurar las API internas del kernel para hacerlas mÔs comprensibles y seguras, lo que reducirÔ significativamente la carga de los mantenedores al garantizar su correcto uso. A medida que evolucionen los envoltorios (wrappers) en Rust, se podrÔ optimizar el diseño del kernel, beneficiando tanto a los desarrolladores de Rust como a aquellos que continúan utilizando C.
Greg Kroah-Hartman deja claro que Rust no es una solución mÔgica que resolverÔ todos los problemas del kernel, pero sà una herramienta valiosa que mejorarÔ muchos aspectos del desarrollo. También señala que el uso de múltiples lenguajes dentro del núcleo no representa un obstÔculo insalvable. La comunidad de desarrolladores de Linux ha abordado retos aún mÔs complejos en el pasado, y la incorporación de Rust es simplemente otro paso hacia el fortalecimiento del proyecto a largo plazo.
A esta discusión se sumó Kees Cook, ex administrador jefe de sistemas de kernel.org y lĆder del equipo de seguridad de Ubuntu. Cook enfatizó que la intención no es reescribir el código existente en Rust, sino proporcionar la opción de utilizarlo para el desarrollo de nuevos componentes. Esta estrategia no solo reducirĆ” la cantidad de errores de memoria, sino que tambiĆ©n agilizarĆ” el proceso de desarrollo, ya que Rust permite detectar fallos en una etapa temprana del proceso de codificación, antes de que el software llegue a la fase de prueba.
Y es que se menciona que la viabilidad de esta estrategia ha sido comprobada previamente por Google en Android. Se ha demostrado que el código nuevo es la principal fuente de problemas de seguridad, por lo que mejorar su calidad desde el principio es una prioridad. De hecho, se ha observado que el código antiguo tiene una menor densidad de vulnerabilidades con el paso del tiempo. Por ejemplo, un código escrito hace cinco años presenta, en promedio, 3.4 veces menos fallos de seguridad en comparación con código mÔs reciente.
Como tal, se menciona que la integración de Rust en el kernel de Linux es un avance clave para mejorar la seguridad, la eficiencia del desarrollo y la estabilidad del sistema. No se trata de un reemplazo del código en C, sino de una evolución que permitirÔ escribir software mÔs seguro y confiable en el futuro.
Finalmente, si estƔs interesado en poder conocer mƔs al respecto, puedes consultar los detalles en el siguiente enlace.