Google passarà a desenvolupar innovacions per a Android al nucli principal de Linux

A la conferència Linux Plumbers 2021, Google va parlar de l'èxit de la seva iniciativa de transició de la plataforma Android per utilitzar un nucli Linux normal en lloc d'utilitzar la seva pròpia versió del nucli, que inclou canvis específics de la plataforma Android.

El canvi més important en el desenvolupament va ser la decisió de canviar després del 2023 al model "Upstream First", que implica el desenvolupament de totes les característiques noves del nucli necessàries a la plataforma Android directament al nucli principal de Linux, i no a les seves pròpies branques separades ( primer es promocionarà al nucli principal, i després s'utilitzarà a Android, i no viceversa). També està previst transferir tots els pegats addicionals que queden a la branca del nucli comú d'Android al nucli principal el 2023 i el 2024.

Pel que fa al futur proper, per a la plataforma Android 12 prevista a principis d'octubre, s'oferiran conjunts de nucli "Imatge del nucli genèric" (GKI), el més propers possible al nucli 5.10 normal. Per a aquestes compilacions, es proporcionaran versions regulars d'actualitzacions, que es publicaran al repositori ci.android.com. Al nucli GKI, les addicions específiques de la plataforma Android, així com els controladors relacionats amb el suport de maquinari dels OEM, es col·loquen en mòduls del nucli separats. Aquests mòduls no estan lligats a la versió del nucli principal i es poden desenvolupar per separat, la qual cosa simplifica molt el manteniment i la transició dels dispositius a noves branques del nucli.

Google passarà a desenvolupar innovacions per a Android al nucli principal de Linux

Les interfícies requerides pels fabricants de dispositius s'implementen en forma de ganxos, que permeten canviar el comportament del nucli sense fer canvis al codi. En total, el nucli Android12-5.10 ofereix 194 ganxos regulars, similars als punts de traça, i 107 ganxos especialitzats que us permeten executar controladors en un context no atòmic. Al nucli GKI, els fabricants de maquinari tenen prohibit aplicar pedaços específics al nucli principal, i els components de suport de maquinari només els han de subministrar els venedors en forma de mòduls addicionals del nucli, que han de garantir la compatibilitat amb el nucli principal.

Recordem que la plataforma Android està desenvolupant la seva pròpia branca del nucli: l'Android Common Kernel, a partir del qual es formen conjunts específics separats per a cada dispositiu. Cada branca d'Android ofereix als fabricants diverses opcions de disseny del nucli per als seus dispositius. Per exemple, Android 11 ofereix una selecció de tres nuclis bàsics: 4.14, 4.19 i 5.4, i Android 12 oferirà nuclis bàsics 4.19, 5.4 i 5.10. L'opció 5.10 està dissenyada com una imatge genèrica del nucli, en la qual les capacitats necessàries per als OEM es transfereixen a aigües amunt, es col·loquen en mòduls o es transfereixen al nucli comú d'Android.

Abans de l'arribada de GKI, el nucli d'Android va passar per diverses etapes de preparació:

  • A partir dels nuclis LTS principals (3.18, 4.4, 4.9, 4.14, 4.19, 5.4), es va crear una branca del "Nucli comú d'Android", a la qual es van transferir pedaços específics d'Android (abans la mida dels canvis arribava a diversos milions de línies). ).
  • Basant-se en l'"Android Common Kernel", fabricants de xips com Qualcomm, Samsung i MediaTek van formar "SoC Kernel" que incloïa complements per donar suport al maquinari.
  • Basant-se en el nucli de SoC, els fabricants de dispositius van crear el nucli de dispositius, que incloïa canvis relacionats amb la compatibilitat amb equips addicionals, pantalles, càmeres, sistemes de so, etc.

Aquest enfocament va complicar significativament la implementació d'actualitzacions per eliminar vulnerabilitats i la transició a noves branques del nucli. Tot i que Google publica regularment actualitzacions als seus nuclis d'Android (Android Common Kernel), els venedors solen lliurar aquestes actualitzacions o solen utilitzar el mateix nucli durant tot el cicle de vida d'un dispositiu.



Font: opennet.ru

Afegeix comentari