BookinglyTech News
Software

Google retira el Binder en C del kernel Linux y deja el IPC de Android en manos de Rust

El driver de IPC de Android escrito en C se elimina tras más de 15 años en el kernel. La versión en Rust, integrada en Linux 6.18, ya iguala o supera su rendimiento.

2 min de lecturaPhoronix0 vistas

El driver Binder escrito en C, el mecanismo de comunicación entre procesos que Android lleva usando más de 15 años, va camino de desaparecer del kernel Linux. El parche de eliminación borra sus 11.000 líneas y ya está en la rama char-misc-next. Greg Kroah-Hartman lo ha recogido en el área char/misc para enviarlo en la ventana de fusión de Linux 7.4. El sustituto es el Binder en Rust, integrado en Linux 6.18, que ha alcanzado paridad funcional y un rendimiento igual o mejor que el original.

Un reemplazo que deja de ser experimento

El Binder C no se retira por capricho. Carlos Llamas, ingeniero de Google, escribió en el parche que durante más de 15 años esa implementación se volvió cada vez más compleja, hasta hacer muy doloroso mantenerla y añadir funciones sin tropezar con vulnerabilidades. La versión en Rust, según su argumento, alivia buena parte de esos problemas. Alice Ryhl ha trabajado en ella durante los últimos años, y el resultado no solo cubre las mismas funciones: también compite en rendimiento con la versión C y a menudo la supera. Lleva tiempo funcionando en dispositivos Android, así que Google ya no la considera un experimento.

Con el código C fuera, las nuevas funciones y optimizaciones se centrarán en el driver Rust. El cambio tiene miga porque Binder es una pieza crítica de Android: cualquier cosa que rompa su comportamiento afecta a la comunicación entre aplicaciones y servicios del sistema. La eliminación también marca un hito para Rust for Linux: uno de los primeros drivers «de verdad» en Rust no se queda en una prueba paralela, sino que sustituye al código de producción.

El parche está en char-misc-next y su destino es Linux 7.4. A partir de ahí, quien mantenga kernels de Android tendrá que seguir de cerca cómo convive el Binder en Rust con el resto del árbol y si aparecen dependencias del código C en parches downstream. No es el primer componente que cambia de lenguaje en el kernel, pero sí uno de los más sensibles: Binder no es un juguete de laboratorio, es infraestructura que se ejecuta en millones de teléfonos.