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.
- ¿Qué tan bueno es Google Firebase para desarrollar aplicaciones iOS y Android?
- Expatriate Life in China: ¿Hay alguna aplicación de Android o iPhone para traducir automáticamente los mensajes SMS de chino a inglés que recibo?
- ¿Cuál es la aplicación de Android más insegura pero popular que se usa ahora?
- Cómo manejar todos los datos del usuario y crear feeds de usuarios para crear una aplicación de red social que sea un clon de Android e Instagram
- Cómo crear bibliotecas personalizadas en Android y publicarlo
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.