¿Cuáles son las modificaciones realizadas en el kernel de Linux para convertirlo en un kernel de Android? Con esta pregunta me refiero a cuáles son las diferencias entre el kernel de Linux y el kernel de Android.
Creo que esta fuente de Android es una gran documentación para entenderlo.
Y aquí hay una lista de los cambios realizados desde el kernel de la línea principal para el kernel de Android 4.14.
Las características más grandes incluyen:
Diferencias de LTS
En comparación con LTS (4.14.0), el kernel común de Android tiene 355 cambios, 32266 inserciones y 1546 eliminaciones (hasta febrero de 2018).
Las diferencias cambian de una versión a otra (tanto de Linux como de Android), y el kernel exacto es diferente para cada dispositivo. Un kernel para Android es un kernel de Linux convencional, con controladores adicionales para el dispositivo específico y otras funciones adicionales, como administración de energía mejorada o compatibilidad con gráficos más rápidos.
Muchas funciones en el kernel de Android se agregan más tarde a Linux ascendente después de que la comunidad de código abierto las haya aceptado (y tal vez modificado), pero otras nunca se actualizan, ya sea porque no son aceptables para los desarrolladores del kernel de Linux o porque solo se aplica a Android o a hardware específico.
Además de las diferencias específicas del dispositivo y el bloqueo de activación que mencionan Dan Hulme y Lie Ryan, Android eliminó las características de System V IPC (colas de mensajes, segmentos de memoria compartida, semáforos) que podrían provocar fugas de recursos ( http://www.kandroid.org/ndk /docs/system/libc/SYSV-IPC.html ). Esto probablemente sea solo una cuestión de configurar la compilación del kernel. Además, el Android IPC de elección, llamado Binder, tiene cierto soporte en el kernel que, según mi conocimiento, no está incluido en los kernels estándar de Linux.
gathrawn