Google pasará a desenvolver innovacións para Android no núcleo principal de Linux

Na conferencia Linux Plumbers 2021, Google falou sobre o éxito da súa iniciativa de transición da plataforma Android para usar un núcleo Linux normal en lugar de usar a súa propia versión do núcleo, que inclúe cambios específicos para a plataforma Android.

O cambio máis importante no desenvolvemento foi a decisión de cambiar despois de 2023 ao modelo "Upstream First", o que implica o desenvolvemento de todas as novas funcións do núcleo necesarias na plataforma Android directamente no núcleo principal de Linux, e non nas súas propias ramas separadas ( primeiramente promoverase ao núcleo principal, e despois empregarase en Android, e non viceversa). Tamén está previsto transferir todos os parches adicionais que quedan na rama do núcleo común de Android ao núcleo principal en 2023 e 2024.

En canto ao futuro próximo, para a plataforma Android 12 que se espera a principios de outubro, ofreceranse conxuntos de núcleo "Imaxe xenérica do núcleo" (GKI), o máis próximos posible ao núcleo 5.10 normal. Para estas compilacións, proporcionaranse versións regulares de actualizacións, que se publicarán no repositorio ci.android.com. No núcleo GKI, os complementos específicos da plataforma Android, así como os controladores relacionados co soporte de hardware dos OEM, colócanse en módulos de núcleo separados. Estes módulos non están vinculados á versión do núcleo principal e pódense desenvolver por separado, o que simplifica moito o mantemento e a transición dos dispositivos a novas ramas do núcleo.

Google pasará a desenvolver innovacións para Android no núcleo principal de Linux

As interfaces requiridas polos fabricantes de dispositivos están implementadas en forma de ganchos, que permiten cambiar o comportamento do núcleo sen facer cambios no código. En total, o núcleo de Android12-5.10 ofrece 194 ganchos regulares, similares aos puntos de rastrexo, e 107 ganchos especializados que che permiten executar controladores nun contexto non atómico. No núcleo GKI, os fabricantes de hardware teñen prohibido aplicar parches específicos ao núcleo principal e os compoñentes de soporte de hardware deben ser proporcionados polos vendedores só en forma de módulos adicionais do núcleo, que deben garantir a compatibilidade co núcleo principal.

Lembremos que a plataforma Android está a desenvolver a súa propia rama do núcleo: o núcleo común de Android, a partir do cal se forman conxuntos específicos separados para cada dispositivo. Cada rama de Android ofrece aos fabricantes varias opcións para a disposición do núcleo para os seus dispositivos. Por exemplo, Android 11 ofreceu a opción de tres núcleos básicos: 4.14, 4.19 e 5.4, e Android 12 ofrecerá núcleos básicos 4.19, 5.4 e 5.10. A opción 5.10 está deseñada como unha imaxe xenérica do núcleo, na que as capacidades necesarias para os fabricantes de equipos originales se transfieren cara arriba, colócanse en módulos ou transfírense ao núcleo común de Android.

Antes da chegada de GKI, o núcleo de Android pasou por varias etapas de preparación:

  • Baseándose nos principais núcleos LTS (3.18, 4.4, 4.9, 4.14, 4.19, 5.4), creouse unha rama do "Android Common Kernel", na que se transferiron parches específicos de Android (anteriormente o tamaño dos cambios alcanzaba varios millóns de liñas). ).
  • Baseándose no "Android Common Kernel", os fabricantes de chips como Qualcomm, Samsung e MediaTek formaron "SoC Kernel" que incluía complementos para soportar o hardware.
  • Baseándose no núcleo de SoC, os fabricantes de dispositivos crearon o núcleo de dispositivos, que incluíu cambios relacionados coa compatibilidade con equipos adicionais, pantallas, cámaras, sistemas de son, etc.

Este enfoque complicou significativamente a implementación de actualizacións para eliminar vulnerabilidades e a transición a novas ramas do núcleo. Aínda que Google publica regularmente actualizacións para os seus núcleos de Android (Android Common Kernel), os provedores adoitan tardar en entregar estas actualizacións ou normalmente usan o mesmo núcleo durante todo o ciclo de vida dun dispositivo.



Fonte: opennet.ru

Engadir un comentario