Android prelazi na "upstream first" model za nove značajke jezgre Linuxa

click fraud protection

Google planira prijeći na "upstream first" razvojni model za značajke Linux kernela u Androidu počevši od 2023. godine. Čitajte dalje kako biste saznali više.

Kada vidite riječi "Android" i "fragmentacija" u istoj rečenici, vaš um vjerojatno odmah skoči na Tablica distribucije verzija Androida. Postoji nekoliko entiteta u koje većina ljudi upire prstom kada se žale da se ažuriranja OS-a Android sporo uvode u cijeloj ploči, ali postoji toliko toga da Google može učiniti sila OEM proizvođači za brži razvoj i uvođenje ažuriranja. Međutim, ono što Google može učiniti jest smanjiti vrijeme razvoja, a time i troškove uvođenja ažuriranja.

Prva velika inicijativa u Googleovom dugoročnom projektu smanjenja razvojnih opterećenja je Projekt Treble. Najavljen zajedno s Androidom 8.0 Oreo 2017., Project Treble modularizirao je Android odvajanjem okvira OS-a od implementacije dobavljača (HAL-ovi i vilica Linux kernela specifična za uređaj). To je OEM-ovima za Android olakšalo rebaziranje svojih operativnih sustava na najnoviji okvir AOSP jer su mogli pokrenuti najnoviju verziju bez potrebe za ažuriranim kodom od dobavljača. Kao rezultat toga, OEM-ovi bi mogli pripremiti svoje prilagođene Android forkove brže nego prije, a time i brže uvesti glavna ažuriranja OS-a.

Sljedeći korak u Googleovim planovima bio je pojednostaviti isporuku ažuriranja ključnih komponenti Androida. Google je ovu inicijativu nazvao Glavni projekt kada ga je predstavio zajedno s Androidom 10 2019. Google je u biti preuzeo kontrolu nad ključnim komponentama OS-a i zabranio proizvođačima originalne opreme da ih mijenjaju. Zatim su postavili mehanizam isporuke putem Google Playa kako bi mogli daljinski uvesti ažuriranja za te ključne komponente bez čekanja da proizvođači originalne opreme sami primijene zakrpe. Mainline je uvelike poboljšao brzinu kojom uređaji primaju ažurirane verzije važnih komponenti OS-a, zauzvrat poboljšavajući sigurnost Android ekosustava u cjelini.

Ali ono što slijedi još je važnije i nedvojbeno je najvažniji dio Googleove dugoročne strategije. Kada smo ranije istaknuli kako je Treble modularizirao Android odvajanjem OS okvira od implementaciju dobavljača, uključili smo "device-specific Linux kernel fork" kao dio tog dobavljača kodirati. Svatko tko je upoznat s Linuxom na stolnim računalima prepoznat će tu problem: zašto se stavlja u grupu koda dobavljača zatvorenog koda? Problem je u tome što iako se Android uređaji isporučuju s Linux kernelom, taj kernel ima a mnogo koda izvan stabla.

Kako smo tamo stigli? Problem, kako je opisao Googleov softverski inženjer Todd Kjos na ovogodišnju Linux Plumbers Conference (preko ArsTechnica), jer je glavni Linux kernel račvan nekoliko puta prije nego što se isporuči na Android uređaj. Google račva svaku glavnu jezgru Linuxa u "Android Common Kernel" ogranak, koji pomno prati glavno izdanje, ali dodaje nekoliko zakrpa specifičnih za Android. Dobavljači SoC-a kao što su Qualcomm, MediaTek i Samsung tada se odvajaju da kernel za svaki SoC koji naprave. OEM-ovi zatim uzimaju taj kernel specifičan za SoC i dodaju dodatne zakrpe za implementaciju podrške za određeni hardver koji žele isporučiti.

Zbog ovih promjena, "čak 50% koda koji se izvodi na uređaju je kod izvan stabla (ne iz uzvodnih Linux ili AOSP uobičajenih jezgri)“, navodi Google. Velika količina koda izvan stabla na ovim uređajima čini spajanje uzvodnih promjena dugim i izazovnim procesom. To je štetno za sigurnost uređaja jer proizvođači originalne opreme moraju više raditi na implementaciji zakrpa za ranjivosti koje su otkrivene u jezgri Linuxa. Nadalje, ovo ostavlja većinu Android uređaja na godinama starim izdanjima kernela, što znači da im nedostaju nove značajke kernela Linuxa.

U nastojanju da riješi ovaj problem, Google radi na Android Generic Kernel Image (GKI), koji je u biti kernel kompiliran izravno iz ACK grane. GKI izolira prilagodbe dobavljača SoC-a i OEM-a za module dodataka, eliminirajući kod izvan stabla i dopuštajući Googleu da ažuriranja kernela šalje izravno krajnjem korisniku. Više od godinu dana Google je radio na načinu isporuke GKI ažuriranja putem Trgovine Play, korištenjem Mainline modula.

Prema našim izvorima, uređaji koji se lansiraju sa Android 12 i isporučuju se s Linux kernelom 5.10 moraju implementirati sliku za pokretanje koju potpisuje Google. Google je vrlo vlastiti Pixel 6 Serija će se lansirati s Androidom 12 odmah po otvaranju i isporučivati ​​s Linux kernelom 5.10, tako da bi ova dva telefona mogli biti prvi uređaji za masovno tržište koji će se isporučivati ​​s GKI-jem.

Osim toga, Googleov Todd Kjos otkrio je da se tvrtka planira prebaciti na "upstream first" razvojni model za nove značajke Linux kernela. To će pomoći Googleu da osigura da novi kod prvi sleti u glavnu jezgru Linuxa, što će smanjiti budući tehnički dug akumuliran od više kodova izvan stabla koji slijeću na Android uređaje.

Na Linux Plumbers konferenciji ovog tjedna, Kjos je rekao, "Budući da su moduli izvan stabla stvarno važni za naš slučaj upotrebe, očekujemo da ćemo uvijek imati skup eksporta i neke stvari koje su drugačije ili uz ono što je uzvodno, ali cijeli je ovaj projekt višegodišnji projekt koji radi na uklanjanju što je više moguće zakrpa izvan stabla i usklađivanju što je više moguće s uzvodno." Google namjerava do kraja 2022. dovršiti svoj rad na poboljšanju postojećih značajki i izoliranju promjena dobavljača a počevši od 2023. tvrtka planira usvojiti ovaj razvojni model "prvo uzvodno" kako bi izbjegla takve probleme u budućnost.