Página principal » cómo » Android se basa en Linux, pero ¿qué significa eso?

    Android se basa en Linux, pero ¿qué significa eso?

    Android puede estar basado en Linux, pero no en el tipo de sistema Linux que haya usado en su PC. No puede ejecutar aplicaciones de Android en distribuciones de Linux típicas 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ía en una distribución de Linux como Ubuntu. Esto hace toda la diferencia..

    “Linux” contra el kernel de Linux

    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 kernel es la parte central de cualquier sistema operativo..

    También nos referimos a las distribuciones de Linux como simplemente "Linux". Sin embargo, las distribuciones de Linux no son solo el kernel de Linux. Contienen muchas otras piezas de software, como las utilidades de shell de 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 que se ajuste a sus necesidades. Linux le da a los desarrolladores de Android un kernel de sistema operativo previamente construido y ya existente para que no tengan que escribir su propio kernel. Esta es la forma en que se construyen muchos dispositivos diferentes, por ejemplo, PlayStation 4 usa el kernel de código abierto FreeBSD, 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.

    Las diferencias

    Existe un debate acerca de 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 arranca 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 C de GNU (glibc) que se usa en las distribuciones de Linux estándar, ni incluye todas las bibliotecas de GNU que encontraría en una distribución de Linux típica. 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 orientadas a Linux en general.

    ¿Por qué no puedes ejecutar el software de escritorio de Linux en Android?

    Debido a que 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 forma 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 de root completo sin rootear su dispositivo Android. Muchos de los comandos estándar que puede necesitar no están disponibles, por eso las personas que rootean su dispositivo generalmente instalan la aplicación BusyBox, que instala muchas utilidades de línea de comandos. Estas aplicaciones son utilizadas por las aplicaciones para hacer cosas con su acceso raíz..

    ¿Por qué no se puede ejecutar el software de Android en Linux de escritorio

    Linux no incluye la máquina virtual Dalvik, por lo que no puede ejecutar aplicaciones de Android. La máquina virtual Dalvik y el resto del software de Android no se pueden colocar simplemente en una máquina Linux de escritorio: tendría que trabajar más para que las aplicaciones de Android salgan a una ventana en un escritorio estándar a través de Xorg, por ejemplo. Teóricamente, con suficiente trabajo, los desarrolladores podrían hacer que Dalvik se ejecutara en Linux de escritorio para que los usuarios de Linux de escritorio pudieran ejecutar aplicaciones de Android en sus escritorios. El producto Ubuntu para Android, ahora inactivo, 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 sido muy populares..


    Chrome OS de Google también se basa en Linux. Al igual que Android, Chrome OS no proporciona un sistema de ventanas X 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 desarrollador para instalar el software de escritorio de Linux que falta..

    Crédito de la imagen: ranti en Flickr, Anatomía y fisiología de Android.