Ядро 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 большой. МАЛЕНЬКАЯ поддержка EAS

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

Адиантум поддержка

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

Исправления F2FS и EXT4.

Файловая система, дружественная к Flash, или F2FS, широко используемый в устройствах Android. Google Pixel 3 и Pixel 3 XL официально поддержка F2FS, например. Судя по всему, Джегеук Ким, первоначальный разработчик 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. Вот некоторые из них:

  • Тегра Х2
  • Тегра Ксавье
  • Оллвиннер F1C100
  • Qualcomm QCS404
  • Оллвиннер Т3
  • 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 вспышка2 за помощь в написании этой статьи.