Cuál es la diferencia entre Android y Linux?


Esta respuesta va a ser muy larga.

Asumo que estás 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 puedes haber usado en tu PC. No puedes ejecutar aplicaciones de Android en las típicas distribuciones de Linux y no puedes ejecutar los programas de Linux con los que estás familiarizado en Android.

Linux constituye la parte central de Android, pero Google no ha añadido todo el software y las bibliotecas típicas que encontrarías en una distribución de Linux como Ubuntu. Esto marca la diferencia.


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

También nos referimos a las distribuciones de Linux como simplemente "Linux". Sin embargo, los Linuxdistros no son sólo núcleos de Linux. Contienen muchas otras piezas de software, como las utilidades del shell de GNU, el servidor gráfico Xorg, el escritorio GNOME, el navegador web Firefox, etc. Por eso hay quien piensa que el término GNU/Linux debería usarse para las "distribuciones de Linux" como Ubuntu, Mint, Debian, Fedora, Arch, openSUSE y otras.

Android utiliza el núcleo de Linux bajo el capó. Como Linux es de código abierto, los desarrolladores de Android de Google podrían modificar el kernel de Linux para adaptarlo a sus necesidades. Linux ofrece a los desarrolladores de Android un núcleo del sistema operativo pre-construido y ya mantenido para empezar, por lo que no tienen que escribir su propio núcleo. Esta es la forma en que se construyen muchos dispositivos diferentes - por ejemplo, la PlayStation 4 utiliza el kernel BSD libre de código abierto, mientras que la Xbox One utiliza el kernel de Windows NT que se encuentra en las versiones modernas de Windows.

Incluso verás la versión del kernel de Linux que se ejecuta en tu dispositivo en Acerca del teléfono o Acerca de la tableta en los Ajustes de Android.

main-qimg-3b129fdc000e83690d2c3a4e52c1bda0.webp

Esta es una la sección Acerca de mi teléfono. El Xiaomi Redmi note 3.

Hay 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 arrancas un dispositivo Android, el kernel de Linux se carga igual que lo haría en una distribución de Linux. Sin embargo, gran parte del resto del software es diferente. Android no incluye la biblioteca GNU C (glibc) que se utiliza en las distribuciones estándar de Linux, ni tampoco todas las bibliotecas GNU que se encuentran 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 utiliza la máquina virtual Dalvik para ejecutar esencialmente aplicaciones escritas en Java. Estas aplicaciones están dirigidas a los dispositivos Android y a 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 ni todas las bibliotecas GNU estándar, no se pueden ejecutar simplemente aplicaciones Linux en Android. Tienes que ejecutar aplicaciones escritas específicamente para Android.

Android sí tiene un shell como el que encontrarás en Linux. No hay manera de acceder a ella fuera de la caja, pero se 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 se ejecutará en un entorno restringido, por lo que no puedes obtener un shell de root completo sin rootear tu dispositivo Android. Muchos comandos estándar que podrías necesitar no están disponibles - es por eso que las personas que hacen root a 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 root.

Linux no incluye la máquina virtual Dalvik, por lo que no puede ejecutar aplicaciones Android. La máquina virtual Dalvik y todo el resto del software de Android no puede simplemente ser colocado en una máquina Linux de escritorio - usted 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, por ejemplo. En teoría, con suficiente trabajo, los desarrolladores podrían hacer que Dalvik se ejecute en el escritorio de Linux para que los usuarios de Linux de escritorio puedan ejecutar aplicaciones de Android en sus escritorios. El producto Ubuntu for Android, ahora inactivo, intentó hacer algo así, integrando Ubuntu y Android en un teléfono y permitiendo que esas aplicaciones de Android se ejecutaran en el escritorio de Ubuntu.

BlueStacks y otros emuladores de aplicaciones de Android intentan hacer esto para Windows y Mac. Ejecutan Android en un 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 OS de Google también está basado en Linux. Al igual que Android, Chrome OS no ofrece un sistema de ventanas X estándar, por lo que las aplicaciones estándar de Linux 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 se puede utilizar el modo de desarrollador para instalar el software de escritorio de Linux que falta.

Referencias: howtogeek