¿Por qué Google eligió Android para su plataforma móvil? ¿Por qué no se eligió ninguna otra distribución de Linux famosa que estuviera presente en ese momento?

Android fue desarrollado inicialmente por Android, Inc., como un sistema operativo avanzado para cámaras digitales, y luego se convirtió en un sistema operativo para teléfonos inteligentes. Google compró Android, Inc., en 2005 y adquirió el sistema operativo Android para teléfonos inteligentes. Android estaba destinado a funcionar en teléfonos inteligentes con memoria y potencia de procesamiento limitadas (principalmente dispositivos basados ​​en ARM) en comparación con las computadoras de escritorio donde normalmente se ejecutarán las distribuciones de Linux.

Android ejecuta un kernel de Linux personalizado con muchas características adicionales para administrar el teléfono inteligente con batería de manera eficiente. Estos cambios no formaron parte del núcleo principal de Linux hasta hace poco. Las principales características agregadas son:

  • Aglutinante
    • Binder es un mecanismo de comunicación entre procesos específico de Android y un sistema de llamada a procedimiento remoto similar a DBus
  • ashmem
    • ashmem – memoria compartida de Android
  • pmem
    • PMEM: asignador de memoria de proceso
  • registrador
    • registrador – instalación de registro del sistema
  • wakelocks
    • wakelock – utilizado para la administración de energía
  • manejo de oom
    • El controlador OOM simplemente mata los procesos a medida que la memoria disponible se vuelve baja

Android utiliza la pantalla basada en Frame Buffer, que es más adecuada para dispositivos integrados que las pantallas basadas en X-server que utilizan distribuciones de Linux.

Las aplicaciones de Android se ejecutan en una máquina virtual Java especial (Dalvik o ART)

Como podemos ver, los requisitos para un SO de teléfono inteligente son más específicos y difíciles de implementar usando una distribución general de Linux. Esta es una práctica general en los sistemas embebidos de Linux donde el kernel de Linux será portado y modificado de acuerdo con los requisitos y las aplicaciones se construirán además de eso.