Google desarrolla una nueva pila de Bluetooth para Android, escrita en Rust
Rust ha despegado con una popularidad impulsada en gran medida por las grandes empresas tecnológicas y las soluciones utilizadas a gran escala. Tras su soporte en la rama Linux-Next, el área de espera de parches para la próxima ventana de fusión del kernel, este mes Google reveló esta semana que la nueva versión de la pila Bluetooth de Android, Gabeldorsche, está escrita con Rust.
Esta noticia llega aproximadamente dos meses después de que Google se uniera a la Fundación Rust, pues en el repositorio de Git que contiene los códigos fuente para Android, Google anunció que la nueva versión de Gabeldorsche, la pila de Bluetooth utilizada en Android desde la versión 11, se ha reescrito con Rust.
Aún faltan los detalles del proyecto, solo están disponibles las instrucciones de montaje.
“Actualmente, los componentes de Rust se construyen de manera diferente en Android y Linux. Nos falta el soporte de Rust en nuestra cadena de herramientas GN. Así que actualmente estamos construyendo las bibliotecas de Rust…”, dijo el equipo.
De hecho, a pesar de su uso común, Bluetooth todavía puede ser una tecnología inconsistente, con algunos sistemas operativos y dispositivos manejándolo mejor que otros. El software responsable de administrar las muchas partes móviles de una conexión Bluetooth se conoce generalmente como una «pila» de Bluetooth.
Durante años, Android ha confiado en la pila de «fluoruro» para sus necesidades de Bluetooth, pero con Android 11, Google comenzó a probar una pila completamente nueva llamada Gabeldorsche o «GD» para abreviar. Gabeldorsche ha estado en desarrollo desde 2019, pero Google lo lanzó al público por primera vez en 2020.
Según Google, Gabeldorsche está diseñado para dar estabilidad a las redes Bluetooth, mejorando así la conectividad de los dispositivos móviles con la domótica u otro tipo de dispositivos.
“La seguridad de la memoria es un desafío continuo para los desarrolladores de software, especialmente para aquellos que trabajan con programas del sistema. Google ha comenzado a usar Rust en contextos donde la seguridad y el rendimiento de la memoria son consideraciones críticas, especialmente en los principales sistemas Android ”, explicó la compañía.
Por ahora, se puede compilar todo el código de Rust usando Cargo. Sin embargo, el equipo agregó que hay algunas dependencias necesarias: debe tener instalado el paquete «protobuf-compiler», tener una versión reciente de «Cargo + Rust» y usar «build.py» en la raíz.
Cabe destacar que en paralelo para el SO Fuchsia, se está desarrollando otra pila de Bluetooth, para cuyo desarrollo también se utiliza el lenguaje Rust.
Además, se ha escrito una nueva pila de redes, Netstack3, para Fuchsia en Rust y no solo eso aquí hay algunos ejemplos de proyectos en los que Google ya está usando Rust o contribuyendo al ecosistema de Rust:
- Módulos del sistema operativo en Android, incluidos Bluetooth y Keystore 2.0.
- Proyectos de bajo nivel, como el monitor de máquina virtual crosvm (alternativa a QEMU) y los controladores utilizados en Chrome OS.
- Contribución a proyectos de código abierto que utilizan Rust, como el sistema de control de código fuente Mercurial.
- Firmware para admitir claves de seguridad FIDO.
Además, Binder, el mecanismo de comunicación entre procesos (IPC), utilizado en Android, también se reescribe en Rust, asi como tambien una nueva pila de red, Netstack3, está escrita en Rust para Fuchsia. Según Google, Fuchsia es un sistema operativo de producción de código abierto que prioriza la seguridad, las actualizaciones y el rendimiento.
Según la compañía, Fuchsia es una base para que los desarrolladores creen productos y experiencias duraderas en una amplia gama de dispositivos.
«Un conjunto de principios arquitectónicos fundamentales, seguros, actualizables, inclusivos y pragmáticos guían el diseño y desarrollo de Fuchsia», escribió la compañía en su sitio sobre el sistema operativo. Si bien existen marcos propuestos para guiar su diseño, Fuchsia es un trabajo en progreso.
Se rumoreaba que era el reemplazo de Android y Chrome OS. Sin embargo, Google dijo en julio de 2019 que su intención no era reemplazar estos dos sistemas operativos, sino que «solo estaba probando nuevos conceptos».