Ядро Linux 5.0 RC1 доступне з ARM big. Підтримка LITTLE EAS, виправлення F2FS та багато іншого

Ядро Linux, на якому базуються всі пристрої Android, отримує велике оновлення до версії 5.0. Ми розглядаємо зміни, які стосуються мобільних пристроїв.

Хоча ми зазвичай не розповідаємо про те, що відбувається в основній сфері ядра Linux, для нас важливо відстежувати, що відбувається з кожним новим випуском ядра, оскільки Google вимагає мінімальна версія ядра Linux з кожним новим випуском Android. Недавнє рішення про продовжити випуски LTS з 2 до 6 років відіграватиме важливу роль у зменшенні фрагментації виправлень безпеки, оскільки виробникам пристроїв доведеться менше працювати над портуванням виправлень безпеки. Крім того, основне ядро ​​часто інтегрує нові функції, які стосуються мобільних пристроїв.

Наприклад, перший Випуск збірки кандидата для наступної версії LTS ядра нещодавно було випущено — ядро ​​Linux 5.0 RC1. До стабільного випуску залишився місяць-два, але ми вже можемо поглянути на те, що буде в майбутньому випуску. Я виділю деякі оновлення, які стосуються мобільних пристроїв, але рекомендую переглянути повний журнал змін, якщо вас цікавить розробка з відкритим кодом і ядро ​​Linux.

ARM великий. Підтримка LITTLE EAS

Планування з урахуванням енергії з’явився на пристроях Android ще з моменту випуску оригінального Pixel. EAS є однією з причин, чому пристрої Google Pixel загалом швидші, ніж їхні конкуренти. Підтримку вже активовано у випуску ядра Snapdragon 845 від Qualcomm, тому будь-який пристрій із цією SoC (або новішою) підтримуватиме EAS. Хоча в Linux досі не було підтримки Energy Aware Scheduling. Теоретично підтримка вищої версії повинна полегшити виробникам кремнію та пристроїв впровадження технології у свої пристрої. Однак для кінцевих користувачів підтримка вищої версії не має великого значення.

Опора Адіантум

Speck — це алгоритм шифрування, розроблений NSA (Адміністрацією національної безпеки), який добре працює на апаратному забезпеченні низького класу. Google призначений щоб додати підтримку для speck, оскільки він пропонує підтримку шифрування даних для бюджетних пристроїв із SoC без апаратно-прискорених розширень шифрування. Прийняття Speck було широко розкритиковане через його зв'язки з АНБ. Підтримку speck було видалено в ядрі Linux 4.20, а його заміна Adiantum працює так само добре, якщо не краще, на апаратному забезпеченні нижчого класу з файловими системами EXT4/F2FS.

Виправлення F2FS і EXT4

Флеш-Friendly File-System або F2FS широко використовуваний в пристроях Android. Google Pixel 3 і Pixel 3 XL офіційно підтримка F2FS, наприклад. Ймовірно, Jaegeuk Kim, оригінальний розробник F2FS, надіслав запит на злиття для багатьох виправлень файлової системи до сховища Linux. Ці зміни вирішують проблеми шифрування та керування часом простою, а також виправлення збирання сміття. Ви можете побачити всі деталі в цей запит на отримання. Загалом, виправлення F2FS покращує стабільність і надійність на смартфонах Android, які підтримують або підтримуватимуть її.

Подібним чином популярна файлова система EXT4 отримала трохи більше десятка виправлень. EXT4 використовується на багатьох пристроях Android, таких як найновіші пристрої OnePlus (включаючи OnePlus 5T, OnePlus 6 і OnePlus 6T).

Підтримка нового апаратного забезпечення ARM

Дистрибутиви GNU/Linux, мабуть, є найкращими операційними системами для роботи на обладнанні на основі ARM. Вони пропонують надійну багатозадачність на основі моделі з відкритим кодом. Процесори ARM спеціально розроблені для виконання багатьох завдань одночасно. Ось чому важливо, щоб ОС йшла в ногу з апаратним забезпеченням. Як деякі з вас знають, більшість смартфонів і планшетів Android використовують чіпсети з архітектурою ARM. Чіпи на основі RISC ідеально підходять для виконання щоденних завдань (які ви виконуєте на своєму смартфоні. Ядро Linux 5.0 додає підтримку багатьох нових пристроїв ARM. Ось деякі з них:

  • Tegra X2
  • Тегра Ксаверія
  • Allwinner F1C100
  • Qualcomm QCS404
  • Allwinner T3
  • NXP Layerscape LX2160

Окрім підтримки універсальної сумісності для певного апаратного забезпечення ARM, ядро ​​Linux 5.0 також покращило керування живленням.

Підтримка BinderFS

Android використовує Binder для обміну аргументами між різними процесами в системі. Програми, дії та процеси використовують Binder для запуску процесів і керування ними. Безпека на Android значною мірою базується на дозволах UID. Binder перевіряє UID, надані програмами, за допомогою двосторонніх викликів IPC, щоб підтвердити, що він має доступ до функції, яку він хоче використовувати. BinderFS — це оновлена ​​версія Binder, але вона більш спеціалізована та сумісна з системою. Підтримка BinderFS не сильно зміниться для кінцевого користувача, але в довгостроковій перспективі вирішить деякі проблеми впровадження для розробників. Ось відповідний комміт.

Структура управління енергетичною моделлю

Ще одним доповненням є підтримка Energy Model Management Framework. Ця зміна в основному стосується розробників ARM і ядра. Він пропонує новий рівень стандартизованої інформації про використання енергії з різних джерел, таких як дерево пристроїв або драйвери. Споживання енергії та звітування обробляються апаратним і програмним забезпеченням по-різному. Energy Model Management Framework надасть стандартний API, який може використовуватися іншим драйвером у ядрі для доступу до інформації про споживання енергії. Теоретично це полегшить інженерам програмного забезпечення та розробникам отримання необхідної інформації з обладнання. Ви можете прочитати більше про цю структуру у цьому коміті.

Підтримка автентифікації вказівника ARM64

Кожне відповідне апаратне та програмне забезпечення, особливо для мобільних пристроїв, потребує надійних протоколів безпеки. Це те, що пропонує ядро ​​Linux 5.0 із підтримкою аутентифікації вказівника ARM64. Оскільки більшість смартфонів мають набори мікросхем на основі ARM64, дуже важливо, щоб зловмисники не могли використовувати покажчики, які використовуються в ядрі Linux для доступу до адрес пам’яті. Новий протокол автентифікації порівнює покажчики з секретними ключами. Автентифікація за вказівником намагатиметься уникнути зворотно-орієнтованого програмування (ROP) та інших видів атак.


Існує ще багато оновлень ядра Linux 5.0, про які ми не розповідали. Більшість із них насправді не мають великого значення для пристроїв Android, тому нам довелося вибирати список змін із вишневим настроєм. Якщо ви хочете переглянути повний 'журнал змін', перевірте фороніксів покриття.

Завдяки визнаному розробнику XDA flar2 за допомогу з цією статтею.