Google želi poenotiti jedri Linuxa in Androida

Matej Huš

20. nov 2019 ob 22:01:14

Čeprav je Android zgrajen na Linuxovem jedru, sta si jedri precej različni. V primerjavi z Linuxom ima jedro za Android 32.000 vrstic dodatne kode in 1500 vrstic odstranjene kode. Nekaj kode je dopisal Google, druge prispevke so pripravili proizvajalci strojne opreme, denimo MediaTek in Qualcomm. Včasih je bilo stanje še hujše, saj je bilo dodatne kode 60.000 vrstic, a do cilja je še daleč. Google si je namreč zastavil cilj v prihodnosti Android spremeniti v modularno jedro, ki je v osnovi enako kot Linuxovo.

Tako so dejali na Linux Plumbers Conference, kjer je Google potrdil, da želijo jedri karseda zbližati. Na ta način bo razvoj enostavnejši, saj se trenutno potroši ogromno človeških ur na dodajanju kode v stabilno verzijo (merge), hkrati pa mora Google verzije Linuxovega jedra podpirati še šest let. Po drugi strani bi bilo poenotenje koristno tudi za telefone in računalnike z ARM-jevimi procesorji z Linuxom, ki bi dobili daljšo avtonomijo in nekaj zmogljivosti. Problem dodajanja funkcionalnosti proizvajalcev v jedro je Google odpravil s projektom Treble, ki je leta 2017 ločil gonilnike za posebno strojno opremo od preostalega dela Androida. To so uspeli doseči s stabilnim vmesnikom med Androidom in HAL-om (Hardware Abstraction Layer).

Prvi korak pri poenotenju bo vnos čim več sprememb v uradno Linuxovo verzijo. Tu gre dobro, saj je razlik z vsako verzijo manj. Googlu je že uspelo zagnati Android 10 z uradnim Linuxovim jedrom, čeprav vse funkcije ne delujejo. Sedaj bo Google poizkusil tudi v Linuxu uvesti nekaj podobnega projektu Treble, torej da bi zaprti gonilniki delovali kot nekakšni moduli brez sprememb v jedru. Skupnost Linuxa je načeloma proti stabilnemu vmesniku.