Google хоче використовувати в Android єдине спільне ядро Linux, замість того щоб робити для кожного пристрою окремі збірки на базі гілок Android Common Kernels. Про зміни й розвиток варіанта ядра компанія розповіла на конференції Linux Plumbers 2019, де й показала прототип — Android-смартфон Xiaomi Poco F1 з немодифікованим ядром Linux.
Зазвичай ядро для Android створюють у декілька етапів:
- Спочатку на базі основних LTS-ядер у гілку Android Common Kernel переносять специфічні патчі (кілька тисяч рядків коду, раніше — кілька мільйонів).
- Тоді виробники мікросхем (Qualcomm) створюють SoC Kernel з доповненнями для підтримки обладнання.
- На базі SoC Kernel виробники пристроїв формують Device Kernel, де враховують додаткове обладнання: екрани, камери, тощо.
Тобто для кожного пристрою готується окреме ядро, яке не годиться для всіх інших пристроїв. Це суттєво ускладнює оновлення, виправлення вразливостей і перехід на нові гілки.
Тож у 2018 році Google почав досліджувати, як поєднати Android з основним ядром Linux. Хоча цей проєкт ще не завершений, компанія розповіла про свій прогрес. За рік з редакції ядра для Android в основне ядро Linux перенесли:
- підсистему PSI (Pressure Stall Information);
- псевдофайлову систему BinderFS;
- енергоефективний планувальник задач EAS (Energy Aware Scheduling).
Далі Android мають перенести зі специфічного планувальника SchedTune на розроблену в ARM нову підсистему UtilClamp, котра працює на базі cgroups2 і штатних механізмах ядра.
Коли проєкт буде готовий, спільне ядро на базі Linux запропонують постачальникам. Компоненти для підтримки поширюватимуться як додаткові модулі ядра, без формування патчів. Всі зміни, що стосуватимуть основного ядра, будуть просуватися в upstream. Модулі зберігатимуть сумісність з основним ядром, а щоб зберегти сумісність з пропрієтарними модулями в LTS-гілках, API й ABI ядра підтримуватимуть у стабільному вигляді.
Ще немає коментарів