Google работает над использованием обычного ядра Linux в Android

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 21 Nov 2019.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,016
    Likes Received:
    4,836
    Reputations:
    693
    На прошедшей конференции Linux Plumbers 2019 компания Google рассказала о развитии инициативы по переносу в основное ядро Linux изменений, развиваемых в варианте ядра для платформы Android. Конечной целью является предоставление возможности использования в Android одного общего ядра, вместо подготовки для каждого устройства отдельных сборок на основе специфичной для Android ветки Android Common Kernel. Данная цель уже частично достигнута, и на конференции был продемонстрирован Android-смартфон Xiaomi Poco F1 с прошивкой на базе обычного немодифицированного ядра Linux.

    После готовности проекта поставщикам будет предложено поставлять базовое ядро на основе основного ядра Linux. Компоненты для поддержки оборудования будут поставляться поставщиками только в виде дополнительных модулей ядра, без наложения на ядро патчей. В модулях обязательно должна будет обеспечиваться совместимость с основным ядром на уровне пространства имён символов ядра. Все изменения, затрагивающие основное ядро, будут продвигаться в upstream. Для сохранения совместимости с проприетарными модулями в рамках LTS-веток предлагается поддерживать в стабильном виде API и ABI ядра, что позволит сохранить совместимость модулей с обновлениями для каждой общей ветки ядра.

    [​IMG]
    За год в основное ядро Linux из редакции ядра для Android были перенесены такие возможности, как подсистема PSI (Pressure Stall Information) для анализа информации о времени ожидания получения различных ресурсов (CPU, память, ввод/вывод), псевдофайловая система BinderFS для механизма межпроцессного взаимодействия Binder и энергоэффективный планировщик задач EAS (Energy Aware Scheduling). В дальнейшем Android планируется перевести со специфичного планировщика SchedTune на разработанную в ARM новую подсистему UtilClamp, основанную на cgroups2 и штатных механизмах ядра.

    [​IMG]
    Напомним, что до сих пор ядро для платформы Android проходило несколько стадий подготовки:

    • На базе основных LTS-ядер (3.18, 4.4, 4.9 и 4.14) создавалось ответвление "Android Common Kernel", в которое переносились специфичные для Android патчи (ранее размер изменений достигал нескольких миллионов строк, но последнее время изменения были сокращены до нескольких тысяч строк кода).
    • На основе "Android Common Kernel" производители чипов, такие как Qualcomm, формировали "SoC Kernel", включающие дополнения для поддержки оборудования.
    • На основе "SoC Kernel" производители устройств создавали "Device Kernel", включающие изменения, связанные с поддержкой дополнительного оборудования, экранов, камер, звуковых систем и т.п.
    [​IMG]
    По сути, для каждого устройства формировалось своё собственное ядро, которое не могло использоваться на других устройствах. Подобная схема существенно усложняет доведение обновлений с устранением уязвимостей и переход на новые ветки ядра. Например, вышедший в октябре новейший смартфон Pixel 4 поставляется с ядром Linux 4.14, выпущенным два года назад. Частично, Google попытался упростить сопровождение продвигая систему Treble, позволяющую производителям создавать универсальные компоненты поддержки оборудования, не привязанные к конкретным версиям Android и используемым выпускам ядра Linux. Treble даёт возможность использовать в качестве основы уже готовые обновления от Google, интегрируя в них специфичные для конкретного устройства компоненты.



     
  2. user100

    user100 Moderator

    Joined:
    24 Dec 2011
    Messages:
    3,803
    Likes Received:
    13,039
    Reputations:
    352
    Если будет единое ядро у смартфонов, шить будет проще, шить будет веселее;)
    Гуд, ящитаю.
     
    _________________________
    Suicide likes this.
Loading...