Canonical financia doctorado para traducir C a Rust automáticamente en Ubuntu
La empresa detrás de Ubuntu invierte en un proyecto de tres años que busca automatizar la migración de código C a Rust seguro y mantenible. Usarán AppArmor y snap-confine como casos de prueba reales.
Canonical anunció el financiamiento de un doctorado de tres años enfocado en crear un sistema capaz de traducir automáticamente grandes bases de código escritas en C hacia Rust. El proyecto cuenta con cofinanciamiento de UK Research and Innovation y se llevará a cabo en el Grupo de Investigación en Lenguajes de Programación de la Universidad de Bristol.
El estudiante Alex Wood será el responsable principal del trabajo, supervisado por el profesor Meng Wang, la doctora Cristina David y Jon Seager de Canonical. El objetivo es desarrollar una plataforma integral que tome repositorios de cientos de miles de líneas de C y genere código Rust que sea seguro, equivalente en comportamiento y fácil de mantener.
El proceso se divide en etapas claras. Primero, el sistema debe descomponer la codebase en fragmentos manejables sin perder el rastro de las dependencias entre ellos. Luego, modelos de lenguaje entrenados específicamente en conversiones reales de C a Rust se encargan de la traducción, buscando que el resultado parezca escrito por un desarrollador de Rust y no solo C con sintaxis nueva.
La parte más compleja viene después: verificar que el código traducido se comporte exactamente igual que el original. Para esto se usarán técnicas de fuzzing, chequeos formales de equivalencia y, cuando sea necesario, un paso de reparación automática basado en técnicas simbólicas de corrección de programas.
Jon Seager, de Canonical, aclaró que los modelos de lenguaje son solo una parte del flujo. Todo lo que generen deberá pasar validaciones rigurosas antes de que se pueda confiar en él. Por eso eligieron dos componentes críticos que ya corren en producción en Ubuntu: AppArmor y snap-confine. No son proyectos simples, precisamente porque quieren probar el enfoque con código que realmente protege el sistema.
Seager también fue claro en un punto importante: nada de lo que salga de este doctorado se incorporará de inmediato a estas herramientas. El interés de Canonical es evaluar si la traducción automática puede ser confiable para componentes de seguridad crítica, no lanzar un rewrite apresurado.
Si el método demuestra su validez, Ubuntu podría beneficiarse a largo plazo con componentes críticos que tengan menos vulnerabilidades de memoria sin que Canonical tenga que invertir años en reescrituras manuales. Para los usuarios, tanto de escritorios comunes como de despliegues empresariales, esto representa una mejora potencial en seguridad sin los riesgos habituales de las migraciones grandes.
El proyecto también aporta a la conversación más amplia sobre cómo el ecosistema Linux puede aprovechar Rust para reemplazar gradualmente código C propenso a errores, manteniendo la compatibilidad y el rendimiento que ya existen en producción.
Desde MamaLibre seguimos de cerca estas iniciativas porque alinean con el espíritu de mejorar la calidad y la seguridad del software libre mediante herramientas y métodos innovadores, siempre con la mirada puesta en la utilidad práctica para la comunidad.