Специальные цены!
 
 

Инициатива по передаче в основное ядро Linux специфичных для Android изменений

Инициатива по передаче в основное ядро Linux специфичных для Android изменений

В настоящее время в устройствах с платформой Android применяются отдельные модифицированные ветки ядра, на поддержание которых тратятся большие ресурсы. Разработчики из компании Google возобновили попытки переноса в основное ядро Linux изменений, развиваемых в варианте ядра для платформы Android. Первые попытки передачи в основное ядро всех специфичных для Android исправлений были предприняты в 2010 и 2011 годах, но привели лишь к частичной передаче кода.

В свою очередь разработчики Android смогут существенно упростить сопровождение ядра для Android, избавившись от трудоёмкого процесса переноса исправлений ошибок в старые Android-ядра и портирования изменений при подготовке очередной новой ветки ядра для Android. Разработка всех развиваемых для Android дополнений в основном ядре даст возможность пользователям и авторам прошивок применять свежие выпуски обычного ядра Linux, не ограничиваясь ядрами, предлагаемыми Google.

Отличия ядер для Android включают как необходимые для платформы изменения (MTP/PTP, параноидальный режим для сетевой подсистемы, интерактивный cpufreq governor, EAS (Energy Aware Scheduling)), так и изменения для поддержки оборудования, продвигаемые поставщиками устройств (sdcardfs, специфичные драйверы). Последнее стабильное ядро для Android базируется на выпуске 4.14, но сохраняется поддержка веток 3.18, 4.4 и 4.9, которые продолжают применяться в актуальных прошивках на основе Android 8.

Команда сопровождающих ядро для Android теперь пытается вначале продвинуть изменения в основное ядро перед публикацией, а также ведёт работу по решению проблем и уязвимостей непосредственно в upstream. Судя по прозвучавшему на конференции Linux Plumbers Conference 2018 докладу, в последнее время процесс синхронизации с основным ядром существенно продвинулся вперёд и возможность использования обычного ядра Linux вместе с Android, хоть ещё не достигнута, но уже достаточно близка к воплощению.

Из целей на будущее отмечается перенос модулей ashmem и ion из дерева staging, улучшение использования в Android структуры «Device Tree», решение проблемы с наследованием приоритетов в binder и перенос кода EAS (Energy Aware Scheduling) и SDCardFS в основное ядро. В текущем виде число специфичных изменений в Android Common Kernel, необходимых для загрузки платформы Android, сокращено до 30 патчей, охватывающих 6500 строк кода (ранее размер изменений достигал нескольких миллионов строк).

Для исправления ситуации Google развивает систему Treble, позволяющую производителям создавать универсальные компоненты поддержки оборудования, не привязанные к конкретным версиям Android и используемым выпускам ядра Linux. Несмотря на то, что Google регулярно выпускает обновления своих Android-ядер (Android Common Kernel), часто поставщики не спешат поставлять эти обновления или вообще используют одно ядро на протяжении всего жизненного цикла устройства. Для стимулирования доставки обновлений Google намерен применить административный ресурс на уровне отдельного требования в OEM-соглашении. Treble даёт возможность использовать в качестве основы уже готовые обновления от Google, интегрируя в них специфичные для конкретного устройства компоненты.

Компоненты для поддержки оборудования должны будут поставляться поставщиками в только в виде дополнительных модулей ядра, без возможности использования патчей для изменения основного ядра (например, поставщик не сможет изменить логику работы штатного планировщика процессов). В конечном счёте, Google планирует предложить поставщикам базовое ядро на основе свежей кодовой базы основного ядра Linux. Все изменения, затрагивающие основное ядро должны будут продвигаться в upstream. В модулях обязательно должна будет обеспечиваться совместимость с основным ядром на уровне пространства имён символов ядра.

Утверждается, что ядра для устройств Pixel 2 и Pixel 3 уже успешно собираются с использованием Clang. Дополнительно можно отметить другую инициативу Google, связанную с обеспечением сборки ядра Linux с использованием компилятора Clang. Варианты ядра, собираемые при помощи Clang, также развивают проекты Linaro и CrOS. Более того, ядро для Pixel 3 собирается с включением оптимизаций на этапе связывания (LTO) и механизма проверки целостности выполнения программы CFI (Control Flow Integrity).

