Google pracuje na použití běžného linuxového jádra v Androidu

Na poslední konferenci Linux Plumbers 2019 Google řekl o vývoji iniciativy o přenosu změn vyvinutých v linuxovém jádře do hlavního linuxového jádra verze jádra pro platformu Android. Konečným cílem je umožnit Androidu používat jedno společné jádro namísto přípravy samostatných sestavení pro každé zařízení na základě větve specifické pro Android. Společné jádro Androidu. Tento cíl se již částečně podařilo splnit a na konferenci byl předveden Android smartphone Xiaomi Poco F1 s firmwarem založeným na obvyklém neupraveném linuxovém jádře.

Jakmile bude projekt připraven, budou prodejci požádáni o dodání základního jádra založeného na hlavním linuxovém jádře. Komponenty pro hardwarovou podporu budou dodavateli dodávat pouze ve formě dodatečných modulů jádra, bez aplikování záplat na jádro. Moduly budou muset být kompatibilní s hlavním jádrem na úrovni jmenného prostoru symbolů jádra. Všechny změny ovlivňující hlavní jádro budou povýšeny na upstream. Pro zachování kompatibility s proprietárními moduly v rámci LTS větví se navrhuje udržovat kernel API a ABI ve stabilní podobě, která zachová kompatibilitu modulů s aktualizacemi pro každou běžnou kernelovou větev.

Google pracuje na použití běžného linuxového jádra v Androidu

V průběhu roku se objevily funkce jako subsystém PSI (Pressure Stall Information) pro analýzu informací o době čekání na získání různých zdrojů (CPU, paměť, I/O) a pseudosouborový systém BinderFS pro meziprocesovou komunikaci. mechanismu byly převedeny do hlavního linuxového jádra z edice jádra Android Binder a energeticky účinný plánovač úloh EAS (Energy Aware Scheduling). V budoucnu se plánuje převedení Androidu ze specifického plánovače SchedTune do nového subsystému UtilClamp vyvinutého v ARM, založeného na cgroups2 a standardních mechanismech jádra.

Google pracuje na použití běžného linuxového jádra v Androidu

Připomeňme, že až dosud prošlo jádro pro platformu Android několika fázemi přípravy:

  • Na základě hlavních jader LTS (3.18, 4.4, 4.9 a 4.14) byla vytvořena větev „Android Common Kernel“, do které byly přeneseny záplaty specifické pro Android (dříve velikost změn dosahovala několika milionů řádků, ale nedávno změny byly zredukovány na několik tisíc řádků kódu).
  • Na základě „Android Common Kernel“ vytvořili výrobci čipů, jako je Qualcomm, „SoC Kernel“, který obsahoval doplňky pro podporu hardwaru.
  • Na základě jádra SoC vytvořili výrobci zařízení jádro zařízení, které zahrnovalo změny související s podporou dalšího vybavení, obrazovek, kamer, zvukových systémů atd.

Google pracuje na použití běžného linuxového jádra v Androidu

V podstatě každé zařízení mělo své vlastní jádro, které nebylo možné použít na jiných zařízeních. Takové schéma výrazně komplikuje implementaci aktualizací pro odstranění zranitelností a přechod na nové větve jádra. Například nejnovější smartphone Pixel 4 vydaný v říjnu je dodáván s linuxovým jádrem 4.14, které bylo vydáno před dvěma lety. Částečně se Google snažil zjednodušit údržbu propagací systému Ztrojnásobit, což výrobcům umožňuje vytvářet univerzální součásti hardwarové podpory, které nejsou vázány na konkrétní verze Androidu a použitá vydání jádra Linuxu. Treble umožňuje použít jako základ hotové aktualizace od Googlu, do kterých se integrují komponenty specifické pro konkrétní zařízení.


Zdroj: opennet.ru

Přidat komentář