Android utiliza Linux como kernel, o al menos eso se supone, porque Google le mete tantas modificaciones que el producto resultante es incompatible con el código del proyecto del que procede. Esta situación empeora cuando se añaden las modificaciones de los fabricantes, forzando la adición de parches particulares que terminan complicando el mantenimiento del kernel de Android (¿o era Linux?).
De hecho, la “relación” de Android con la rama principal del kernel Linux no siempre ha sido del todo buena, ya que los drivers del sistema operativo móvil de Google llegaron a ser apartados de la rama general para volver tiempo después. Viendo la enorme fragmentación de Android y el trabajo adicional que requiere su kernel modificado, parece que el gigante de Mountain View se está cansando de la situación y quiere ahora dar marcha atrás para que el kernel del sistema móvil se ajuste mejor a la rama principal de Linux.
Dicho con otras palabras, Google quiere ahora que todos los móviles Android funcionen con un kernel Linux genérico en lugar de la actual versión altamente personalizada, y a ser posible empleando la rama general dirigida por Linus Torvalds y Greg Kroah-Hartman. La cantidad de código modificado introducido en el kernel de Android se ha ido reduciendo con el paso del tiempo, pasando de 60.000 líneas a 32.000, y la compañía espera que la diferencia se vaya reduciendo conforme pasen los meses. De hecho, ha llegado hasta a realizar una demostración de un dispositivo Android más o menos funcional con una compilación de la última versión de Linux.
Veremos si al final Google consigue su objetivo. De conseguirse que el kernel de Android sea plenamente compatible con la rama general de Linux sería un importante paso que podría abrir la puerta a un menor desperdicio de dispositivos, aunque habrá que ver si los OEM muestran predisposición de caminar hacia ese kernel genérico que tendría que funcionar sobre cualquier dispositivo ARM64. Aquí es donde entra en juego Project Treble, que fue presentado en 2017 y juega un importante papel facilitando la instalación de drivers de terceros, haciendo que estos sean suministrados como si fueran plugins, minimizando así la probabilidad de tener que modificar el propio kernel para añadir soporte adicional para los dispositivos.
Sobre la convergencia de Android con la rama principal del kernel Linux se puede obtener más información de esta conferencia de Linux Plumbers Conference.