Android cambia al modelo "upstream first" para las nuevas funciones del kernel de Linux

Google planea cambiar a un modelo de desarrollo "primero ascendente" para las funciones del kernel de Linux en Android a partir de 2023. Continúe leyendo para obtener más información.

Cuando veas las palabras "Android" y "fragmentación" en la misma frase, tu mente probablemente salte inmediatamente a la Cuadro de distribución de versiones de Android. Hay algunas entidades a las que la mayoría de la gente señala con el dedo cuando se quejan de que las actualizaciones del sistema operativo Android tardan en implementarse en todos los ámbitos, pero hay mucho que Google puede hacer para fuerza Los OEM desarrollarán e implementarán actualizaciones más rápidamente. Sin embargo, lo que Google puede hacer es reducir el tiempo de desarrollo y, por tanto, el coste de implementación de actualizaciones.

La primera iniciativa importante en el proyecto a largo plazo de Google para reducir las cargas de desarrollo es Proyecto agudos. Anunciado junto con Android 8.0 Oreo en 2017, Project Treble modularizó Android al separar el marco del sistema operativo de la implementación del proveedor (HAL y la bifurcación del kernel de Linux específica del dispositivo). Esto facilitó a los OEM de Android cambiar la base de sus sistemas operativos sobre el último marco AOSP, ya que podían iniciar la última versión sin necesidad de actualizar el código de los proveedores. Como resultado, los OEM podrían preparar sus bifurcaciones personalizadas de Android más rápido que antes y, por extensión, implementar actualizaciones importantes del sistema operativo más rápidamente.

El siguiente paso en los planes de Google era agilizar la entrega de actualizaciones a los componentes clave de Android. Google llamó a esta iniciativa Línea principal del proyecto cuando lo presentó junto con Android 10 en 2019. Básicamente, Google tomó el control de los componentes clave del sistema operativo y prohibió a los OEM modificarlos. Luego configuraron un mecanismo de entrega a través de Google Play para poder implementar de forma remota actualizaciones para estos componentes clave sin tener que esperar a que los OEM apliquen los parches ellos mismos. Mainline mejoró enormemente la rapidez con la que los dispositivos reciben versiones actualizadas de componentes importantes del sistema operativo, lo que a su vez mejoró la seguridad del ecosistema de Android en su conjunto.

Pero lo que viene a continuación es aún más importante y posiblemente sea la parte más importante de la estrategia a largo plazo de Google. Cuando señalamos anteriormente cómo Treble modularizó Android al separar el marco del sistema operativo del implementación del proveedor, incluimos la "bifurcación del kernel de Linux específica del dispositivo" como parte de esa implementación del proveedor. código. Cualquiera que esté familiarizado con Linux en computadoras de escritorio reconocerá un problema allí: ¿Por qué se lo agrupa con el código de fuente cerrada del proveedor? El problema es que, si bien los dispositivos Android vienen con el kernel de Linux, ese kernel presenta una lote de código fuera del árbol.

¿Como llegamos alla? El problema, como lo describió el ingeniero de software de Google, Todd Kjos, en Conferencia de fontaneros de Linux de este año (a través de ArsTechnica), se debe a que el kernel principal de Linux se bifurca varias veces antes de distribuirse en un dispositivo Android. Google bifurca cada kernel de Linux principal en un "Núcleo común de Android", que sigue de cerca la versión principal pero agrega algunos parches específicos de Android. Los proveedores de SoC como Qualcomm, MediaTek y Samsung luego se bifurcan eso kernel para cada SoC que fabrican. Luego, los OEM toman ese kernel específico de SoC y agregan parches adicionales para implementar soporte para el hardware específico que desean distribuir.

Debido a estos cambios "Hasta el 50% del código que se ejecuta en un dispositivo es código fuera del árbol (no de núcleos comunes de Linux o AOSP)", según Google. La gran cantidad de código fuera del árbol en estos dispositivos hace que la combinación de cambios ascendentes sea un proceso largo y desafiante. Esto es perjudicial para la seguridad del dispositivo, ya que los OEM deben trabajar más para implementar parches para las vulnerabilidades descubiertas en el kernel de Linux. Además, esto deja a la mayoría de los dispositivos Android con versiones de kernel de hace años, lo que significa que se pierden las nuevas funciones del kernel de Linux.

En un esfuerzo por abordar este problema, Google está trabajando en la imagen genérica del kernel de Android (GKI), que es esencialmente un kernel compilado directamente desde una rama ACK. GKI aísla las personalizaciones de fabricantes de SoC y OEM en módulos de complementos, eliminando el código fuera del árbol y permitiendo a Google enviar actualizaciones del kernel directamente al usuario final. Durante más de un año, Google ha estado trabajando en una forma de ofrecer actualizaciones de GKI a través de Play Store. mediante el uso de un módulo Mainline.

Según nuestras fuentes, los dispositivos que se inician con androide 12 y se envía con el kernel de Linux 5.10 debe implementar una imagen de arranque firmada por Google. propio de Google Píxel 6 La serie se lanzará con Android 12 listo para usar y se enviará con el kernel de Linux 5.10, por lo que los dos teléfonos pueden ser los primeros dispositivos del mercado masivo que se envíen con un GKI.

Además, Todd Kjos de Google reveló que la compañía planea cambiar a un modelo de desarrollo "primero ascendente" para las nuevas funciones del kernel de Linux. Esto ayudará a Google a garantizar que el nuevo código llegue primero al kernel principal de Linux, lo que reducirá la deuda técnica futura acumulada por más código fuera del árbol que llegue a los dispositivos Android.

En la Conferencia de Plomeros de Linux de esta semana, Kjos dijo: "Dado que los módulos fuera del árbol son realmente importantes para nuestro caso de uso, esperamos tener siempre un conjunto de exportaciones y algunas cosas que son diferentes o adicionales a lo que ya está disponible. aguas arriba, pero todo este proyecto es un proyecto de varios años que trabaja para deshacernos de tantos parches fuera del árbol como sea posible y alinearnos lo más posible con río arriba." Google pretende completar su trabajo para mejorar las funciones existentes y aislar los cambios de proveedores para finales de 2022. y, a partir de 2023, la compañía planea adoptar este modelo de desarrollo "upstream first" para evitar problemas similares en el futuro.