A Google tovább fog újításokat fejleszteni Android számára a fő Linux kernelben

A Linux Plumbers 2021 konferencián a Google arról beszélt, hogy sikeres volt az a kezdeményezése, hogy az Android platformot egy normál Linux kernel használatára cserélte a kernel saját verziója helyett, amely az Android platformra jellemző változtatásokat tartalmaz.

A fejlesztés legfontosabb változása az a döntés volt, hogy 2023 után áttérnek az „Upstream First” modellre, ami azt jelenti, hogy az Android platformon szükséges összes új kernelfunkciót közvetlenül a fő Linux kernelben kell kifejleszteni, nem pedig a saját külön ágaikban ( A funkcionalitás először a fő) lesz előléptetve). kernel, majd az Androidban használják, és nem fordítva). A tervek szerint 2023-ban és 2024-ben az Android Common Kernel ágban megmaradt összes további javítást áthelyezik a fő kernelbe.

Ami a közeljövőt illeti, az október elején várható Android 12-es platformra a „Generic Kernel Image” (GKI) kernel-összeállításokat kínálják, a lehető legközelebb a hagyományos 5.10-es kernelhez. Ezekhez a buildekhez rendszeres frissítések kerülnek kiadásra, amelyeket a ci.android.com tárhelyen tesznek közzé. A GKI kernelben az Android platform-specifikus kiegészítések, valamint az OEM-ek hardvertámogatással kapcsolatos kezelői külön kernelmodulokba kerülnek. Ezek a modulok nem kötődnek a fő kernel verziójához, és külön is fejleszthetők, ami nagyban leegyszerűsíti a karbantartást és az eszközök új kernelágakra való átállását.

A Google tovább fog újításokat fejleszteni Android számára a fő Linux kernelben

Az eszközgyártók által igényelt interfészek hook-ok formájában valósulnak meg, amelyek lehetővé teszik a kernel viselkedésének megváltoztatását a kód módosítása nélkül. Összességében az android12-5.10 kernel 194 hagyományos horgot kínál, hasonlóan a nyomkövetési pontokhoz, és 107 speciális horgot, amelyek lehetővé teszik a kezelők futtatását nem atomi környezetben. A GKI kernelben a hardvergyártók tilos speciális javításokat alkalmazni a fő kernelre, és a hardvertámogató komponenseket a szállítóknak csak kiegészítő kernelmodulok formájában kell biztosítaniuk, amelyeknek biztosítaniuk kell a fő kernellel való kompatibilitást.

Emlékezzünk vissza, hogy az Android platform saját kernelágat fejleszt - az Android Common Kernel-t, amely alapján minden egyes eszközhöz külön-külön specifikus szerelvények jönnek létre. Az Android minden ága számos lehetőséget kínál a gyártóknak az eszközeik kernelelrendezésére. Például az Android 11 három alapvető kernel közül választhat – 4.14, 4.19 és 5.4, az Android 12 pedig a 4.19, 5.4 és 5.10 rendszermagot kínálja. Az 5.10-es opciót általános kernelképként tervezték, amelyben az OEM-ek számára szükséges képességek átkerülnek az upstreambe, modulokba helyezik vagy átkerülnek az Android Common Kernelbe.

A GKI megjelenése előtt az Android kernel több előkészítési szakaszon ment keresztül:

  • A fő LTS kernelek (3.18, 4.4, 4.9, 4.14, 4.19, 5.4) alapján létrejött az „Android Common Kernel” ága, amelybe az Android-specifikus javításokat vitték át (korábban a változtatások mérete elérte a több millió sort). ).
  • Az "Android Common Kernel" alapján a chipgyártók, például a Qualcomm, a Samsung és a MediaTek létrehozták a "SoC Kernelt", amely kiegészítőket tartalmazott a hardver támogatására.
  • Az eszközgyártók az SoC Kernel alapján létrehozták az Eszközkernelt, amely a kiegészítő berendezések, képernyők, kamerák, hangrendszerek stb. támogatásával kapcsolatos változtatásokat tartalmazott.

Ez a megközelítés jelentősen megnehezítette a frissítések végrehajtását a sebezhetőségek kiküszöbölésére és az új kernelágakra való átállásra. Bár a Google rendszeresen ad ki frissítéseket az Android kernelekhez (Android Common Kernel), a gyártók gyakran lassan szállítják ezeket a frissítéseket, vagy általában ugyanazt a kernelt használják az eszköz teljes életciklusa során.



Forrás: opennet.ru

Hozzászólás