Google поступово переносить в Android звичайне ядро Linux

2 хв. читання
22 листопада 2019

Google хоче використовувати в Android єдине спільне ядро Linux, замість того щоб робити для кожного пристрою окремі збірки на базі гілок Android Common Kernels. Про зміни й розвиток варіанта ядра компанія розповіла на конференції Linux Plumbers 2019, де й показала прототип — Android-смартфон Xiaomi Poco F1 з немодифікованим ядром Linux.

ABI-Monitoring-pdf-Google-Chrome-980x537

Зазвичай ядро для Android створюють у декілька етапів:

  1. Спочатку на базі основних LTS-ядер у гілку Android Common Kernel переносять специфічні патчі (кілька тисяч рядків коду, раніше — кілька мільйонів).
  2. Тоді виробники мікросхем (Qualcomm) створюють SoC Kernel з доповненнями для підтримки обладнання.
  3. На базі SoC Kernel виробники пристроїв формують Device Kernel, де враховують додаткове обладнання: екрани, камери, тощо.

Тобто для кожного пристрою готується окреме ядро, яке не годиться для всіх інших пристроїв. Це суттєво ускладнює оновлення, виправлення вразливостей і перехід на нові гілки.

Тож у 2018 році Google почав досліджувати, як поєднати Android з основним ядром Linux. Хоча цей проєкт ще не завершений, компанія розповіла про свій прогрес. За рік з редакції ядра для Android в основне ядро Linux перенесли:

  • підсистему PSI (Pressure Stall Information);
  • псевдофайлову систему BinderFS;
  • енергоефективний планувальник задач EAS (Energy Aware Scheduling).

Далі Android мають перенести зі специфічного планувальника SchedTune на розроблену в ARM нову підсистему UtilClamp, котра працює на базі cgroups2 і штатних механізмах ядра.

Solving-issues-associated-with-modules-and-supplie-

Коли проєкт буде готовий, спільне ядро на базі Linux запропонують постачальникам. Компоненти для підтримки поширюватимуться як додаткові модулі ядра, без формування патчів. Всі зміни, що стосуватимуть основного ядра, будуть просуватися в upstream. Модулі зберігатимуть сумісність з основним ядром, а щоб зберегти сумісність з пропрієтарними модулями в LTS-гілках, API й ABI ядра підтримуватимуть у стабільному вигляді.

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.6K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація