Google werkt aan het gebruik van een reguliere Linux-kernel in Android

Op de laatste Linux Plumbers 2019-conferentie heeft Google hij vertelde over de ontwikkeling initiatieven over het overbrengen van wijzigingen die in de Linux-kernel zijn ontwikkeld naar de hoofd-Linux-kernel kernelversie voor het Android-platform. Het uiteindelijke doel is om Android één gemeenschappelijke kernel te laten gebruiken, in plaats van afzonderlijke builds voor elk apparaat voor te bereiden op basis van een Android-specifieke tak Android Gemeenschappelijke Kernel. Dit doel is al gedeeltelijk bereikt en op de conferentie werd de Xiaomi Poco F1 Android-smartphone met firmware gebaseerd op de gebruikelijke ongewijzigde Linux-kernel gedemonstreerd.

Zodra het project klaar is, wordt leveranciers gevraagd een basiskernel te leveren, gebaseerd op de belangrijkste Linux-kernel. Componenten voor hardwareondersteuning worden door leveranciers alleen geleverd in de vorm van aanvullende kernelmodules, zonder patches op de kernel aan te brengen. Modules moeten compatibel zijn met de hoofdkernel op het niveau van de kernelsymboolnaamruimte. Alle veranderingen die de hoofdkern beïnvloeden, zullen naar bovenstrooms worden gepromoot. Om de compatibiliteit met propriëtaire modules binnen LTS-takken te behouden, wordt voorgesteld om de kernel-API en ABI in een stabiele vorm te behouden, waardoor de modulecompatibiliteit met updates voor elke algemene kerneltak behouden blijft.

Google werkt aan het gebruik van een reguliere Linux-kernel in Android

In de loop van een jaar worden functies zoals het PSI-subsysteem (Pressure Stall Information) voor het analyseren van informatie over de wachttijd voor het verkrijgen van verschillende bronnen (CPU, geheugen, I/O) en het BinderFS pseudo-bestandssysteem voor de communicatie tussen processen mechanisme werden overgebracht naar de belangrijkste Linux-kernel van de Android-kerneleditie, Binder en energiezuinige taakplanner EAS (Energy Aware Scheduling). Het is de bedoeling dat Android in de toekomst wordt overgezet van de specifieke SchedTune-planner naar het nieuwe UtilClamp-subsysteem dat is ontwikkeld in ARM, gebaseerd op cgroups2 en standaard kernelmechanismen.

Google werkt aan het gebruik van een reguliere Linux-kernel in Android

Laten we niet vergeten dat de kernel voor het Android-platform tot nu toe verschillende voorbereidingsfasen heeft doorlopen:

  • Op basis van de belangrijkste LTS-kernels (3.18, 4.4, 4.9 en 4.14) werd een tak van de "Android Common Kernel" gemaakt, waarin Android-specifieke patches werden overgebracht (voorheen bereikte de omvang van de wijzigingen enkele miljoenen regels, maar onlangs de wijzigingen zijn teruggebracht tot enkele duizenden regels code).
  • Gebaseerd op de "Android Common Kernel", vormden chipfabrikanten zoals Qualcomm de "SoC Kernel" die add-ons bevatte om de hardware te ondersteunen.
  • Op basis van de SoC Kernel hebben apparaatfabrikanten de Device Kernel gemaakt, die wijzigingen bevatte met betrekking tot ondersteuning voor extra apparatuur, schermen, camera's, geluidssystemen, enz.

Google werkt aan het gebruik van een reguliere Linux-kernel in Android

In wezen had elk apparaat zijn eigen kernel, die niet op andere apparaten kon worden gebruikt. Een dergelijk schema bemoeilijkt de implementatie van updates om kwetsbaarheden te elimineren en de overgang naar nieuwe kernelvertakkingen aanzienlijk. De nieuwste Pixel 4-smartphone, uitgebracht in oktober, wordt bijvoorbeeld geleverd met Linux-kernel 4.14, die twee jaar geleden werd uitgebracht. Gedeeltelijk probeerde Google het onderhoud te vereenvoudigen door reclame te maken voor het systeem Bovenstem, waardoor fabrikanten universele hardware-ondersteuningscomponenten kunnen creëren die niet gebonden zijn aan specifieke Android-versies en gebruikte Linux-kernelreleases. Treble maakt het mogelijk om kant-en-klare updates van Google als basis te gebruiken, waarbij componenten worden geïntegreerd die specifiek zijn voor een bepaald apparaat.


Bron: opennet.ru

Voeg een reactie