het huidige Android ecosysteem is vervuild met honderden verschillende versies van Android, elk met een andere variant van de Linux kernel. Elke versie is ontworpen voor een andere telefoon en het is verschillende configuraties. Google heeft gewerkt om het probleem op te lossen door het toevoegen van de mainline Linux kernel naar Android.
hoe de Linux kernel momenteel wordt afgehandeld in Android
voordat het u bereikt, ondergaat de Linux kernel op uw mobiele telefoon drie belangrijke stappen.
eerst neemt Google de LTS (Long Term Support) versie van de Linux kernel en voegt alle Android-specifieke code toe. Dit wordt de “Android Common kernel”.
Google stuurt deze code vervolgens naar het bedrijf dat het systeem op een Chip (SoC) maakt die op uw telefoon draait. Dit is meestal Qualcomm.
zodra de SoC maker klaar is voeg code toe om de CPU en andere chips te ondersteunen, wordt de kernel doorgegeven aan de eigenlijke apparaatmaker, zoals Samsung of Motorola. De apparaatmaker voegt vervolgens code toe om de rest van de telefoon te ondersteunen, zoals het scherm en de camera.
elk van deze stappen duurt een tijdje om te voltooien en resulteert in een kernel die niet met een ander apparaat zal werken. Het betekent ook dat de kernel erg oud is, meestal ongeveer twee jaar oud. Bijvoorbeeld, de Google Pixel 4, die vorige maand verzonden, heeft een kernel van November 2017, die nooit zal worden bijgewerkt.
Google heeft toegezegd om beveiligingspatches voor oudere apparaten te maken, wat betekent dat ze vastzitten met het in de gaten houden van een enorme hodge-podge van oude code.
de toekomst
vorig jaar kondigde Google plannen aan om deze puinhoop op te lossen. Dit jaar onthulden ze welke vooruitgang ze boekten op de 2019 Linux Plumbers Conference.
” we weten wat er nodig is om Android te draaien, maar niet noodzakelijk op een bepaalde hardware. Dus ons doel is om dat allemaal uit te vinden, dan stroomopwaarts en proberen zo dicht mogelijk bij de hoofdlijn te zijn.”
Sandeep Patil, Android Kernel Team Lead
ze pronkten met een Xiaomi Poco F1 met Android met een goede Linux kernel. Echter, het sommige dingen niet lijken te werken, zoals de batterij percentage dat vast zat op 0%.
dus, hoe is Google van plan om dit te laten werken? Door het nemen van een pagina uit hun Project Treble playbook. Voor Project Treble, de low-level code die interactie met het apparaat en Android zelf was een grote puinhoop van de code. Project Treble scheidde de twee en maakte ze modulair, zodat Android-updates sneller kunnen worden verzonden en de low-level code kan ongewijzigd blijven tussen updates.
Google wil dezelfde modulariteit naar de kernel brengen. Hun plan “omvat het stabiliseren van Linux’ s in-kernel ABI en het hebben van een stabiele interface voor de Linux kernel en hardware leveranciers om naar te schrijven. Google wil de Linux kernel loskoppelen van de hardware ondersteuning.”
Dit betekent dat Google een kernel zou verzenden en hardwarestuurprogramma ‘ s als kernelmodules zouden worden geladen. Momenteel is dit slechts een voorstel. Er zijn nog heel wat technische problemen die moeten worden opgelost. dus, dit zal niet snel gebeuren.
oppositie van Open Source
De open Source gemeenschap zal niet blij zijn met het idee om propriëtaire code in de kernel te plaatsen. De Linux kernel richtlijnen stellen dat drivers een GPL licentie moeten hebben om in de kernel te kunnen worden opgenomen. Ze wijzen er ook op dat als een verandering in de bestuurder een fout veroorzaakt, deze zal worden opgelost door de persoon die de fout heeft gemaakt. Dit betekent op de lange termijn minder werk voor apparaatmakers.
laatste gedachten over het opnemen van mainline kernel naar Andorid
tot nu toe is dit slechts een voorstel. Er is een goede kans dat Google zal beginnen te werken aan het project alleen om het te verlaten zodra ze beseffen hoeveel werk dit zal duren. Kijk maar eens hoeveel projecten Google al heeft verlaten.
Android Police maakte een goed punt door te vermelden dat Google werkt aan zijn Fuchsia-besturingssysteem, dat het doel lijkt te hebben om Android op een dag te vervangen.
dus, de vraag is welke monumentale taak Google zal proberen te voltooien, het krijgen van Android draait met een mainline Linux kernel of het voltooien van het werk aan hun unified Android vervanging? Alleen de tijd kan dat beantwoorden.