Android prechádza na model „prvý upstream“ pre nové funkcie jadra Linuxu

click fraud protection

Google plánuje prejsť na vývojový model „upstream first“ pre funkcie jadra Linuxu v systéme Android od roku 2023. Čítajte ďalej a dozviete sa viac.

Keď uvidíte slová „Android“ a „fragmentácia“ v tej istej vete, vaša myseľ pravdepodobne okamžite preskočí na Tabuľka distribúcie verzií systému Android. Existuje niekoľko subjektov, na ktoré väčšina ľudí ukazuje prstom, keď sa sťažuje, že aktualizácie operačného systému Android sa zavádzajú pomaly, ale spoločnosť Google môže urobiť len toľko. sila OEM, aby rýchlejšie vyvíjali a zavádzali aktualizácie. Čo však Google dokáže, je skrátiť čas vývoja a tým aj náklady na zavádzanie aktualizácií.

Prvou veľkou iniciatívou v rámci dlhodobého projektu spoločnosti Google na zníženie vývojovej záťaže je Projekt Treble. Projekt Treble, ohlásený spolu s Androidom 8.0 Oreo v roku 2017, modularizoval Android oddelením rámca OS od implementácie dodávateľa (HAL a vidlica jadra Linuxu pre konkrétne zariadenie). To uľahčilo výrobcom Android OEM prebudovanie ich operačných systémov na najnovšom rámci AOSP, pretože mohli spustiť najnovšiu verziu bez potreby aktualizovaného kódu od dodávateľov. V dôsledku toho mohli výrobcovia OEM pripraviť svoje vlastné platformy pre Android rýchlejšie ako predtým a vďaka rozšíreniu rýchlejšie zavádzať hlavné aktualizácie operačného systému.

Ďalším krokom v plánoch Google bolo zefektívniť doručovanie aktualizácií kľúčových komponentov Androidu. Google túto iniciatívu nazval Hlavná línia projektu keď ho predstavila spolu so systémom Android 10 v roku 2019. Google v podstate prevzal kontrolu nad kľúčovými komponentmi OS a zakázal výrobcom OEM ich upravovať. Potom nastavili mechanizmus doručovania cez Google Play, aby mohli na diaľku zaviesť aktualizácie týchto kľúčových komponentov bez toho, aby museli čakať, kým OEM sami aplikujú opravy. Mainline výrazne zlepšil, ako rýchlo zariadenia prijímajú aktualizované verzie dôležitých komponentov operačného systému, čím sa zlepšila bezpečnosť ekosystému Android ako celku.

Ale to, čo príde ďalej, je ešte dôležitejšie a je pravdepodobne najdôležitejšou súčasťou dlhodobej stratégie Google. Keď sme predtým poukázali na to, ako Treble modularizoval Android oddelením rámca OS od implementáciu dodávateľa, zahrnuli sme "device-specific Linux kernel fork" ako súčasť tohto dodávateľa kód. Každý, kto je oboznámený s Linuxom na stolných počítačoch, rozpozná problém: Prečo je to spojené s uzavretým kódom dodávateľa? Problém je v tom, že zatiaľ čo zariadenia so systémom Android sa dodávajú s jadrom Linuxu, toto jadro obsahuje a veľa kódu mimo stromu.

Ako sme sa tam dostali? Problém, ktorý načrtol softvérový inžinier spoločnosti Google Todd Kjos na adrese tohtoročná konferencia Linux Plumbers Conference (cez ArsTechnica), je to preto, že hlavné jadro Linuxu je pred odoslaním na zariadenie so systémom Android niekoľkokrát forkované. Google rozdelí každé jadro hlavného radu Linuxu na „Android Common Kernel", ktorá podrobne sleduje hlavné vydanie, ale pridáva niekoľko opráv špecifických pre Android. Dodávatelia SoC ako Qualcomm, MediaTek a Samsung potom vidia že jadro pre každý SoC, ktorý vyrobia. OEM potom vezmú toto jadro špecifické pre SoC a pridajú ďalšie záplaty na implementáciu podpory pre konkrétny hardvér, ktorý chcú dodať.

Kvôli týmto zmenám, "až 50 % kódu spusteného na zariadení je mimo stromu (nie z upstreamových jadier Linuxu alebo AOSP)“, podľa Google. Veľké množstvo kódu mimo stromu na týchto zariadeniach robí zlučovanie zmien upstream dlhým a náročným procesom. To je škodlivé pre bezpečnosť zariadenia, pretože výrobcovia OEM musia viac pracovať na implementácii opráv zraniteľností, ktoré sú objavené v jadre Linuxu. Okrem toho to ponecháva väčšinu zariadení so systémom Android na niekoľko rokov starých vydaniach jadra, čo znamená, že im chýbajú nové funkcie jadra Linuxu.

V snahe vyriešiť tento problém Google pracuje na Android Generic Kernel Image (GKI), čo je v podstate jadro skompilované priamo z ACK vetvy. GKI izoluje prispôsobenia dodávateľa SoC a OEM modulom zásuvných modulov, čím eliminuje kód mimo stromu a umožňuje spoločnosti Google posielať aktualizácie jadra priamo koncovému používateľovi. Spoločnosť Google už viac ako rok pracuje na spôsobe poskytovania aktualizácií GKI prostredníctvom Obchodu Play, pomocou hlavného modulu.

Podľa našich zdrojov zariadenia, ktoré sa spúšťajú s Android 12 a dodávané s jadrom Linuxu 5.10 musia nasadiť zavádzací obraz podpísaný spoločnosťou Google. Google je veľmi vlastný Pixel 6 séria bude spustená s Androidom 12 hneď po vybalení a bude dodávaná s linuxovým jadrom 5.10, takže tieto dva telefóny môžu byť prvými masovo predávanými zariadeniami, ktoré budú dodávané s GKI.

Okrem toho Todd Kjos z Google prezradil, že spoločnosť plánuje prejsť na vývojový model „upstream first“ pre nové funkcie jadra Linuxu. Pomôže to Googlu zabezpečiť, aby sa nový kód dostal na prvé miesto v hlavnom linuxovom jadre, čo zníži budúci technický dlh, ktorý vznikne v dôsledku väčšieho množstva pristávania kódu mimo stromu na zariadeniach so systémom Android.

Na konferencii Linux Plumbers Conference tento týždeň Kjos povedal: „Keďže moduly mimo stromu sú pre náš prípad použitia skutočne dôležité, očakávame, že vždy budeme mať súbor exportov a niektoré veci, ktoré sú odlišné alebo nad rámec toho, čo proti prúdu, ale celý tento projekt je viacročným projektom, ktorý sa snaží zbaviť sa čo najväčšieho počtu záplat mimo stromu a čo najviac zosúladiť proti prúdu." Google sa snaží dokončiť svoju prácu na upstreamovaní existujúcich funkcií a izolácii zmien dodávateľov do konca roka 2022 a počnúc rokom 2023 spoločnosť plánuje prijať tento vývojový model „najskôr upstream“, aby sa vyhla takýmto problémom v budúcnosti.