Различия меняются от версии к версии (как для Linux, так и для Android), и точное ядро отличается для каждого устройства. Ядро для Android - это основное ядро Linux с дополнительными драйверами для конкретного устройства и другими дополнительными функциями, такими как улучшенное управление питанием или более быстрая поддержка графики.
Многие функции в ядре Android позже добавляются в исходный Linux после того, как сообщество open-source приняло (и, возможно, изменило) их, но другие никогда не обновляются, либо потому, что они неприемлемы для разработчиков ядра Linux, либо потому, что они " применимо только к Android или конкретному оборудованию.
Большинство драйверов для конкретного оборудования Android было принято в основное ядро; но некоторые функции, такие как wake-блокировка, которая некоторое время назад вызвала огромную полемику, остаются проблематичными, потому что основной разработчик и разработчик ядра Android не согласны, является ли это хорошей идеей.
Ложь Райан
«Ядро для Android - это основное ядро Linux с дополнительными драйверами для конкретного устройства и другими дополнительными функциями, такими как улучшенное управление питанием или более быстрая поддержка графики», так что это в основном драйверы? Исходный код не изменился?
OCs Guerlando
@GuerlandoOCs Я не уверен, что вы думаете о драйверах, если не об изменении исходного кода, но, тем не менее, упомянутая мною «другая дополнительная функциональность» довольно велика. Есть много изменений исходного кода.
Дэн Халм
@DanHulme - это патчи для изменения исходного кода или просто код, измененный вручную? Как я могу видеть вещи, которые изменились? Я читал, что вы можете исправить ваше ядро Linux, чтобы оно было совместимо с Android, но где эти патчи, чтобы я мог их прочитать?
OCs Guerlando
5
Помимо особых различий между устройствами и блокировки пробуждения, о которых упоминают Дэн Халм и Ли Райан, Android удалил функции System V IPC (очереди сообщений, сегменты общей памяти, семафоры), которые могли привести к утечке ресурсов ( http://www.kandroid.org/ndk). /docs/system/libc/SYSV-IPC.html ). Вероятно, это всего лишь вопрос настройки сборки ядра. Кроме того, выбранный Android IPC, называемый Binder, имеет некоторую поддержку в ядре, которая, насколько мне известно, не включена в стандартные ядра Linux.
Ответы:
Различия меняются от версии к версии (как для Linux, так и для Android), и точное ядро отличается для каждого устройства. Ядро для Android - это основное ядро Linux с дополнительными драйверами для конкретного устройства и другими дополнительными функциями, такими как улучшенное управление питанием или более быстрая поддержка графики.
Многие функции в ядре Android позже добавляются в исходный Linux после того, как сообщество open-source приняло (и, возможно, изменило) их, но другие никогда не обновляются, либо потому, что они неприемлемы для разработчиков ядра Linux, либо потому, что они " применимо только к Android или конкретному оборудованию.
источник
Помимо особых различий между устройствами и блокировки пробуждения, о которых упоминают Дэн Халм и Ли Райан, Android удалил функции System V IPC (очереди сообщений, сегменты общей памяти, семафоры), которые могли привести к утечке ресурсов ( http://www.kandroid.org/ndk). /docs/system/libc/SYSV-IPC.html ). Вероятно, это всего лишь вопрос настройки сборки ядра. Кроме того, выбранный Android IPC, называемый Binder, имеет некоторую поддержку в ядре, которая, насколько мне известно, не включена в стандартные ядра Linux.
источник
Я думаю, что этот Android Source - отличная документация для понимания.
А вот список изменений, сделанных в основном ядре для ядра Android 4.14.
Самые большие функции включают в себя:
Отличия от LTS
По сравнению с LTS (4.14.0) общее ядро Android имеет 355 изменений, 32266 вставок и 1546 удалений (по состоянию на февраль 2018 года).
источник