Linux 7.4 retira Binder en C: el relevo en Rust conserva auxiliares
Índice de contenidos
Claves de la noticia
- Linux 7.4 incorpora la retirada del controlador Binder en C y deja la implementación en Rust como relevo.
- El código conserva la opción ANDROID_BINDER_IPC_RUST y cambia el objeto compilado de rust_binder.o a binder.o.
- La nueva ruta mantiene componentes auxiliares en C; el cambio no actualiza automáticamente los teléfonos Android existentes.
Linux acaba de cruzar una frontera relevante para Rust: una implementación que convivía con un controlador veterano pasa a ocupar su lugar. Linus Torvalds integró los cambios de Binder en el árbol principal el 25 de octubre, dentro del desarrollo de Linux 7.4. La revisión del código permite precisar tanto la sustitución como sus límites: desaparece el controlador antiguo, pero no todo el C relacionado con Binder.
La integración ya tiene fecha y código verificable
El commit de integración de char-misc está fechado a las 01:44:26 UTC del domingo 25, las 02:44:26 en Madrid después del cambio al horario de invierno. Es el momento de incorporación al árbol de Torvalds, distinto de la preparación del parche en ramas de mantenimiento durante septiembre. La novedad es esa entrada en el desarrollo principal, no que la reescritura haya nacido este fin de semana.
Greg Kroah-Hartman, responsable del envío, destaca la retirada de la implementación en C y considera estable la versión en Rust. Su previsión de uso futuro en miles de millones de dispositivos expresa el alcance esperado del trabajo. No es un recuento de teléfonos que ya hayan recibido este cambio ni un calendario de distribución comercial.
El paquete incluye 446 commits y numerosos controladores ajenos a Android. Por eso, sus 413 archivos modificados y sus estadísticas globales no deben atribuirse al relevo de Binder. Confundir el tamaño de toda la integración con el de una sola sustitución exageraría el cambio. El análisis debe acotarse a los archivos pertinentes y a su función.
Dos nombres que conviene comprobar al compilar
La lectura de Kconfig en esa revisión exacta muestra un detalle importante: la opción conservada es ANDROID_BINDER_IPC_RUST. Desaparece la alternativa ANDROID_BINDER_IPC y la opción superviviente exige RUST, además de MMU y NET. El nombre visible pasa a ser el genérico Android Binder IPC Driver, aunque el identificador interno siga indicando el lenguaje.
La consecuencia para quien mantenga configuraciones propias es concreta. Una configuración que solo activase el antiguo identificador en C necesita revisarse al migrar a este árbol. No basta con asumir que el rótulo genérico de la interfaz conserva el mismo símbolo. Además, la opción tiene valor predeterminado desactivado: la presencia del código no equivale a que cualquier compilación de Linux incluya Binder.
En paralelo, el Makefile del nuevo controlador cambia el objeto agregado de rust_binder.o a binder.o. Son dos capas diferentes: el símbolo que selecciona la función mantiene el sufijo Rust, mientras el objeto construido adopta el nombre general. Esa combinación ayuda a explicar por qué buscar únicamente un nombre antiguo puede inducir a error al revisar scripts de construcción.
El controlador antiguo se va; los auxiliares en C permanecen
Un recuento propio de los archivos marcados como eliminados bajo drivers/android en la respuesta pública del commit encuentra 12 archivos y 11.411 líneas retiradas. El método suma las eliminaciones de esos archivos completos, incluidos cabeceras y pruebas; no calcula una reducción neta del subsistema ni cuenta como borrados los archivos que simplemente cambian.
Entre los retirados figuran binder.c, binder_alloc.c y binderfs.c de la implementación anterior. Sin embargo, dentro de la nueva carpeta permanece rust_binderfs.c y también se incorpora al objeto final rust_binder_events.o. La comparación del listado de archivos con el Makefile ofrece una conclusión más precisa que hablar de una desaparición absoluta del lenguaje: se elimina la ruta antigua en C, pero la ruta que la sustituye sigue combinando Rust con auxiliares en C.
Ese matiz importa al evaluar seguridad. El cambio concentra el desarrollo del controlador en la implementación elegida y evita mantener dos alternativas completas. No demuestra que todos los riesgos de memoria hayan desaparecido, que las dependencias estén escritas íntegramente en Rust o que se haya reparado una vulnerabilidad concreta en cada teléfono.
Binder sigue conectando procesos de Android
La documentación de Android define Binder como el mecanismo que permite a dos procesos comunicarse y ejecutar llamadas a funciones a través de esa frontera. El proceso cliente utiliza un proxy y el servidor expone la interfaz correspondiente. Sustituir el controlador del kernel no significa retirar ese mecanismo del sistema.
Rust for Linux explica que la mayoría de la comunicación entre procesos de Android pasa por Binder. También sitúa la incorporación inicial del controlador Rust en Linux 6.18-rc1 e identifica a Alice Ryhl como su mantenedora actual, después del trabajo original de Wedson Almeida Filho. El relevo de hoy culmina así una convivencia previa: incorporar una alternativa y retirar después la antigua son hitos diferentes.
El interés de esta transición encaja con otros cambios de bajo nivel, como la gestión de memoria de TDX en Linux 7.4. En ambos casos resulta decisivo distinguir la capacidad integrada en el kernel de su uso efectivo en un equipo. Para comprender otra aplicación distinta del lenguaje, también sirve el antecedente de TypeScript ejecutado mediante Rust y WebAssembly: compartir lenguaje no implica compartir alcance ni garantías.
El salto al árbol principal aún no es una actualización móvil
Para los usuarios españoles de Android, este commit no ofrece una descarga que sustituya Binder en su móvil. La adopción depende del kernel que utilice el fabricante y de su proceso de integración y actualización. Tampoco hay en el envío una lista de modelos españoles, fechas comerciales o mediciones comparables de batería y velocidad.
La lectura útil para desarrolladores es más inmediata: comprobar la dependencia de Rust, el identificador de configuración y los objetos compilados antes de trasladar sus ajustes. Para el lector que sigue la evolución de Linux, el avance demostrado es que el árbol principal deja de ofrecer las dos implementaciones completas. El alcance verificable termina ahí; convertirlo en una promesa universal de rendimiento o seguridad iría más allá del código publicado.



