Google працює над використанням звичайного ядра Linux в Android

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

Після готовності проекту постачальникам буде запропоновано постачати базове ядро ​​на основі основного ядра Linux. Компоненти для підтримки обладнання будуть поставлятися постачальниками лише у вигляді додаткових модулів ядра без накладання на ядро ​​патчів. У модулях обов'язково буде забезпечуватися сумісність з основним ядром лише на рівні простору імен символів ядра. Всі зміни, що стосуються основного ядра, будуть просуватися в upstream. Для збереження сумісності з пропрієтарними модулями в рамках LTS-гілок пропонується підтримувати у стабільному вигляді API та ABI ядра, що дозволить зберегти сумісність модулів з оновленнями для кожної спільної гілки ядра.

Google працює над використанням звичайного ядра Linux в Android

За рік до основного ядра Linux з редакції ядра для Android було перенесено такі можливості, як підсистема PSI (Pressure Stall Information) для аналізу інформації про час очікування отримання різних ресурсів (CPU, пам'ять, введення/виведення), псевдофайлова система BinderFS для механізму міжпроцесної взаємодії Binder та енергоефективний планувальник завдань EAS (Energy Aware Scheduling). Надалі Android планується перевести зі специфічного планувальника SchedTune на розроблену в ARM нову підсистему UtilClamp, засновану на cgroups2 та штатних механізмах ядра.

Google працює над використанням звичайного ядра Linux в Android

Нагадаємо, що досі ядро ​​для платформи Android проходило кілька стадій підготовки.

  • На базі основних LTS-ядер (3.18, 4.4, 4.9 та 4.14) створювалося відгалуження «Android Common Kernel», в яке переносилися специфічні для Android патчі (раніше розмір змін досягав кількох мільйонів рядків, але останнім часом зміни були скорочені до кількох тисяч рядків коду ).
  • На основі Android Common Kernel виробники чіпів, такі як Qualcomm, формували SoC Kernel, що включають доповнення для підтримки обладнання.
  • На основі SoC Kernel виробники пристроїв створювали Device Kernel, що включають зміни, пов'язані з підтримкою додаткового обладнання, екранів, камер, звукових систем і т.п.

Google працює над використанням звичайного ядра Linux в Android

По суті, для кожного пристрою формувалося власне ядро, яке не могло використовуватися на інших пристроях. Подібна схема суттєво ускладнює доведення оновлень з усуненням уразливостей та перехід на нові гілки ядра. Наприклад, новий смартфон Pixel 4, що вийшов у жовтні, поставляється з ядром Linux 4.14, випущеним два роки тому. Частково, Google спробував спростити супровід просуваючи систему Високі частоти, що дозволяє виробникам створювати універсальні компоненти підтримки обладнання, що не прив'язані до конкретних версій Android та використовуваних випусків ядра Linux. Treble дає можливість використовувати в якості основи готові оновлення від Google, інтегруючи в них специфічні для конкретного пристрою компоненти.


Джерело: opennet.ru

Додати коментар або відгук