Rust podría implementarse como segundo lenguaje de programación tanto para el kernel de Linux como para sus controladores. Por fin, la propuesta del español Miguel Ojeda pasa al siguiente nivel para convertirse casi en una realidad, aunque aún hace falta el beneplácito del equipo del sistema operativo, incluyendo a su creador Linus Torvalds.
Hace más de dos meses, Miguel Ojeda, desarrollador español que trabajó en el software del colisionador de hadrones del CERN (Organización Europea para la Investigación Nuclear), escribió una solicitud de cambios (RFC) en la que enumeraba las ventajas que supondría implementar Rust como segundo lenguaje para el kernel de Linux; sobre todo, con la idea de resolver los problemas de gestión de memoria derivados de C, principal lenguaje del kernel.
“Sabemos que existen enormes costos y riesgos al introducir un nuevo lenguaje principal en el kernel. […] Lo más importante es que cualquier nuevo idioma introducido significa que cualquier módulo escrito en ese idioma será mucho más difícil de reemplazar más adelante si se elimina la compatibilidad con el nuevo idioma,” explica Ojeda en su publicación. “Sin embargo, creemos que, incluso hoy, las ventajas de utilizar Rust superan el costo.”
Google e ISRG financiarán la propuesta
En principio, su propuesta era sólo una idea que no tenía por qué materializarse. Sin embargo, ahora Google ha decidido financiar el proyecto junto al Grupo de Investigación de Seguridad de Internet (ISRG), entidad responsable de la plataforma de certificados SSL Let’s Encrypt.
Ambas organizaciones consideran que el plan de Miguel debe llegar a buen puerto y, por eso, quieren apoyarle para que pueda trabajar en su idea a tiempo completo durante un año. No obstante, no es algo definitivo: aún queda el visto bueno de los responsables de Linux.
Por su parte, Josh Aas, director ejecutivo de ISRG, cree que, al estar escrito principalmente en C, el kernel de Linux no es seguro para la memoria. “Llevar la seguridad de la memoria al kernel de Linux es un gran trabajo, pero el proyecto Rust para Linux está progresando mucho. Nos complace anunciar que comenzamos a respaldar formalmente este trabajo en abril de 2021 al proporcionar a Miguel Ojeda un contrato para trabajar en Rust para Linux y otros esfuerzos de seguridad a tiempo completo durante un año. Esto fue posible gracias al apoyo financiero de Google”, anunció en un comunicado.
Google conoce las ventajas de Rust de primera mano
Evidentemente, la compañía de Mountain View es conocedora de los beneficios que puede traer Rust. Tanto es así que es una de las integrantes más relevantes de la Fundación Rust, junto a otros gigantes tecnológicos tan populares como Mozilla, Microsoft, Facebook o Amazon Web Services.
Y no sólo eso. Recientemente, Google anunció que Rust se convertiría en un lenguaje oficial para el desarrollo de Android. Precisamente, con esa medida, también pretenden suplir los errores de gestión de memoria presentes en C y C++, algo que puede ser beneficioso para los ciberdelincuentes. Según la organización, el 70% de las vulnerabilidades de seguridad de alta gravedad están relacionadas con esta cuestión, por lo que no es sorprendente que estén de acuerdo con el desarrollador español.
Dan Lorenc, ingeniero de software de la compañía, reconoce, al igual que Miguel Ojeda, que introducir este tipo de cambios tan radicales requiere mucho tiempo, sin embargo, considera que son inversiones necesarias para mejorar la seguridad de forma definitiva.
«Entendemos que el trabajo en algo tan utilizado y crítico como el kernel de Linux lleva tiempo, pero estamos encantados de poder ayudar al ISRG a respaldar el trabajo de Miguel Ojeda dedicado a mejorar la seguridad de la memoria del kernel para todos», declaró.
El equipo involucrado en el proyecto aún desconoce si sólo van a limitarse a desarrollar el nuevo código del kernel en Rust, tal y como prefirió hacer Google, o van a reescribirlo completamente, lo que, desde luego, sería una tarea mucho más complicada. De lo que no hay duda es de que, últimamente, la popularidad de Rust no deja de crecer.