Google jobber med å bruke en vanlig Linux-kjerne i Android

På den siste Linux Plumbers 2019-konferansen, Google han fortalte om utviklingen initiativ på å overføre endringer utviklet i Linux-kjernen til hoved-Linux-kjernen kjerneversjon for Android-plattformen. Det endelige målet er å la Android bruke én felles kjerne, i stedet for å forberede separate bygg for hver enhet basert på en Android-spesifikk gren Android Common Kernel. Dette målet er allerede delvis oppnådd, og Android-smarttelefonen Xiaomi Poco F1 med fastvare basert på den vanlige umodifiserte Linux-kjernen ble demonstrert på konferansen.

Når prosjektet er klart, vil leverandører bli bedt om å levere en basiskjerne basert på hoved Linux-kjernen. Komponenter for maskinvarestøtte vil kun bli levert av leverandører i form av ekstra kjernemoduler, uten å bruke patcher til kjernen. Moduler må være kompatible med hovedkjernen på kjernesymbolnavnenivået. Alle endringer som påvirker hovedkjernen vil bli fremmet til oppstrøms. For å opprettholde kompatibilitet med proprietære moduler innenfor LTS-grener, foreslås det å opprettholde kjerne-API og ABI i en stabil form, som vil opprettholde modulkompatibilitet med oppdateringer for hver felles kjernegren.

Google jobber med å bruke en vanlig Linux-kjerne i Android

I løpet av et år, funksjoner som PSI (Pressure Stall Information)-delsystemet for å analysere informasjon om ventetiden for å skaffe ulike ressurser (CPU, minne, I/O), og BinderFS-pseudo-filsystemet for kommunikasjon mellom prosesser mekanismen ble overført til hoved Linux-kjernen fra Android-kjerneutgaven Binder og energieffektiv oppgaveplanlegger EAS (Energy Aware Scheduling). I fremtiden er Android planlagt å overføres fra den spesifikke SchedTune-planleggeren til det nye UtilClamp-undersystemet utviklet i ARM, basert på cgroups2 og standard kjernemekanismer.

Google jobber med å bruke en vanlig Linux-kjerne i Android

La oss huske at til nå har kjernen for Android-plattformen gått gjennom flere stadier av forberedelse:

  • Basert på de viktigste LTS-kjernene (3.18, 4.4, 4.9 og 4.14) ble det opprettet en gren av "Android Common Kernel" som Android-spesifikke patcher ble overført til (tidligere nådde størrelsen på endringene flere millioner linjer, men nylig endringene er redusert til flere tusen linjer med kode ).
  • Basert på «Android Common Kernel», dannet brikkeprodusenter som Qualcomm «SoC Kernel» som inkluderte tillegg for å støtte maskinvaren.
  • Basert på SoC-kjernen skapte enhetsprodusenter Device Kernel, som inkluderte endringer knyttet til støtte for tilleggsutstyr, skjermer, kameraer, lydsystemer, etc.

Google jobber med å bruke en vanlig Linux-kjerne i Android

I hovedsak hadde hver enhet sin egen kjerne, som ikke kunne brukes på andre enheter. En slik ordning kompliserer implementeringen av oppdateringer betydelig for å eliminere sårbarheter og overgangen til nye kjernegrener. For eksempel, den nyeste Pixel 4-smarttelefonen, utgitt i oktober, leveres med Linux-kjernen 4.14, utgitt for to år siden. Dels prøvde Google å forenkle vedlikeholdet ved å promotere systemet Diskant, som lar produsenter lage universelle maskinvarestøttekomponenter som ikke er knyttet til spesifikke Android-versjoner og Linux-kjerneutgivelser som brukes. Treble gjør det mulig å bruke ferdige oppdateringer fra Google som grunnlag, og integrerer i dem komponenter som er spesifikke for en bestemt enhet.


Kilde: opennet.ru

Legg til en kommentar