Google arbejder på at bruge en almindelig Linux-kerne i Android

Ved den sidste Linux Plumbers 2019-konference, Google Han fortalte om udviklingen initiativer om at overføre ændringer udviklet i Linux-kernen til Linux-hovedkernen kernel version til Android-platformen. Det ultimative mål er at tillade Android at bruge én fælles kerne i stedet for at forberede separate builds for hver enhed baseret på en Android-specifik gren Android fælles kerne. Dette mål er allerede delvist nået, og Xiaomi Poco F1 Android-smartphonen med firmware baseret på den sædvanlige umodificerede Linux-kerne blev demonstreret på konferencen.

Når projektet er klar, vil leverandører blive bedt om at levere en basiskerne baseret på Linux-hovedkernen. Komponenter til hardwaresupport vil kun blive leveret af leverandører i form af yderligere kernemoduler uden at anvende patches til kernen. Moduler skal være kompatible med hovedkernen på kernesymbolnavneniveau. Alle ændringer, der påvirker hovedkernen, vil blive fremmet til upstream. For at opretholde kompatibilitet med proprietære moduler inden for LTS-grene, foreslås det at vedligeholde kerne-API'en og ABI i en stabil form, som vil opretholde modulkompatibilitet med opdateringer for hver fælles kernegren.

Google arbejder på at bruge en almindelig Linux-kerne i Android

I løbet af et år, funktioner såsom PSI (Pressure Stall Information)-undersystemet til at analysere information om ventetiden for at opnå forskellige ressourcer (CPU, hukommelse, I/O) og BinderFS-pseudo-filsystemet til interproceskommunikation mekanisme blev overført til Linux-hovedkernen fra Android-kerneudgaven Binder og energieffektiv opgaveplanlægger EAS (Energy Aware Scheduling). I fremtiden planlægges Android at blive overført fra den specifikke SchedTune-planlægger til det nye UtilClamp-undersystem udviklet i ARM, baseret på cgroups2 og standardkernemekanismer.

Google arbejder på at bruge en almindelig Linux-kerne i Android

Lad os huske på, at kernen til Android-platformen indtil nu har gennemgået flere forberedelsesstadier:

  • Baseret på de vigtigste LTS-kerner (3.18, 4.4, 4.9 og 4.14) blev der oprettet en gren af ​​"Android Common Kernel", hvor Android-specifikke patches blev overført (tidligere nåede størrelsen af ​​ændringerne flere millioner linjer, men for nylig ændringerne er blevet reduceret til flere tusinde linjer kode ).
  • Baseret på "Android Common Kernel" dannede chipproducenter som Qualcomm "SoC Kernel", der inkluderede tilføjelser til at understøtte hardwaren.
  • Baseret på SoC Kernelen skabte enhedsproducenterne Enhedskernen, som omfattede ændringer relateret til understøttelse af ekstra udstyr, skærme, kameraer, lydsystemer osv.

Google arbejder på at bruge en almindelig Linux-kerne i Android

I det væsentlige havde hver enhed sin egen kerne, som ikke kunne bruges på andre enheder. En sådan ordning komplicerer implementeringen af ​​opdateringer betydeligt for at eliminere sårbarheder og overgangen til nye kernegrene. For eksempel leveres den nyeste Pixel 4-smartphone, der blev udgivet i oktober, med Linux-kerne 4.14, udgivet for to år siden. Dels forsøgte Google at forenkle vedligeholdelsen ved at promovere systemet Treble, hvilket giver producenterne mulighed for at skabe universelle hardwaresupportkomponenter, der ikke er bundet til specifikke Android-versioner og anvendte Linux-kerneudgivelser. Treble gør det muligt at bruge færdige opdateringer fra Google som grundlag, og integrere komponenter, der er specifikke for en bestemt enhed, i dem.


Kilde: opennet.ru

Tilføj en kommentar