¿Qué se entiende por un sistema operativo basado en Linux? ¿Cómo es que el sistema operativo Android está basado en Linux?

Los términos son ambiguos para empezar.

Un SO basado en Linux adopta una visión centrada en el kernel de la plataforma, que en su mayor parte es razonable, pero argumentando que hay SO basados en XOrg o SO basados en Wayland (adoptando una visión centrada en X-Windows).

Android es la plataforma, resulta que tiene Linux como kernel. No hay un sistema operativo Android.

Así que para responder directamente a tu pregunta, Linux es sólo un kernel. Es la abstracción en la parte superior del hardware que presenta una API de software relativamente estándar para el software superior.

La mayoría de las API de Linux están ahí, por lo que en consecuencia se puede tomar un dispositivo Android y desplegar aplicaciones de Linux en la parte superior. Esto hace que Android sea muy familiar para los desarrolladores de Linux que pueden ejecutar herramientas como strace.

Las verdaderas APIs de Android centradas en el usuario no son las APIs de nivel de llamada al sistema de Linux, son los marcos de aplicación, que son efectivamente Java.

main-qimg-77493a00beabdf02ab27488dd46bfab1.webp

Así que las aplicaciones están fuertemente abstraídas del núcleo de Linux. La mayoría de los entornos «Linux» operan en la primera capa azul y amarilla. es decir: Hablan de forma nativa con el kernel para algunas operaciones y de forma nativa con varias librerías.

Podría decirse que Android podría ser portado a Gnu Hurd o BSD con la misma facilidad que Linux. Y para los primeros días de Android, se podría argumentar que las partes críticas de Android’s kernel de Linux era realmente un fork (por ejemplo wakelocks).