Например, добавлена поддержка конструкции «asm goto», применения регистров rN для AArch64, режимов »-fno-delete-null-pointer-checks»,»-fcall-used» и »-fcall-saved». Изменения, необходимые для сборки применяемых в Android ядер Linux, уже включены в Clang 7.0 и находящуюся в разработке ветку 8.0. Из достижений на уровне ядра стало избавление от использования в коде массивов переменной длины, реализуемых GCC-расширением VLAiS (Variable Length Arrays, возможность использования переменной в качестве размера при создании массива, например «void foo (int n){ int m[n];»). Подготовлены патчи для поддержи »__builtin_constant_p».

В свою очередь разработчики Android смогут существенно упростить сопровождение ядра для Android, избавившись от трудоёмкого процесса переноса исправлений ошибок в старые Android-ядра и портирования изменений при подготовке очередной новой ветки ядра для Android. Разработка всех развиваемых для Android дополнений в основном ядре даст возможность пользователям и авторам прошивок применять свежие выпуски обычного ядра Linux, не ограничиваясь ядрами, предлагаемыми Google.

В настоящее время в устройствах с платформой Android применяются отдельные модифицированные ветки ядра, на поддержание которых тратятся большие ресурсы. Разработчики из компании Google возобновили попытки переноса в основное ядро Linux изменений, развиваемых в варианте ядра для платформы Android. Первые попытки передачи в основное ядро всех специфичных для Android исправлений были предприняты в 2010 и 2011 годах, но привели лишь к частичной передаче кода.

Команда сопровождающих ядро для Android теперь пытается вначале продвинуть изменения в основное ядро перед публикацией, а также ведёт работу по решению проблем и уязвимостей непосредственно в upstream. Судя по прозвучавшему на конференции Linux Plumbers Conference 2018 докладу, в последнее время процесс синхронизации с основным ядром существенно продвинулся вперёд и возможность использования обычного ядра Linux вместе с Android, хоть ещё не достигнута, но уже достаточно близка к воплощению.

Отличия ядер для Android включают как необходимые для платформы изменения (MTP/PTP, параноидальный режим для сетевой подсистемы, интерактивный cpufreq governor, EAS (Energy Aware Scheduling)), так и изменения для поддержки оборудования, продвигаемые поставщиками устройств (sdcardfs, специфичные драйверы). Последнее стабильное ядро для Android базируется на выпуске 4.14, но сохраняется поддержка веток 3.18, 4.4 и 4.9, которые продолжают применяться в актуальных прошивках на основе Android 8.

Для исправления ситуации Google развивает систему Treble, позволяющую производителям создавать универсальные компоненты поддержки оборудования, не привязанные к конкретным версиям Android и используемым выпускам ядра Linux. Несмотря на то, что Google регулярно выпускает обновления своих Android-ядер (Android Common Kernel), часто поставщики не спешат поставлять эти обновления или вообще используют одно ядро на протяжении всего жизненного цикла устройства. Для стимулирования доставки обновлений Google намерен применить административный ресурс на уровне отдельного требования в OEM-соглашении. Treble даёт возможность использовать в качестве основы уже готовые обновления от Google, интегрируя в них специфичные для конкретного устройства компоненты.

Из целей на будущее отмечается перенос модулей ashmem и ion из дерева staging, улучшение использования в Android структуры «Device Tree», решение проблемы с наследованием приоритетов в binder и перенос кода EAS (Energy Aware Scheduling) и SDCardFS в основное ядро. В текущем виде число специфичных изменений в Android Common Kernel, необходимых для загрузки платформы Android, сокращено до 30 патчей, охватывающих 6500 строк кода (ранее размер изменений достигал нескольких миллионов строк).

Утверждается, что ядра для устройств Pixel 2 и Pixel 3 уже успешно собираются с использованием Clang. Дополнительно можно отметить другую инициативу Google, связанную с обеспечением сборки ядра Linux с использованием компилятора Clang. Варианты ядра, собираемые при помощи Clang, также развивают проекты Linaro и CrOS. Более того, ядро для Pixel 3 собирается с включением оптимизаций на этапе связывания (LTO) и механизма проверки целостности выполнения программы CFI (Control Flow Integrity).

Компоненты для поддержки оборудования должны будут поставляться поставщиками в только в виде дополнительных модулей ядра, без возможности использования патчей для изменения основного ядра (например, поставщик не сможет изменить логику работы штатного планировщика процессов). В конечном счёте, Google планирует предложить поставщикам базовое ядро на основе свежей кодовой базы основного ядра Linux. Все изменения, затрагивающие основное ядро должны будут продвигаться в upstream. В модулях обязательно должна будет обеспечиваться совместимость с основным ядром на уровне пространства имён символов ядра.

Например, добавлена поддержка конструкции «asm goto», применения регистров rN для AArch64, режимов »-fno-delete-null-pointer-checks»,»-fcall-used» и »-fcall-saved». Изменения, необходимые для сборки применяемых в Android ядер Linux, уже включены в Clang 7.0 и находящуюся в разработке ветку 8.0. Из достижений на уровне ядра стало избавление от использования в коде массивов переменной длины, реализуемых GCC-расширением VLAiS (Variable Length Arrays, возможность использования переменной в качестве размера при создании массива, например «void foo (int n){ int m[n];»). Подготовлены патчи для поддержи »__builtin_constant_p».


Дата публикации: 22.11.2018


Ещё новости


  27.08.2022  В океане обнаружены колоссальные залежи сахара, о существовании которых не знали даже эксперты

Это означает, что концентрация сахара на морском дне примерно в 80 раз выше, чем в обычной почве. Сахар поступает в виде сахарозы (основного ингредиента сахара, используемого на кухне), и высвобождает...

  27.08.2022  Российское приложение определит депрессию у человека по его манере говорить

Главное нововведение — это алгоритм на основе нейросетей, которые сможет анализировать речь человека и предупреждать, если ему необходимо обратиться к врачу. Отечественные исследователи из Сеченовског...

  09.11.2022  Перспективный «Москвич» уже появился в Казахстане? В соседней стране начали продавать JAC JS4 – ожидается, что его производство наладят в Москве на бывшем заводе Renault

Еще летом появились слухи, что эту же модель будут производить на московском заводе «Москвич», а недавняя неразбериха с российским анонсом JS4 лишь укрепила во мнении, что автомобиль действительно буд...

  26.08.2022  20 000 потоковых процессоров, 36 ГБ памяти и шина разрядностью 512 бит. AMD работает над видеокартой-монстром, но она выйдет нескоро

Информатор приписывает ей компоновку с 13 (!) чиплетами: четырьмя модулями GCD (Graphics Compute Dies) и девятью MCD (Memory Complex Dies). Инсайдер принес очень интересные новости относительно перспе...

  27.08.2022  Власти Италии обратились к экстрасенсу, чтобы тот спас всех от засухи

Такое решение вызвано серьезными последствиями аномальной жары лета 2022 года: два из пяти источников воды коммуны пересохли.  В северном регионе Италии, коммуна Баярдо, Лигурия, местные власти обрати...



Все новости




Корзина
Товаров: 0
Сумма: $0
Курс (нал.) 1$ = 62.00 руб.
Курс (безнал) 1$ = 65.00 руб.

НОВОСТИ

09.11.2022
Перспективный «Москвич» уже появился в Казахстане? В соседней стране начали продавать JAC JS4 – ожидается, что его производство наладят в Москве на бывшем заводе Renault

30.09.2022
В следующем году Micron Technology резко сократит капитальные затраты

27.08.2022
В Китае представлен перспективный «Москвич»? На автосалоне в Чэнду дебютировал 7-местный кроссовер Sehol X8 Plus за 14 500 долларов

27.08.2022
В океане обнаружены колоссальные залежи сахара, о существовании которых не знали даже эксперты

27.08.2022
Власти Италии обратились к экстрасенсу, чтобы тот спас всех от засухи

27.08.2022
Российское приложение определит депрессию у человека по его манере говорить

27.08.2022
Это точно не убийца флагманов. OnePlus представила наушники... за 10 долларов

27.08.2022
Видео: геймплейный трейлер стильного экшена Gungrave G.O.R.E. с безжалостным антигероем

26.08.2022
20 000 потоковых процессоров, 36 ГБ памяти и шина разрядностью 512 бит. AMD работает над видеокартой-монстром, но она выйдет нескоро

26.08.2022
Флагман Xiaomi возвращается к истокам. Xiaomi 13 получит плоский экран впервые с момента выпуска Xiaomi Mi 9

Все новости

ОБЗОРЫ

14.03.2024
Сервер времени

07.03.2024
Восстановление операционной системы Windows без лишних проблем

07.03.2024
Эффективность и доступность при чистке компьютера

07.03.2024
Эффективное решение для проблемных ситуаций

02.03.2024
Как заменить клавишы на Macbook?

Все обзоры
 
   
   
ASUS A7U

от $1065 
RoverBook Discovery B214

от $980 
RoverBook Voyager B514

от $835 
LCD PC WindRover LP2001 AT7

от $0 
Периферия Руль с педалями T...

от $85 
 
      © 2003-2024, Ноутбуки на Буденовском
Тел. (495) (499) 115-03-45
E-Mail: