¿Cuál es la diferencia entre Android y Linux?

Esta respuesta realmente se verá.

Supongo que está familiarizado con algunos términos básicos utilizados en informática. Así que, aquí vamos.

Android puede estar basado en Linux, pero no está basado en el tipo de sistema Linux que puede haber usado en su PC. No puede ejecutar aplicaciones de Android en distribuciones típicas de Linux y no puede ejecutar los programas de Linux con los que está familiarizado en Android.

Linux constituye la parte central de Android, pero Google no ha agregado todo el software y las bibliotecas típicas que encontrará en una distribución de Linux como Ubuntu. Esto hace toda la diferencia.

La gran diferencia aquí se reduce a lo que queremos decir con Linux. La gente usa el término “Linux” para significar muchas cosas diferentes. En su forma más básica, Linux significa el kernel de Linux. Un núcleo es la parte central de cualquier sistema operativo.

También nos referimos a las distribuciones de Linux simplemente como “Linux”. Sin embargo, los Linuxdistros no son solo núcleos de Linux. Contienen muchas otras piezas de software, como las utilidades de shell GNU, el servidor gráfico Xorg, el escritorio GNOME, el navegador web Firefox, etc. Es por eso que algunas personas piensan que el término GNU / Linux debería usarse para “distribuciones de Linux” como Ubuntu, Mint, Debian, Fedora, Arch, openSUSE y otras.

Android usa el kernel de Linux bajo el capó. Debido a que Linux es de código abierto, los desarrolladores de Android de Google podrían modificar el kernel de Linux para satisfacer sus necesidades. Linux les da a los desarrolladores de Android un kernel del sistema operativo precompilado y ya mantenido para comenzar para que no tengan que escribir su propio kernel. Esta es la forma en que se construyen muchos dispositivos diferentes: por ejemplo, la PlayStation 4 usa el kernel BSD gratuito de código abierto, mientras que Xbox One usa el kernel de Windows NT que se encuentra en las versiones modernas de Windows.

Incluso verá la versión del kernel de Linux ejecutándose en su dispositivo en Acerca del teléfono o Acerca de la tableta en la Configuración de Android.

Esta es una sección acerca de mi teléfono. La nota Xiaomi Redmi 3.

Existe cierto debate sobre si Android califica como una “distribución de Linux”. Utiliza el kernel de Linux y otro software, pero no incluye gran parte del software que normalmente incluyen las distribuciones de Linux.

Cuando inicia un dispositivo Android, el kernel de Linux se carga como lo haría en una distribución de Linux. Sin embargo, gran parte del otro software es diferente. Android no incluye la Biblioteca GNU C (glibc) utilizada en las distribuciones estándar de Linux, ni incluye todas las bibliotecas GNU que encontraría en una distribución típica de Linux. Tampoco incluye un servidor X como Xorg, por lo que no puede ejecutar aplicaciones gráficas estándar de Linux.

En lugar de ejecutar aplicaciones típicas de Linux, Android usa la máquina virtual Dalvik para ejecutar esencialmente aplicaciones escritas en Java. Estas aplicaciones están dirigidas a dispositivos Android y las interfaces de programación de aplicaciones (API) que proporciona Android en lugar de estar dirigidas a Linux en general.

Android no incluye un servidor gráfico X o todas las bibliotecas GNU estándar, no puede simplemente ejecutar aplicaciones Linux en Android. Tienes que ejecutar aplicaciones escritas específicamente para Android.

Android tiene un shell como el que encontrarás en Linux. No hay forma de acceder a él de manera inmediata, pero puede instalar una aplicación como Android Terminal Emulator para obtener acceso a este entorno de terminal.

Por defecto, no hay mucho que puedas hacer aquí. El terminal aún se ejecutará en un entorno restringido, por lo que no puede obtener un shell raíz completo sin rootear su dispositivo Android. Muchos comandos estándar que puede necesitar no están disponibles; es por eso que las personas que rootean su dispositivo generalmente instalan la aplicación BusyBox, que instala muchas utilidades de línea de comandos. Estas utilidades son utilizadas por las aplicaciones para hacer cosas con su acceso raíz.

Linux no incluye la máquina virtual Dalvik, por lo que no puede ejecutar aplicaciones de Android. La máquina virtual Dalvik y todo el otro software de Android no pueden simplemente dejarse caer en una máquina Linux de escritorio; por ejemplo, tendría que hacer más trabajo para hacer que las aplicaciones de Android salgan a una ventana en un escritorio estándar a través de Xorg. Teóricamente, con suficiente trabajo, los desarrolladores podrían hacer que Dalvik se ejecute en Linux de escritorio para que los usuarios de Linux de escritorio puedan ejecutar aplicaciones de Android en sus escritorios. El ahora inactivo producto de Ubuntu para Android intentó hacer algo como esto, integrando Ubuntu y Android en un teléfono y permitiendo que esas aplicaciones de Android se ejecuten en el escritorio de Ubuntu.

