Google pyrkii käyttämään tavallista Linux-ydintä Androidissa

Viimeisessä Linux Plumbers 2019 -konferenssissa Google hän kertoi kehityksestä aloitteita Linux-ytimessä kehitettyjen muutosten siirtämisestä Linuxin pääytimeen ytimen versio Android-alustalle. Lopullisena tavoitteena on antaa Androidille mahdollisuus käyttää yhtä yhteistä ydintä sen sijaan, että jokaiselle laitteelle laadittaisiin erilliset koontiversiot Android-kohtaisen haaran perusteella. Android-yhteinen ydin. Tämä tavoite on jo osittain saavutettu, ja konferenssissa esiteltiin Xiaomi Poco F1 Android-älypuhelin, jonka laiteohjelmisto perustuu tavanomaiseen muokkaamattomaan Linux-ytimeen.

Kun projekti on valmis, toimittajia pyydetään toimittamaan Linuxin pääytimeen perustuva perusydin. Toimittajat toimittavat laitteistotuen komponentteja vain ylimääräisinä ydinmoduuleina ilman korjaustiedostoja ytimeen. Moduulien on oltava yhteensopivia pääytimen kanssa ytimen symbolien nimiavaruuden tasolla. Kaikki pääytimeen vaikuttavat muutokset viedään alkupäähän. Yhteensopivuuden säilyttämiseksi LTS-haarojen omien moduulien kanssa ehdotetaan, että ytimen API ja ABI ylläpidetään vakaassa muodossa, mikä säilyttää moduulien yhteensopivuuden jokaisen yleisen ytimen haaran päivitysten kanssa.

Google pyrkii käyttämään tavallista Linux-ydintä Androidissa

Vuoden aikana ominaisuuksia, kuten PSI-alijärjestelmä (Pressure Stall Information) erilaisten resurssien (CPU, muisti, I/O) hankinnan odotusaikojen tietojen analysoimiseksi ja BinderFS-pseudotiedostojärjestelmä prosessien välistä viestintää varten. mekanismi siirrettiin Linuxin pääytimeen Android-ytimen versiosta Binder ja energiatehokas tehtävien ajoitus EAS (Energy Aware Scheduling). Jatkossa Android suunnitellaan siirrettäväksi tietystä SchedTune-aikatauluttimesta uuteen UtilClamp-alijärjestelmään, joka on kehitetty ARM:ssa, joka perustuu cgroups2- ja standardiydinmekanismeihin.

Google pyrkii käyttämään tavallista Linux-ydintä Androidissa

Muistakaamme, että tähän asti Android-alustan ydin on käynyt läpi useita valmisteluvaiheita:

  • Pää LTS-ytimien (3.18, 4.4, 4.9 ja 4.14) pohjalta luotiin "Android Common Kernelin" haara, johon siirrettiin Android-kohtaisia ​​korjaustiedostoja (aiemmin muutosten koko oli useita miljoonia rivejä, mutta äskettäin muutokset on vähennetty useisiin tuhansiin koodiriviin ).
  • Perustuen "Android Common Kerneliin", siruvalmistajat, kuten Qualcomm, muodostivat "SoC-ytimen", joka sisälsi lisäosia laitteiston tukemiseksi.
  • Laitevalmistajat loivat SoC-ytimen pohjalta Device Kernelin, joka sisälsi lisälaitteiden, näyttöjen, kameroiden, äänijärjestelmien jne. tukeen liittyviä muutoksia.

Google pyrkii käyttämään tavallista Linux-ydintä Androidissa

Pohjimmiltaan jokaisella laitteella oli oma ydin, jota ei voitu käyttää muissa laitteissa. Tällainen järjestelmä vaikeuttaa merkittävästi päivitysten käyttöönottoa haavoittuvuuksien poistamiseksi ja siirtymisen uusiin ytimen haaroihin. Esimerkiksi uusin Pixel 4 -älypuhelin, joka julkaistiin lokakuussa, toimitetaan kaksi vuotta sitten julkaistun Linux-ytimen 4.14 kanssa. Osittain Google yritti yksinkertaistaa ylläpitoa edistämällä järjestelmää Diskantti, jonka avulla valmistajat voivat luoda yleisiä laitteistotukikomponentteja, joita ei ole sidottu tiettyihin käytettyihin Android-versioihin ja Linux-ytimen julkaisuihin. Treble mahdollistaa Googlen valmiiden päivitysten käyttämisen pohjana integroimalla niihin tietylle laitteelle ominaisia ​​komponentteja.


Lähde: opennet.ru

Lisää kommentti