La conferința Linux Plumbers 2019, compania Google despre dezvoltare a modificărilor care sunt transferate în nucleul principal al Linux, dezvoltate în pentru platforma Android. Scopul final este de a oferi posibilitatea utilizării unui singur nucleu comun în Android, în locul pregătirii de compilări separate pentru fiecare dispozitiv, bazate pe ramura specifică Android . Acest obiectiv a fost deja parțial atins, iar la conferință a fost demonstrat un smartphone Android Xiaomi Poco F1 cu firmware bazat pe nucleul Linux standard, nemodificat.
După finalizarea proiectului, furnizorilor li se va propune livrarea nucleului de bază bazat pe nucleul principal Linux. Componentele pentru suportul echipamentului vor fi furnizate de furnizori doar sub formă de module suplimentare pentru nucleu, fără aplicarea de patch-uri pe nucleu. Modulele trebuie să asigure compatibilitatea cu nucleul principal la nivelul spațiului de nume al simbolurilor nucleului. Toate modificările ce afectează nucleul principal vor fi promovate upstream. Pentru a menține compatibilitatea cu modulele proprietare în cadrul ramurilor LTS, se propune păstrarea stabilă a API-ului și ABI-ului nucleului, ceea ce va permite menținerea compatibilității modulelor cu actualizările pentru fiecare ramură comună a nucleului.

În decurs de un an, în nucleul principal Linux au fost transferate din ediția de nucleu pentru Android funcții precum sub-sistemul PSI (Pressure Stall Information) pentru analiza timpului de așteptare a obținerii diferitelor resurse (CPU, memorie, intrare/ieșire), sistemul pseudo fișier BinderFS pentru mecanismul de interacțiune între procese Binder și programatorul de sarcini eficient energetic EAS (Energy Aware Scheduling). În continuare, se preconizează ca Android să fie transferat de la programatorul specific SchedTune la noul sub-sistem UtilClamp dezvoltat de ARM, bazat pe cgroups2 și mecanismele standard ale nucleului.

Să ne amintim că până acum nucleul pentru platforma Android a trecut prin mai multe etape de pregătire:
- Pe baza nucleelor LTS principale (3.18, 4.4, 4.9 și 4.14) s-a creat o ramură denumită „Android Common Kernel”, în care au fost transferate patch-uri specifice pentru Android (anterior, dimensiunea modificărilor ajungea la câteva milioane de linii, dar în ultima vreme modificările au fost reduse la câteva mii de linii de cod).
- Pe baza „Android Common Kernel”, producătorii de cipuri, cum ar fi Qualcomm, au dezvoltat „SoC Kernel”, care include extensii pentru suportul hardware-ului.
- Pe baza «SoC Kernel», producătorii de dispozitive au creat «Device Kernel», care includ modificări legate de suportul echipamentelor suplimentare, ecranelor, camerelor, sistemelor sonore etc.

În esență, pentru fiecare dispozitiv a fost creat un nucleu propriu, care nu putea fi utilizat pe alte dispozitive. Această schemă complică semnificativ actualizarea cu patch-uri de securitate și trecerea la noi ramuri ale nucleului. De exemplu, cel mai recent smartphone Pixel 4, lansat în octombrie, vine cu nucleul Linux 4.14, care a fost lansat cu doi ani în urmă. Parțial, Google a încercat să simplifice întreținerea prin promovarea sistemului , care permite producătorilor să creeze componente universale de suport hardware, independente de versiunile specifice de Android și de versiunile nucleului Linux utilizate. Treble oferă posibilitatea de a folosi actualizările deja existente de la Google ca bază, integrând componente specifice pentru fiecare dispozitiv.

Sursa: opennet.ro
