Поиск по сайту:

Google добавит поддержку основного ядра Linux в Android


Текущая экосистема Android загрязнена сотнями различных версий Android, каждая из которых использует разные варианты ядра Linux. Каждая версия предназначена для отдельного телефона и его конфигураций. Google работает над решением этой проблемы, добавив основное ядро Linux в Android.

Как ядро Linux в настоящее время обрабатывается в Android

Прежде чем попасть к вам, ядро Linux на вашем мобильном телефоне проходит три основных этапа.

Во-первых, Google берет версию ядра Linux LTS (долгосрочная поддержка) и добавляет весь код, специфичный для Android. Это становится «Общим ядром Android».

Затем Google отправляет этот код компании, которая создает систему на кристалле (SoC), на которой работает ваш телефон. Обычно это Qualcomm.

Как только производитель SoC завершает добавление кода для поддержки ЦП и других чипов, ядро передается фактическому производителю устройства, например Samsung или Motorola. Затем производитель устройства добавляет код для поддержки остальной части телефона, например дисплея и камеры.

Каждый из этих шагов занимает некоторое время и приводит к тому, что ядро не будет работать ни с одним другим устройством. Это также означает, что ядро очень старое, обычно около двух лет. Например, Google Pixel 4, выпущенный в прошлом месяце, имеет ядро от ноября 2017 года, которое никогда не будет обновляться.

Google пообещал создать исправления безопасности для старых устройств, а это означает, что им приходится следить за огромной мешаниной старого кода.

Будущее

В прошлом году Google объявила о планах исправить этот беспорядок. В этом году они рассказали, какого прогресса они достигли на конференции Linux Plumbers Conference 2019.

«Мы знаем, что нужно для запуска Android, но не обязательно на каком-либо конкретном оборудовании. Поэтому наша цель — выяснить все это, а затем продолжить и попытаться быть как можно ближе к основной линии».

Сандип Патил, руководитель группы ядра Android

Они продемонстрировали Xiaomi Poco F1 под управлением Android с соответствующим ядром Linux. Однако некоторые вещи, похоже, не работали, например, процент заряда батареи застрял на отметке 0%.

Итак, как Google планирует заставить это работать? Взяв страницу из их сборника правил Project Treble. До Project Treble низкоуровневый код, который взаимодействовал с устройством и самим Android, представлял собой одну большую путаницу кода. Project Treble разделил эти два процесса и сделал их модульными, чтобы обновления Android можно было выпускать быстрее, а низкоуровневый код мог оставаться неизменным между обновлениями.

Google хочет привнести в ядро такую же модульность. Их план «предполагает стабилизацию встроенного в ядро Linux ABI и создание стабильного интерфейса для записи данных поставщиками ядра Linux и оборудования. Google хочет отделить ядро Linux от аппаратной поддержки».

Это означает, что Google будет поставлять ядро, а драйверы оборудования будут загружаться как модули ядра. На данный момент это всего лишь предложение. Остается еще немало технических проблем, которые предстоит решить. так что это произойдет не скоро.

Оппозиция со стороны открытого исходного кода

Сообщество открытого исходного кода не будет в восторге от идеи размещения проприетарного кода в ядре. В рекомендациях по ядру Linux указано, что драйверы должны иметь лицензию GPL для включения в ядро. Они также отмечают, что если изменение в драйвере приведет к ошибке, ее устранит тот, кто создал ошибку. В долгосрочной перспективе это означает меньше работы для производителей устройств.

Заключительные мысли о включении основного ядра в Andorid

Пока это только предложение. Есть большая вероятность, что Google начнет работать над проектом только для того, чтобы отказаться от него, как только они поймут, сколько работы это займет. Просто взгляните на то, от скольких проектов Google уже отказался.

Android Police отметила, что Google работает над своей операционной системой Fuchsia, цель которой, похоже, однажды заменит Android.

Итак, вопрос в том, какую монументальную задачу Google попытается выполнить: заставить Android работать с основным ядром Linux или завершить работу над унифицированной заменой Android? Только время может ответить на этот вопрос.

Что вы думаете по этой теме? Пожалуйста, дайте нам знать в комментариях ниже.

Если эта статья показалась вам интересной, поделитесь ею в социальных сетях, Hacker News или Reddit.

Статьи по данной тематике: