¿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 de Android.
Respuestas
¿Demasiados anuncios?Las diferencias cambian de una versión a otra (tanto de Linux como de Android), y el núcleo exacto es diferente para cada dispositivo. Un kernel para Android es un kernel Linux convencional, con controladores adicionales para el dispositivo específico, y otras funcionalidades adicionales, como una gestión de energía mejorada o un soporte gráfico más rápido.
Muchas de las características del núcleo de Android se añaden posteriormente a la corriente principal de Linux después de que la comunidad de código abierto las haya aceptado (y quizás modificado), pero otras nunca se incorporan a la corriente principal, bien porque no son aceptables para los desarrolladores del núcleo de Linux, bien porque sólo son aplicables a Android o a un hardware específico.
Además de las diferencias específicas de los dispositivos y el bloqueo de wak que mencionan Dan Hulme y Lie Ryan, Android eliminó las características de IPC del Sistema V (colas de mensajes, segmentos de memoria compartida, semáforos) que podían dar lugar a fugas de recursos ( http://www.kandroid.org/ndk/docs/system/libc/SYSV-IPC.html ). Esto probablemente es sólo una cuestión de configuración de la construcción del kernel. También el IPC de Android, llamado Binder, tiene algún soporte en el kernel que, hasta donde yo sé, no está incluido en los kernels estándar de Linux.