Google Android-en Linux kernel arrunt bat erabiltzen ari da

Azken Linux Plumbers 2019 konferentzian, Google He esan garapenari buruz ekimenak Linux kernelean garatutako aldaketak Linux kernel nagusira transferitzean nukleoaren bertsioa Android plataformarako. Azken helburua Android-ek nukleo komun bat erabiltzeko aukera ematea da, Android-en adar espezifiko batean oinarritutako gailu bakoitzerako eraikuntza bereiziak prestatu beharrean. Android Kernel arrunta. Helburu hori partzialki lortu da dagoeneko, eta aldatu gabeko Linux nukleoan oinarritutako firmwarea duen Xiaomi Poco F1 Android telefonoa erakutsi zen hitzaldian.

Proiektua prest dagoenean, saltzaileek Linux nukleo nagusian oinarritutako oinarrizko kernel bat hornitzeko eskatuko zaie. Hardwarearen euskarriaren osagaiak hornitzaileek nukleoaren modulu osagarrien moduan bakarrik hornituko dituzte, nukleoari adabakirik ezarri gabe. Moduluek nukleo nagusiarekin bateragarriak izan beharko dute nukleoaren sinboloaren izen-espazio mailan. Nukleo nagusiari eragiten dioten aldaketa guztiak upstream sustatuko dira. LTS adarretan jabedun moduluekin bateragarritasuna mantentzeko, nukleoaren APIa eta ABI forma egonkor batean mantentzea proposatzen da, eta horrek nukleoaren adar komun bakoitzeko eguneratzeekin moduluen bateragarritasuna mantenduko du.

Google Android-en Linux kernel arrunt bat erabiltzen ari da

Urte batean zehar, hainbat baliabide (CPU, memoria, I/O) lortzeko itxarote-denborari buruzko informazioa aztertzeko PSI (Presion Stall Information) azpisistema eta BinderFS sasi-fitxategi sistema prozesuen arteko komunikaziorako. mekanismoak Linux kernel nagusira transferitu ziren Android kernelaren ediziotik Binder eta energia eraginkorraren zereginen programatzailea EAS (Energy Aware Scheduling). Etorkizunean, Android SchedTune programatzaile espezifikotik ARM-en garatutako UtilClamp azpisistema berrira transferitzea aurreikusten da, cgroups2 eta kernel mekanismo estandarretan oinarrituta.

Google Android-en Linux kernel arrunt bat erabiltzen ari da

Gogora dezagun orain arte Android plataformarako nukleoak prestatzeko hainbat fase igaro dituela:

  • LTS nukleo nagusietan oinarrituta (3.18, 4.4, 4.9 eta 4.14), "Android Common Kernel"-aren adar bat sortu zen, eta bertan Android-eko adabaki espezifikoak transferitu ziren (lehen aldaketen tamaina hainbat milioi lerrora iritsi zen, baina duela gutxi. aldaketak hainbat milaka kode lerrotara murriztu dira).
  • "Android Common Kernel"-ean oinarrituta, Qualcomm bezalako txip fabrikatzaileek "SoC Kernel" osatu zuten hardwarea onartzen zuten gehigarriak barne.
  • SoC Kernelean oinarrituta, gailuen fabrikatzaileek Device Kernel-a sortu zuten, ekipamendu, pantaila, kamera, soinu sistema eta abar osagarrien laguntzarekin lotutako aldaketak barne.

Google Android-en Linux kernel arrunt bat erabiltzen ari da

Funtsean, gailu bakoitzak bere nukleoa zuen, eta ezin zen beste gailu batzuetan erabili. Halako eskema batek nabarmen zailtzen du eguneratzeak ezartzea ahultasunak kentzeko eta kernel-adar berrietarako trantsizioa. Esaterako, urrian kaleratutako Pixel 4 telefono adimendun berriena duela bi urte kaleratutako Linux kernel 4.14 batekin dator. Neurri batean, Google mantentzea errazten saiatu zen sistema sustatuz Treble, fabrikatzaileek hardware euskarri unibertsala duten osagaiak sortzeko aukera ematen die Android bertsio zehatzei eta erabiltzen diren Linux kernel-oharra lotuta ez daudenak. Treble-k Google-ren eguneraketak prest dauden oinarri gisa erabiltzeko aukera ematen du, gailu jakin baterako osagai espezifikoak txertatuz.


Iturria: opennet.ru

Gehitu iruzkin berria