Android prehaja na model "najprej navzgor" za nove funkcije jedra Linuxa

Google namerava z letom 2023 preiti na razvojni model »najprej navzgor« za funkcije jedra Linuxa v Androidu. Berite naprej, če želite izvedeti več.

Ko v istem stavku vidite besedi "Android" in "fragmentacija", vam misli verjetno takoj skočijo na Tabela porazdelitve različic Androida. Obstaja nekaj subjektov, na katere večina ljudi kaže s prstom, ko se pritožujejo, da se posodobitve operacijskega sistema Android počasi uvajajo povsod, vendar Google lahko naredi le toliko, sila Proizvajalci originalne opreme za hitrejši razvoj in uvajanje posodobitev. Kar pa lahko stori Google, je skrajšati razvojni čas in s tem stroške uvajanja posodobitev.

Prva večja pobuda v Googlovem dolgoročnem projektu zmanjšanja razvojnih bremen je Projekt Treble. Projekt Treble, ki je bil leta 2017 najavljen poleg Androida 8.0 Oreo, je modulariziral Android tako, da je ogrodje OS ločil od izvajanja prodajalca (HAL in razcep jedra Linuxa za napravo). To je proizvajalcem originalne opreme za Android olajšalo preosnovo svojih operacijskih sistemov na najnovejšo ogrodje AOSP, saj so lahko zagnali najnovejšo različico, ne da bi potrebovali posodobljeno kodo prodajalcev. Posledično bi proizvajalci originalne opreme lahko svoje vilice za Android po meri pripravili hitreje kot prej in posledično hitreje uvedli večje posodobitve OS.

Naslednji korak v Googlovih načrtih je bil poenostaviti dostavo posodobitev ključnih komponent Androida. Google je to pobudo poimenoval Projekt Mainline ko ga je leta 2019 predstavil skupaj z Androidom 10. Google je v bistvu prevzel nadzor nad ključnimi komponentami OS in proizvajalcem originalne opreme prepovedal njihovo spreminjanje. Nato vzpostavijo mehanizem dostave prek storitve Google Play, tako da lahko na daljavo uvedejo posodobitve teh ključnih komponent, ne da bi morali čakati, da proizvajalci originalne opreme sami namestijo popravke. Mainline je močno izboljšal, kako hitro naprave prejmejo posodobljene različice pomembnih komponent OS, s čimer je izboljšal varnost celotnega ekosistema Android.

Toda tisto, kar sledi, je še bolj pomembno in je nedvomno najpomembnejši del Googlove dolgoročne strategije. Ko smo prej poudarili, kako je Treble modulariziral Android z ločitvijo ogrodja OS od implementacijo prodajalca, smo kot del tega prodajalca vključili "razcep jedra Linuxa za določeno napravo". Koda. Vsakdo, ki pozna Linux na namiznih računalnikih, bo tam prepoznal težavo: zakaj je združen z zaprtokodno kodo prodajalca? Težava je v tem, da medtem ko so naprave Android dobavljene z jedrom Linux, ima to jedro a veliko kode zunaj drevesa.

Kako smo prišli tja? Težava, kot jo je opisal Googlov programski inženir Todd Kjos na letošnji Linux Plumbers Conference (prek ArsTechnica), ker je glavno jedro Linuxa večkrat razcepljeno, preden se pošlje v napravo Android. Google razdeli vsako glavno jedro Linuxa v "Skupno jedro Android" veja, ki natančno spremlja glavno izdajo, vendar dodaja nekaj popravkov, specifičnih za Android. Prodajalci SoC, kot so Qualcomm, MediaTek in Samsung, se nato razcepijo to jedro za vsak SoC, ki ga izdelajo. Proizvajalci originalne opreme nato vzamejo to jedro, specifično za SoC, in dodajo dodatne popravke za implementacijo podpore za specifično strojno opremo, ki jo želijo poslati.

Zaradi teh sprememb, "kar 50 % kode, ki se izvaja na napravi, je koda zunaj drevesa (ne iz zgornjih skupnih jeder Linuxa ali AOSP)«, glede na Google. Zaradi velike količine kode zunaj drevesa na teh napravah je združevanje sprememb navzgor dolg in zahteven proces. To je škodljivo za varnost naprave, saj se morajo proizvajalci originalne opreme bolj potruditi, da implementirajo popravke za ranljivosti, odkrite v jedru Linuxa. Poleg tega večina naprav Android zaradi tega ostane na letih starih izdajah jedra, kar pomeni, da nimajo novih funkcij jedra Linuxa.

Da bi rešil to težavo, Google dela na Android Generic Kernel Image (GKI), ki je v bistvu jedro, prevedeno neposredno iz veje ACK. GKI izolira prilagoditve prodajalca SoC in OEM za module vtičnikov, odpravlja kodo zunaj drevesa in omogoča Googlu, da posreduje posodobitve jedra neposredno končnemu uporabniku. Google že več kot eno leto išče način za dostavo posodobitev GKI prek Trgovine Play, z uporabo modula Mainline.

Po navedbah naših virov naprave, ki se zaženejo z Android 12 in dobavljen z jedrom Linux 5.10 mora namestiti zagonsko sliko, ki jo je podpisal Google. Google je zelo lasten Pixel 6 serija bo predstavljena z Androidom 12 takoj po pripravi in ​​dobavljena z jedrom Linux 5.10, tako da sta telefona morda prvi napravi za množični trg, ki bosta dobavljeni z GKI.

Poleg tega je Googlov Todd Kjos razkril, da namerava podjetje preiti na razvojni model "najprej navzgor" za nove funkcije jedra Linuxa. To bo Googlu pomagalo zagotoviti, da bo nova koda prva pristala v glavnem jedru Linuxa, kar bo zmanjšalo prihodnji tehnični dolg, ki bo nastal zaradi več kode zunaj drevesa, ki bo pristala na napravah Android.

Na konferenci vodovodarjev Linux ta teden je Kjos dejal, »Ker so zunajdrevesni moduli zelo pomembni za naš primer uporabe, pričakujemo, da bomo vedno imeli niz izvozov in nekaj stvari, ki so drugačne ali poleg tega, kar je navzgor, vendar je celoten projekt večletni projekt, ki si prizadeva, da bi se znebili čim več zaplat zunaj drevesa, kolikor je le mogoče, in čim bolj uskladili z gorvodno." Google želi do konca leta 2022 dokončati svoje delo v smeri nadgradnje obstoječih funkcij in izolacije sprememb pri prodajalcih. in z začetkom leta 2023 namerava podjetje sprejeti ta razvojni model »najprej navzgor«, da bi se izognilo takšnim težavam v prihodnost.