Google radi na korištenju običnog Linux kernela u Androidu

Na posljednjoj konferenciji Linux Plumbers 2019, Google on je rekao o razvoju inicijativama o prijenosu promjena razvijenih u Linux jezgri u glavnu Linux jezgru verzija kernela za Android platformu. Konačni cilj je omogućiti Androidu da koristi jednu zajedničku jezgru, umjesto pripreme zasebnih verzija za svaki uređaj na temelju grane specifične za Android Zajednička jezgra Androida. Taj je cilj već djelomično postignut, a na konferenciji je demonstriran Xiaomi Poco F1 Android pametni telefon s firmwareom temeljenim na uobičajenoj nemodificiranoj Linux jezgri.

Nakon što projekt bude spreman, dobavljači će biti zamoljeni da isporuče osnovni kernel temeljen na glavnom Linux kernelu. Komponente za hardversku podršku dobavljači će isporučivati ​​samo u obliku dodatnih modula kernela, bez primjene zakrpa na kernelu. Moduli će morati biti kompatibilni s glavnom jezgrom na razini prostora imena simbola jezgre. Sve promjene koje utječu na glavnu jezgru bit će promaknute u uzvodno. Kako bi se održala kompatibilnost s vlasničkim modulima unutar grana LTS-a, predlaže se održavanje API-ja jezgre i ABI-ja u stabilnom obliku, koji će održavati kompatibilnost modula s ažuriranjima za svaku zajedničku granu jezgre.

Google radi na korištenju običnog Linux kernela u Androidu

Tijekom godine značajke kao što su PSI (Pressure Stall Information) podsustav za analizu informacija o vremenu čekanja za dobivanje različitih resursa (CPU, memorija, I/O) i BinderFS pseudo-datotečni sustav za međuprocesnu komunikaciju mehanizam su prebačeni u glavnu jezgru Linuxa iz izdanja jezgre Androida Binder i energetski učinkovit planer zadataka EAS (Energy Aware Scheduling). U budućnosti se planira prijenos Androida sa specifičnog planera SchedTune na novi podsustav UtilClamp razvijen u ARM-u, temeljen na cgroups2 i standardnim kernel mehanizmima.

Google radi na korištenju običnog Linux kernela u Androidu

Podsjetimo, do sada je kernel za Android platformu prošao kroz nekoliko faza pripreme:

  • Na temelju glavnih LTS jezgri (3.18, 4.4, 4.9 i 4.14), stvorena je grana "Android Common Kernela" u koju su prebačene zakrpe specifične za Android (ranije je veličina promjena dosegla nekoliko milijuna redaka, ali nedavno promjene su svedene na nekoliko tisuća linija koda).
  • Na temelju "Android Common Kernela", proizvođači čipova poput Qualcomma formirali su "SoC kernel" koji uključuje dodatke za podršku hardveru.
  • Na temelju SoC kernela proizvođači uređaja kreirali su Device Kernel koji je uključivao promjene vezane uz podršku za dodatnu opremu, zaslone, kamere, zvučne sustave itd.

Google radi na korištenju običnog Linux kernela u Androidu

U biti, svaki uređaj je imao svoju jezgru, koja se nije mogla koristiti na drugim uređajima. Takva shema značajno komplicira implementaciju ažuriranja za uklanjanje ranjivosti i prijelaz na nove grane jezgre. Na primjer, najnoviji pametni telefon Pixel 4, objavljen u listopadu, isporučuje se s Linux kernelom 4.14, objavljenim prije dvije godine. Djelomično je Google promoviranjem sustava pokušao pojednostaviti održavanje Soprano, omogućujući proizvođačima stvaranje univerzalnih komponenti hardverske podrške koje nisu vezane uz određene verzije Androida i izdanja jezgre Linuxa koja se koriste. Treble omogućuje korištenje gotovih ažuriranja od Googlea kao temelja, integrirajući u njih komponente specifične za određeni uređaj.


Izvor: opennet.ru

Dodajte komentar