Google arbetar med att använda en vanlig Linux-kärna i Android

Vid den senaste Linux Plumbers 2019-konferensen, Google han berättade om utvecklingen initiativ om att överföra ändringar som utvecklats i Linux-kärnan till Linux-huvudkärnan kärnversionen för Android-plattformen. Det slutliga målet är att tillåta Android att använda en gemensam kärna, istället för att förbereda separata builds för varje enhet baserat på en Android-specifik gren Android Common Kernel. Detta mål har redan delvis uppnåtts, och Xiaomi Poco F1 Android-smarttelefon med firmware baserad på den vanliga omodifierade Linux-kärnan demonstrerades på konferensen.

När projektet är klart kommer leverantörer att uppmanas att tillhandahålla en baskärna baserad på Linux-huvudkärnan. Komponenter för hårdvarustöd kommer endast att tillhandahållas av leverantörer i form av ytterligare kärnmoduler, utan att installera patchar på kärnan. Moduler måste vara kompatibla med huvudkärnan på kärnsymbolens namnområdesnivå. Alla förändringar som påverkar huvudkärnan kommer att främjas till uppströms. För att upprätthålla kompatibilitet med proprietära moduler inom LTS-grenar, föreslås det att behålla kärn-API och ABI i en stabil form, vilket kommer att upprätthålla modulkompatibilitet med uppdateringar för varje gemensam kärngren.

Google arbetar med att använda en vanlig Linux-kärna i Android

Under loppet av ett år, funktioner som PSI (Pressure Stall Information) delsystem för att analysera information om väntetiden för att erhålla olika resurser (CPU, minne, I/O), och BinderFS pseudo-filsystem för interprocesskommunikation mekanism överfördes till Linux-huvudkärnan från Android-kärnutgåvan Binder och energieffektiv uppgiftsschemaläggare EAS (Energy Aware Scheduling). I framtiden planeras Android att överföras från den specifika SchedTune-schemaläggaren till det nya UtilClamp-undersystemet utvecklat i ARM, baserat på cgroups2 och standardkärnmekanismer.

Google arbetar med att använda en vanlig Linux-kärna i Android

Låt oss komma ihåg att tills nu har kärnan för Android-plattformen genomgått flera förberedelser:

  • Baserat på de viktigaste LTS-kärnorna (3.18, 4.4, 4.9 och 4.14) skapades en gren av "Android Common Kernel", till vilken Android-specifika patchar överfördes (tidigare nådde storleken på ändringarna flera miljoner rader, men nyligen ändringarna har reducerats till flera tusen rader kod ).
  • Baserat på "Android Common Kernel" bildade chiptillverkare som Qualcomm "SoC Kernel" som inkluderade tillägg för att stödja hårdvaran.
  • Baserat på SoC-kärnan skapade enhetstillverkare Enhetskärnan, som inkluderade ändringar relaterade till stöd för ytterligare utrustning, skärmar, kameror, ljudsystem, etc.

Google arbetar med att använda en vanlig Linux-kärna i Android

I huvudsak hade varje enhet sin egen kärna, som inte kunde användas på andra enheter. Ett sådant schema komplicerar avsevärt implementeringen av uppdateringar för att eliminera sårbarheter och övergången till nya kärngrenar. Till exempel, den senaste Pixel 4-smarttelefonen, som släpptes i oktober, levereras med Linux-kärnan 4.14, som släpptes för två år sedan. Dels försökte Google förenkla underhållet genom att marknadsföra systemet Diskant, vilket gör det möjligt för tillverkare att skapa universella komponenter för hårdvarustöd som inte är knutna till specifika Android-versioner och Linux-kärnutgåvor som används. Treble gör det möjligt att använda färdiga uppdateringar från Google som grund, och integrera komponenter som är specifika för en viss enhet i dem.


Källa: opennet.ru

Lägg en kommentar