nykyinen Android-ekosysteemi on saastunut sadoilla eri versioilla Androidista, joissa jokaisessa on eri versio Linux-ytimestä. Jokainen versio on suunniteltu eri puhelimeen ja se on eri kokoonpanoissa. Google on pyrkinyt korjaamaan ongelmaa lisäämällä Androidiin mainline Linux-ytimen.
miten Linux-ydintä tällä hetkellä käsitellään Androidissa
ennen kuin se ehtii perille, kännykän Linux-ydin käy läpi kolme suurta vaihetta.
ensin Google ottaa Linux-ytimen LTS (Long Term Support) – version ja lisää siihen kaiken Android-spesifisen koodin. Tästä tulee ”Android Common kernel”.
Google lähettää tämän koodin yhtiölle, joka luo järjestelmän puhelinta pyörittävällä sirulla (SoC). Tämä on yleensä Qualcomm.
kun SoC maker on lopettanut suorittimen ja muiden sirujen tukemiseen tarvittavan koodin lisäämisen, ydin siirtyy varsinaiselle laitevalmistajalle, kuten Samsungille tai Motorolalle. Laitevalmistaja lisää sitten koodin tukemaan puhelimen muuta osaa, kuten näyttöä ja kameraa.
jokainen näistä vaiheista kestää jonkin aikaa ja johtaa ytimeen, joka ei toimi millään muulla laitteella. Se tarkoittaa myös sitä, että ydin on hyvin vanha, yleensä noin kaksi vuotta vanha. Esimerkiksi viime kuussa toimitetussa Google Pixel 4: ssä on marraskuusta 2017 lähtien ydin, jota ei koskaan päivitetä.
Google on luvannut luoda tietoturvakorjauksia vanhempiin laitteisiin, eli he ovat jumissa pitämässä silmällä valtavaa vanhan koodin hodge-podgea.
tulevaisuus
viime vuonna Google ilmoitti suunnitelmistaan korjata sotku. Tänä vuonna he paljastivat, mitä edistystä he saivat aikaan vuoden 2019 Linux putkimiehet-konferenssissa.
”tiedämme, mitä Androidin pyörittäminen vaatii, mutta ei välttämättä millään laitteistolla. Joten tavoitteenamme on periaatteessa löytää kaikki, että ulos, sitten ylävirtaan sitä ja yrittää olla niin lähellä mainline kuin mahdollista.”
Sandeep Patil, Android Kernel Team Lead
he kyllä esittelivät Xiaomi Poco F1-nimistä Androidia, jossa on kunnollinen Linux-ydin. Kuitenkin, se joitakin asioita ei näyttänyt toimivan, kuten akun prosenttiosuus, joka oli jumissa 0%.
Joten, miten Google aikoo saada tämän toimimaan? Ottamalla sivun projektistaan Treble playbook. Ennen Project Trebleä laitteen ja itse Androidin kanssa vuorovaikutuksessa ollut matalan tason koodi oli yhtä suurta koodisotkua. Project Treble erotti nämä kaksi toisistaan ja teki niistä modulaarisia, jotta Android-päivitykset voitaisiin toimittaa nopeammin ja matalan tason koodi voisi pysyä muuttumattomana päivitysten välillä.
Google haluaa tuoda saman modulaarisuuden ytimeen. Heidän suunnitelmansa ” sisältää Linux-ytimen ABI: n vakauttamisen ja vakaan käyttöliittymän Linux-ytimelle ja laitteistotoimittajille, joille kirjoittaa. Google haluaa irrottaa Linux-ytimen laitteistotuestaan.”
tämä tarkoittaa, että Google lähettäisi ytimen ja laitteisto-ajurit ladattaisiin ytimen moduuleina. Tällä hetkellä tämä on vain ehdotus. On vielä aika paljon teknisiä ongelmia, jotka on ratkaistava. tämä ei siis tapahdu ihan lähiaikoina.
avoimen lähdekoodin vastustus
avoimen lähdekoodin yhteisö ei pidä ajatuksesta laittaa omaa koodia ytimeen. Linux-ytimen ohjeissa todetaan, että ajureilla on oltava GPL-lisenssi, jotta ne voidaan sisällyttää ytimeen. He myös muistuttavat, että jos kuljettajan vaihtuminen aiheuttaa virheen, sen ratkaisee virheen luonut henkilö. Tämä tarkoittaa pidemmällä aikavälillä vähemmän työtä laitevalmistajille.
lopulliset ajatukset pääradan ytimen sisällyttämisestä Andoridiin
toistaiseksi tämä on vasta ehdotus. On hyvin mahdollista, että Google alkaa työskennellä projektin parissa vain hylätäkseen sen, kun he tajuavat, kuinka paljon työtä tämä vaatii. Katsokaapa, kuinka monesta projektista Google on jo luopunut.
Android Police teki hyvän huomion mainitsemalla, että Google työstää parhaillaan Fuksia-käyttöjärjestelmäänsä, jonka tavoitteena näyttää olevan Androidin korvaaminen jonain päivänä.
niin, kysymys on, mikä monumentaalinen tehtävä Google yrittää suorittaa, saada Androidin toimimaan mainline Linux kernel tai täydellinen työ niiden yhtenäinen Android korvaaminen? Vain aika voi vastata siihen.