Rust ha dejado de ser un experimento en el kernel de Linux: los mantenedores reunidos en el Maintainers Summit de diciembre de 2025 acordaron que es ya una parte permanente del núcleo, y Miguel Ojeda, responsable del proyecto Rust for Linux, retiró la etiqueta de «experimental» de la documentación con un parche que resumía la decisión en una frase: el experimento ha terminado, es decir, Rust ha venido para quedarse. Llegar hasta ahí ha costado cinco años, una de las polémicas más duras de la historia reciente del kernel y la salida de al menos dos desarrolladores conocidos de sus puestos.
Las claves de Rust en el kernel de Linux en 30 segundos
- Rust entró en Linux 6.1, en diciembre de 2022, con unas 12.600 líneas de infraestructura básica.
- En diciembre de 2025 los mantenedores dieron por concluido el experimento y Rust pasó a ser parte estable del kernel.
- La polémica de 2025 sobre el código DMA acabó con Christoph Hellwig fuera de ese puesto y Hector Martin fuera de Asahi Linux.
- Ya hay código Rust en producción, como el driver Binder de Android, y el primer CVE en Rust llegó en diciembre de 2025.
El objetivo nunca fue reescribir el kernel. Rust for Linux nació para que el código nuevo, sobre todo los controladores, pudiera escribirse en un lenguaje que evita por diseño buena parte de los errores de gestión de memoria, como los accesos fuera de límites o el uso de memoria ya liberada. Es una categoría de fallos que, según han publicado Microsoft y el proyecto Chromium, está detrás de alrededor del 70 % de sus vulnerabilidades graves. C sigue siendo el lenguaje principal del kernel, y Rust convive con él. Ya repasamos en su momento las políticas de mantenimiento que se acordaron para esa convivencia.
De la propuesta de 2020 a Linux 6.1
La idea se presentó en la Linux Plumbers Conference de 2020 y Miguel Ojeda publicó la primera serie de parches en 2021. Tras año y medio en linux-next y varias revisiones, Ojeda y Kees Cook enviaron a Linus Torvalds el 1 de octubre de 2022 la petición de integración para Linux 6.1: unas 12.600 líneas con la infraestructura mínima para compilar código Rust dentro del kernel, sin controladores todavía. Desde entonces, cada versión ha ido sumando abstracciones, es decir, las capas que permiten al código Rust usar de forma segura las interfaces en C de cada subsistema.
Ese avance ha seguido acelerándose. Según la crónica de LWN del Maintainers Summit de 2025, el código Rust del kernel se multiplicó por cinco en un año, y Linux 7.4 ha recibido otras 17.000 líneas de Rust con Zerocopy y pin-init.
La pelea de 2025 por el código DMA
El momento más tenso llegó a principios de 2025. Christoph Hellwig, mantenedor del código de mapeo DMA, se opuso a incluir en su subsistema unas abstracciones de Rust que necesitaban los nuevos controladores. En la lista de correo del kernel llegó a calificar de «cáncer» la idea de extender una base de código en varios lenguajes a los subsistemas centrales, aclarando que se refería a esa mezcla y no a Rust en sí. El 21 de febrero, Torvalds zanjó la discusión: los mantenedores de C no están obligados a aceptar ni a ocuparse del código Rust, pero tampoco pueden impedir que otros usen sus interfaces desde Rust. Las abstracciones siguieron adelante y, días después, Hellwig dejó de mantener el código de mapeo DMA, que pasó a manos de Marek Szyprowski.
La polémica tuvo otra baja. Hector Martin, líder de Asahi Linux, el proyecto que lleva Linux a los Mac con chips Apple Silicon, renunció en febrero de 2025 a mantener el soporte de esas máquinas en el kernel y, poco después, a dirigir el proyecto. En su despedida mencionó el agotamiento acumulado y criticó la forma en que se había gestionado el conflicto en torno a Rust.
Diciembre de 2025: fin del experimento
En el Maintainers Summit de diciembre de 2025, en una sesión dirigida por Ojeda, el consenso fue que el experimento había salido bien. Torvalds dijo que, tras casi cinco años, había llegado el momento de quitar la etiqueta de experimental. Greg Kroah-Hartman, responsable de las versiones estables, explicó que había encontrado muchos menos problemas de integración de los que esperaba y que los controladores en Rust están resultando mucho más seguros que los escritos en C. El 12 de diciembre, Ojeda envió el parche que elimina de la documentación la sección dedicada al experimento.
Pocos días después, el 17 de diciembre, llegó el primer CVE asignado a código Rust del kernel, CVE-2025-68260: una condición de carrera en código unsafe del controlador Binder de Android que podía corromper punteros y provocar una caída del sistema, sin ejecución remota de código. Es un recordatorio de que Rust reduce mucho los errores de memoria, pero no los elimina cuando hay que recurrir a bloques unsafe para hablar con el resto del kernel.
Qué cambia para los administradores de sistemas
Rust ya no es solo una opción de compilación. El controlador Binder en Rust entró en Linux 6.18, los dispositivos con Android 16 sobre el kernel 6.12 usan el módulo ashmem escrito en Rust y Nova, el nuevo controlador para GPU de NVIDIA, ya tiene partes integradas. Según LWN, el subsistema gráfico DRM está a cerca de un año de exigir Rust para los controladores nuevos. Debian ha activado Rust en los kernels de su próxima versión, forky, y la política acordada es que el kernel compile con la versión de Rust de Debian estable. A finales de 2025 el mínimo era Rust 1.78 y Ojeda propuso subirlo a 1.85.
En la práctica, quien compile sus propios kernels necesitará el compilador de Rust y bindgen además de GCC o Clang. Quien use los de su distribución verá aparecer cada vez más módulos en Rust sin hacer nada especial. Rust también está llegando al espacio de usuario, como muestra Ubuntu 26.10 con sus coreutils en Rust. Todavía hay límites: gccrs, el compilador de Rust basado en GCC, ya compila el código Rust del kernel pero aún no genera siempre resultados correctos, y hay arquitecturas minoritarias donde el soporte es limitado. Para el contexto más amplio, merece la pena repasar cómo Rust pasó de proyecto huérfano a entrar en Windows, Linux y Android.
Preguntas frecuentes
¿Rust va a sustituir a C en el kernel de Linux?
No. El plan es usar Rust sobre todo para código nuevo, como controladores, mientras C sigue siendo el lenguaje principal. Ambos conviven.
¿Desde cuándo hay Rust en el kernel?
Desde Linux 6.1, publicado en diciembre de 2022. En diciembre de 2025 dejó oficialmente de ser experimental.
¿El código Rust del kernel no tiene vulnerabilidades?
Tiene muchas menos de memoria, pero no es inmune. El primer CVE en código Rust del kernel, CVE-2025-68260, afectó al controlador Binder en diciembre de 2025 y podía provocar una caída del sistema.
¿Necesito Rust para compilar mi kernel?
Solo si activas las opciones que dependen de Rust. En ese caso hacen falta rustc y bindgen en una versión igual o superior al mínimo que marca el kernel.
Fuentes:
- LWN: The (successful) end of the kernel Rust experiment
- LWN: The state of the kernel Rust experiment
- Phoronix: New Linux patch confirms Rust experiment is done
- LWN: Torvalds sobre las abstracciones DMA en Rust
- Phoronix: Christoph Hellwig deja el mantenimiento de los DMA helpers
- Phoronix: Rust for Linux 6.1 pull request
- Phoronix: Linux kernel Rust code sees its first CVE







