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

På den nyligt afholdte Linux Plumbers 2019-konference præsenterede Google om udviklingen af initiativer til at overføre ændringer, der udvikles i kernen til Android-platformen. Det endelige mål er at muliggøre brugen af én fælles kerne i Android i stedet for at forberede separate builds for hver enhed baseret på den Android-specifikke gren Android Common Kernel. Dette mål er allerede delvist opnået, og der blev på konferencen præsenteret en Android-smartphone, Xiaomi Poco F1, med firmware baseret på en almindelig, uændret Linux-kerne.

Når projektet er klar, vil leverandører blive opfordret til at levere en basis kerne baseret på den originale Linux-kerne. Komponenter til hardwareunderstøttelse vil kun blive leveret af leverandører som yderligere kerne-moduler uden at påføre kernen patches. Modulerne skal sikre kompatibilitet med den originale kerne på niveau med namespaces for kerne-symboler. Alle ændringer, der berører den originale kerne, vil blive fremmet upstream. For at bevare kompatibiliteten med proprietære moduler inden for LTS-grene foreslås det at bevare API og ABI for kernen i en stabil form, hvilket vil sikre modulernes kompatibilitet med opdateringer til hver fælles kernegren.

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

I løbet af det sidste år er der blevet overført funktioner såsom PSI (Pressure Stall Information) subsystemet til den originale Linux-kerne for at analysere information om ventetid på forskellige ressourcer (CPU, hukommelse, input/output), det pseudofilsystem BinderFS til Binder inter-process kommunikationsmekanismen, og den energieffektive opgaveplanlægger EAS (Energy Aware Scheduling). Fremadskuende planlægges Android at blive overført fra den specifikke SchedTune-planlægger til det nydesignede UtilClamp subsystem fra ARM, baseret på cgroups2 og de indbyggede mekanismer i kernen.

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

Det skal bemærkes, at kernen til Android-platformen stadig har gennemgået flere faser af forberedelse:

  • Der blev dannet en gren kaldet 'Android Common Kernel' baseret på de grundlæggende LTS-kerner (3.18, 4.4, 4.9 og 4.14), hvori Android-specifikke patches blev overført (tidligere kunne ændringsstørrelsen nå op på flere millioner linjer, men i den seneste tid er ændringerne blevet reduceret til et par tusinde linjer kode).
  • Baseret på «Android Common Kernel» har chipproducenter som Qualcomm dannet «SoC Kernel», som inkluderer tilføjelser til understøttelse af hardware.
  • Baseret på «SoC Kernel» har enhedsproducenter skabt «Device Kernel», der inkluderer ændringer relateret til understøttelse af ekstra hardware, skærme, kameraer, lydsystemer mv.

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

Essenielt set blev der dannet et eget kernel til hver enhed, som ikke kunne bruges på andre enheder. Dette gør det betydeligt mere kompliceret at implementere opdateringer til at rette sårbarheder og skifte til nye kernelversioner. For eksempel leveres den nyeste smartphone, Pixel 4, der blev lanceret i oktober, med Linux-kernen 4.14, der blev udgivet for to år siden. Delvist har Google forsøgt at forenkle vedligeholdelsen ved at fremme systemet Treble, som gør det muligt for producenter at skabe universelle hardware-understøttelseskomponenter, der ikke er bundet til specifikke versioner af Android og de anvendte Linux-kerneludgivelser. Treble giver mulighed for at bruge allerede eksisterende opdateringer fra Google som grundlag og integrere enhedsspecifikke komponenter i dem.


Afspil video

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster