На прошедшей конференции Linux Plumbers 2019 компания Google
После готовности проекта поставщикам будет предложено поставлять базовое ядро на основе основного ядра Linux. Компоненты для поддержки оборудования будут поставляться поставщиками только в виде дополнительных модулей ядра, без наложения на ядро патчей. В модулях обязательно должна будет обеспечиваться совместимость с основным ядром на уровне пространства имён символов ядра. Все изменения, затрагивающие основное ядро, будут продвигаться в upstream. Для сохранения совместимости с проприетарными модулями в рамках LTS-веток предлагается поддерживать в стабильном виде API и ABI ядра, что позволит сохранить совместимость модулей с обновлениями для каждой общей ветки ядра.
За год в основное ядро Linux из редакции ядра для Android были перенесены такие возможности, как подсистема PSI (Pressure Stall Information) для анализа информации о времени ожидания получения различных ресурсов (CPU, память, ввод/вывод), псевдофайловая система BinderFS для механизма межпроцессного взаимодействия Binder и энергоэффективный планировщик задач EAS (Energy Aware Scheduling). В дальнейшем Android планируется перевести со специфичного планировщика SchedTune на разработанную в ARM новую подсистему UtilClamp, основанную на cgroups2 и штатных механизмах ядра.
Напомним, что до сих пор ядро для платформы Android проходило несколько стадий подготовки:
- На базе основных LTS-ядер (3.18, 4.4, 4.9 и 4.14) создавалось ответвление «Android Common Kernel», в которое переносились специфичные для Android патчи (ранее размер изменений достигал нескольких миллионов строк, но последнее время изменения были сокращены до нескольких тысяч строк кода).
- На основе «Android Common Kernel» производители чипов, такие как Qualcomm, формировали «SoC Kernel», включающие дополнения для поддержки оборудования.
- На основе «SoC Kernel» производители устройств создавали «Device Kernel», включающие изменения, связанные с поддержкой дополнительного оборудования, экранов, камер, звуковых систем и т.п.
По сути, для каждого устройства формировалось своё собственное ядро, которое не могло использоваться на других устройствах. Подобная схема существенно усложняет доведение обновлений с устранением уязвимостей и переход на новые ветки ядра. Например, вышедший в октябре новейший смартфон Pixel 4 поставляется с ядром Linux 4.14, выпущенным два года назад. Частично, Google попытался упростить сопровождение продвигая систему
Источник: opennet.ru