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

  • Chris Hoffman

    @chrisbhoffman

  • Actualizado el 12 de julio de 2017, 10:20pm EDT

android-linux

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.

«Linux» vs. El núcleo de Linux

Relacionado: «Linux» no es sólo Linux: 8 piezas de software que componen los sistemas Linux

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.

Publicidad

También nos referimos a las distribuciones de Linux como simplemente «Linux». Sin embargo, las distribuciones de Linux no son sólo el núcleo 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 núcleo de Linux para adaptarlo a sus necesidades. Linux ofrece a los desarrolladores de Android un núcleo del sistema operativo ya construido y 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 FreeBSD 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.

linux-kernel-version-on-android-about-screen

Las diferencias

RELACIONES: ¿Qué es una distribución de Linux y en qué se diferencian unas de otras?

Hay cierto debate sobre si Android se 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.

Publicidad

Cuando se arranca 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 C de GNU (glibc) que se utiliza en las distribuciones estándar de Linux, ni incluye todas las bibliotecas de 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-architecture

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

Relacionado: ¿Qué es Unix y por qué es importante?

Debido a que 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 acceder a este entorno de terminal.

Publicidad

Por defecto, no hay mucho que puedas hacer aquí. El terminal todavía se ejecutará en un entorno restringido, por lo que no se puede obtener una cáscara de raíz completa sin rootear su dispositivo Android. Muchos de los comandos estándar que podrías 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 a la raíz.

android-terminal-emulator-uname

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

Relacionado: Cómo jugar a juegos Android (y ejecutar aplicaciones Android) en Windows

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 pueden simplemente ser colocados 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 Linux de escritorio para que los usuarios de Linux de escritorio puedan ejecutar aplicaciones de Android en sus escritorios. El ahora inactivo producto Ubuntu para Android intentó hacer algo así, 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.

apk-on-desktop-linux

El sistema operativo Chrome OS de Google también está basado en Linux. Al igual que Android, Chrome OS no proporciona 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.

Publicidad

Image Credit: ranti on Flickr, Anatomy and Physiology of Android

Chris Hoffman
Chris Hoffman es editor en jefe de How-To Geek. Ha escrito sobre tecnología durante más de una década y fue columnista de PCWorld durante dos años. Chris ha escrito para The New York Times, ha sido entrevistado como experto en tecnología en canales de televisión como NBC 6 de Miami, y su trabajo ha sido cubierto por medios de comunicación como la BBC. Desde 2011, Chris ha escrito más de 2.000 artículos que han sido leídos casi mil millones de veces – y eso es sólo aquí en How-To Geek.Read Full Bio »

Leave a Reply

Deja una respuesta

Tu dirección de correo electrónico no será publicada.