Linux | Android | Operační systémy

Jádro Androidu se na každém telefonu dramaticky liší. Proto tak dlouho čekáte na aktualizaci. Mělo by se to změnit

Každý čtenář Živě.cz ví, že v nitru operačního systému Android běží linuxové jádro – kernel, který na té nejnižší úrovni provádí a koordinuje veškerou práci telefonu.

Jenže co je to vlastně za jádro? Odpověď není vůbec jednoduchá, na rozdíl od klasických linuxových distribucí je totiž často poměrně staré a výrazně přepsané. A to nejen Googlem samotným, ale i výrobcem hlavního čipsetu a samotného telefonu.

Stručně řečeno, linuxové jádro v telefonech s Androidem se může model od modelu dramaticky lišit, byť by ve všech případech odpovídalo třeba základní verzi 4.4.

Strastiplná cesta Linuxu na konkrétní telefon

Když totiž Google vyvíjí novou verzi Androidu, nejprve si stáhne – forknestabilní verzi linuxového jádra s dlouhodobou podporou (LTS) a upraví ji k obrazu svému. Tím vznikne jádro Android Common. Jenže to jsme teprve na začátku cesty.

95c07040-951f-417d-9cf1-4fabf8c1a353
Cesta od stabilní verze Linuxu k silně upravenému jádru, které běží v nitru telefonu s Androidem. I proto výrobci telefonů nasazují nový Android tak dlouho.

Zdrojové kódy tohoto upraveného jádra/kernelu nyní Google poskytne výrobcům mobilních procesorů – Qualcommu a dalším, kteří jej dále upraví, aby kernel podporoval všechny funkce jejich SoC platforem. Vznikne tedy další odvozenina SoC Kernel.

Takže nyní máme zdrojové kódy linuxového jádra, které optimalizoval nejprve Google a po něm třeba zrovna Qualcomm, aby toto jádro využilo všech funkcí některého z čipsetů Snapdragon. Qualcomm zdrojové kódy následně konečně nabídne výrobci koncového zařízení, který se rozhodl, že použije jeho procesor.

903a57c3-e4c7-4f7b-b763-625e2b122cb2
Není kernel jako kernel a Nokia Linux 4.4 se může výrazně lišit od oficiálního Linuxu 4.4

Když to bude třeba Nokia, může se zdrojovými kódy dále pracovat, aby je upravila pro konkrétní model – třeba lacinou a stárnoucí Nokii 7.1 autora tohoto článku.

Po strastiplné cestě máme konečně jádro operačního systému pro konkrétní telefon – Device Kernel, který bude obalený kompletním operačním systémem Android, běhovým prostředím jeho Javy, grafickým prostředím a tak dále.

Modulární kernel, který bude v základu identický napříč zařízeními s Androidem

Jak už jste se jistě všichni dovtípili, je to běh na poměrně dlouho trať, a tak má většina telefonů poměrně staré linuxové jádro, neboť každá aktualizace musí projít všemi těmito patry, což vývoj výrazně a zbytečně prodlužuje.

Google se proto snaží poslední roky svoji odvozeninu Android Common co nejvíce přiblížit hlavní oficiální větvi linuxového jádra. A skutečně, rok od roku ubývá počet přímých zásahů Googlu, který všechny své nutné úpravy soustředí spíše do modulů, které rozšiřují základní jádro.

e500783f-7ab3-4a05-beaf-5a7f34b29d64
Postupné sjednocování androidího kernelu s tím základním – graf znázorňuje postupné odstraňování úprav (řádků kódu).

Nyní se s aktuálním stavem firma pochlubila na konferenci Linux Plumbers 2019 (via Ars Technica).

Firma by chtěla výhledově docílit toho, aby to tak fungovalo i v dalších patrech grafu z úvodu článku. To znamená, že by jednou všechna zařízení s Androidem běžela na hlavní větvi Linuxu a všechny specifické funkce, které vyžaduje Google, výrobce čipsetu nebo koncového zařízení by se řešily právě modulární cestou.

320295b1-3abc-4385-b824-f153e73f259f
Cílem má být jednotné generické linuxové jádro, které bude dle čipsetu a telefonu rozšířené o moduly. To by mělo výrazně zjednodušit a zrychlit vývoj.

Představte si základní linuxové jádro jako webový prohlížeč a všechny zásahy Googlu, výrobce čipsetu a telefonu jako jeho nadstandardní funkce. Zatímco doposud každý zasahoval přímo do zdrojových kódu prohlížeče skládajícího se třeba ze stovek tisíc a milionů řádků kódu, v rámci této vize by všechny své funkce přepsali na, optikou zdrojového kódu, mnohem kratší a úzce specializované doplňky, pluginy – prostě modulární architekturu. 

Díky tomu by se mohla výrazně zkrátit doba vývoje aktualizací celého Androidu, na což jako koncoví uživatelé zpravidla nadáváme a ptáme se, proč proboha už na svém miláčkovi dávno nemáme poslední Android 10. Odpovědí je i tento článek.

835c4db6-daee-4f04-a53d-4b3c8ac736e6
Experimentální Android, který už používá nové jednotné jádro

I Google však přiznává, že kompletní sjednocení různých odvozenin linuxového jádra potrvá ještě poměrně dlouhou dobu.

Diskuze (24) Další článek: Microsoft integruje Gmail, Google Kalendář a Drive přímo do webového Outlooku

Témata článku: , , , , , , , , , , , , , , , , , , , , ,