Android läheb uute Linuxi kerneli funktsioonide jaoks kasutusele mudelile "kõigepealt ülesvoolu".

Google kavatseb alates 2023. aastast lülituda Androidi Linuxi kerneli funktsioonide arendusmudelile "esimene ülesvoolu". Lisateabe saamiseks lugege edasi.

Kui näete samas lauses sõnu "Android" ja "fragmentatsioon", hüppab teie mõte tõenäoliselt kohe Androidi versiooni levitamise tabel. On mõned üksused, millele enamik inimesi osutab näpuga, kui kurdavad, et Android OS-i värskendused levivad aeglaselt, kuid Google saab teha vaid nii palju jõudu Originaalseadmete tootjad saavad värskendusi kiiremini välja töötada ja levitada. Google saab aga vähendada arendusaega ja seega ka värskenduste juurutamise kulusid.

Esimene suurem algatus Google’i pikaajalises arenduskoormuse vähendamise projektis on Projekt Treble. 2017. aastal koos Android 8.0 Oreoga välja kuulutatud Project Treble modulariseeris Androidi, eraldades OS-i raamistiku tarnija juurutusest (HAL-id ja seadmespetsiifiline Linuxi kerneli kahvel). See muutis Androidi originaalseadmete tootjatel lihtsamaks oma operatsioonisüsteemide uusimale AOSP raamistikule tuginemise, kuna nad said käivitada uusima versiooni ilma tarnijatelt värskendatud koodita. Selle tulemusel saaksid originaalseadmete tootjad oma kohandatud Androidi kahvlid varem valmis teha ja suuremad OS-i värskendused kiiremini kasutusele võtta.

Google'i plaanide järgmiseks sammuks oli Androidi peamiste komponentide uuenduste tarnimise tõhustamine. Google nimetas seda algatust Projekti põhiliin kui ta tutvustas seda 2019. aastal koos Android 10-ga. Google võttis sisuliselt kontrolli OS-i peamiste komponentide üle ja keelas originaalseadmete tootjatel neid muuta. Seejärel seadistasid nad Google Play kaudu tarnemehhanismi, et saaksid nende põhikomponentide värskendusi kaugjuhtimisega juurutada, ilma et peaksid ootama, kuni originaalseadmete tootjad paigad ise rakendavad. Mainline parandas oluliselt seda, kui kiiresti seadmed saavad oluliste OS-i komponentide värskendatud versioone, mis omakorda parandas Androidi ökosüsteemi kui terviku turvalisust.

Kuid see, mis tuleb järgmisena, on veelgi olulisem ja vaieldamatult Google'i pikaajalise strateegia kõige olulisem osa. Kui juhtisime varem tähelepanu sellele, kuidas Treble moduleris Androidi, eraldades OS-i raamistiku tarnija juurutuse, lisasime selle tarnija osana "seadmespetsiifilise Linuxi kerneli kahvli". kood. Igaüks, kes on Linuxiga lauaarvutites tuttav, tunneb ära selle probleemi: miks on see suletud lähtekoodiga müüja koodiga ühendatud? Probleem on selles, et kuigi Android-seadmed tarnitakse koos Linuxi tuumaga, on sellel kernelil a palju puuvälisest koodist.

Kuidas me sinna sattusime? Probleem, nagu kirjeldas Google'i tarkvarainsener Todd Kjos aadressil selle aasta Linuxi torulukkseppade konverents (via ArsTechnica), sest põhiline Linuxi tuum ühendatakse mitu korda enne Android-seadmesse tarnimist. Google ühendab iga põhiliini Linuxi kerneli "Androidi ühine kernel" haru, mis jälgib hoolikalt põhiväljalaset, kuid lisab mõned Android-spetsiifilised paigad. SoC müüjad nagu Qualcomm, MediaTek ja Samsung hargnevad seejärel et kernel iga nende tehtud SoC jaoks. Seejärel võtavad originaalseadmete tootjad selle SoC-spetsiifilise tuuma ja lisavad täiendavaid plaastreid, et rakendada konkreetse riistvara tuge, mida nad soovivad tarnida.

Nende muudatuste tõttu "kuni 50% seadmes töötavast koodist on puuväline kood (mitte ülesvoolu Linuxi või AOSP tavatuumadest)", vastavalt Google'ile. Nende seadmete suur hulk puuvälist koodi muudab ülesvoolu muudatuste ühendamise pikaks ja väljakutseid pakkuvaks protsessiks. See kahjustab seadme turvalisust, kuna originaalseadmete tootjad peavad Linuxi tuumas avastatud haavatavuste paikade rakendamiseks rohkem tööd tegema. Lisaks jätab see enamik Android-seadmeid aastaid vanade kerneli versioonide juurde, mis tähendab, et nad jäävad ilma uutest Linuxi kerneli funktsioonidest.

Selle probleemi lahendamiseks töötab Google Android Generic Kernel Image (GKI) kallal, mis on sisuliselt otse ACK-i harust kompileeritud kernel. GKI isoleerib SoC tarnija ja OEM-i kohandused pistikprogrammide moodulitest, välistades puuvälise koodi ja võimaldades Google'il saata kerneli värskendused otse lõppkasutajale. Google on üle aasta töötanud selle nimel, et pakkuda Play poe kaudu GKI värskendusi, põhiliini mooduli abil.

Meie allikate andmetel seadmed, mis käivituvad koos Android 12 ja tarnitakse koos Linuxi kerneliga 5.10, peavad juurutama Google'i allkirjastatud alglaadimispildi. Google'i oma Pixel 6 seeria käivitatakse koos Android 12-ga ja tarnitakse koos Linuxi kerneliga 5.10, nii et need kaks telefoni võivad olla esimesed GKI-ga varustatud massturuseadmed.

Lisaks näitas Google'i Todd Kjos, et ettevõte kavatseb uute Linuxi kerneli funktsioonide jaoks üle minna "eelvoolu esimesele" arendusmudelile. See aitab Google'il tagada, et uus kood maandub esimesena põhiliini Linuxi kernelisse, mis vähendab tulevast tehnilist võlga, mis tekib Android-seadmetes rohkematest puudest väljas olevatest koodidest.

Sel nädalal toimunud Linuxi torulukkseppade konverentsil ütles Kjos: "Kuna puuvälised moodulid on meie kasutusjuhtumi jaoks väga olulised, eeldame, et meil on alati eksportimise komplekt ja mõned asjad, mis erinevad või lisaks sellele, mis on ülesvoolu, kuid kogu see projekt on mitmeaastane projekt, mille eesmärk on vabaneda võimalikult paljudest puust väljas olevatest laigudest ja viia võimalikult palju vastavusse ülesvoolu." Google'i eesmärk on lõpetada töö olemasolevate funktsioonide ülesvoogustamise ja hankijate muudatuste eraldamise nimel 2022. aasta lõpuks ja alates 2023. aastast kavatseb ettevõte võtta kasutusele selle "ülesvoolu kõigepealt" arendusmudeli, et vältida selliseid probleeme tulevik.