BlueStacks y otros emuladores de aplicaciones de Android intentan hacer esto para Windows y Mac. Ejecutan Android en hardware virtual en una máquina virtual, lo que les permite ejecutar aplicaciones de Android, con una penalización de rendimiento, en su escritorio. Sin embargo, estas soluciones no han demostrado ser muy populares.

El sistema operativo Chrome de Google también se basa en Linux. Al igual que Android, Chrome OS no proporciona un sistema X Window estándar, por lo que las aplicaciones Linux estándar no pueden ejecutarse en Chrome OS. A diferencia de Android, Chrome OS está más cerca de las distribuciones de Linux de escritorio estándar, por lo que puede usar el modo de desarrollador para instalar el software de escritorio de Linux que falta.

No entiendo lo que quieres decir con Linux, el kernel o el sistema operativo (Linux Standard Base o LSB). Entonces asumiré ambos.

Android usa el Kernel de Linux modificado por Google.

Android no cumple con el LSB. No es una distribución tradicional de Linux como Debian Fedora, etc.

Fuente: ¿Es Android compatible con la base estándar de Linux?

La LSB, POSIX y la especificación UNIX única implican significativamente a los usuarios. Simplemente usando un kernel que también se usa como base de un sistema operativo “similar a Unix”, “en su mayoría compatible con POSIX” – GNU / Linux – no es suficiente para hacer Android también. Sin embargo, existen algunos elementos * nix-ish, como el shell, que es una implementación de shell Korn “en gran medida compatible” (en versiones anteriores a 4.0, en realidad puede ser el shell ash, que se utiliza en sistemas GNU / Linux integrados a través de busybox) y varias utilidades de línea de comandos POSIX-y para acompañarlo. Sin embargo, no existe el conjunto completo que la mayoría de las personas reconocería del mundo “similar a Unix”.

¿Está lo suficientemente cerca como para cumplir con la base estándar de Linux?

Una pieza central del LSB es la jerarquía del sistema de archivos, y Android no usa esto. LSB realmente agrega cosas a POSIX, y dado que Android no es casi eso, está aún más lejos de ser compatible con LSB. Esto, explícitamente, no es un objetivo para la plataforma, creo. El kernel de Linux se usó para sus propias propiedades, y no porque pudiera usarse como el núcleo de un sistema POSIX; GNU lo retomó originalmente por ambas razones.
Para aclarar esta distinción con respecto a una especificación orientada al espacio del usuario, como POSIX, Unix o las extensiones LSB, considere algunas de las cosas que POSIX tiene que decir sobre la biblioteca C nativa. Aquí es donde nos encontramos con cosas específicas de la plataforma, como las redes y la mayoría de las llamadas al sistema, como read () – read () no es, de hecho, el estándar C. Es una cosa de Unix, históricamente. POSIX los define como interfaces, pero se implementan en la biblioteca C de userland , luego todo lo demás utiliza esta biblioteca como base. La biblioteca C en GNU / Linux es la Biblioteca GNU C, un trabajo completamente separado del núcleo. Aunque estas dos cosas funcionan juntas como el núcleo del sistema operativo, ninguno de los estándares en discusión aquí dice nada acerca de cómo debe suceder esto, por lo que, en efecto, no dicen nada sobre lo que el núcleo es o debe hacer . Dicen muchas cosas sobre qué es y debe hacer la biblioteca C, es decir, si escribió una biblioteca C para trabajar con un núcleo dado, cualquier núcleo , independientemente de su forma o características, y esa biblioteca proporciona una API de usuario que satisface la especificación POSIX, tiene un sistema operativo compatible con POSIX.
Creo que LSB tiene algunas cosas que decir sobre / proc, que linux proporciona como interfaz de kernel. Sin embargo, el hecho de que esto (por ejemplo) sea proporcionado directamente por el núcleo no significa que el LSB dice que tiene que serlo, solo dice que debería / podría estar disponible, y si es así, cuál es la naturaleza de la información.

Mucha gente considera que ambos son sistemas operativos. El sistema operativo Linux es para escritorio y servidor, mientras que el sistema operativo Android es para móviles. ¿Es eso completamente correcto?

El sistema operativo Linux, precisamente, el núcleo de Linux es el sistema operativo más popular, mientras que Android es un marco construido sobre el núcleo de Linux. Por lo tanto, todos los dispositivos Android también ejecutan el kernel de Linux, pero no todos los dispositivos Linux tienen Android. Podemos pensar en el kernel de Linux como la base sobre la que se basa Android. Además, Android no se limita solo a los móviles. ¡Android se ejecuta en otros dispositivos como TV, cámara, reloj e incluso autos!

referencias: ¿Cuál es la diferencia entre Linux y Android? – GeeksforGeeks