Android y Linux de la mano … ahora, con el Galaxy Nexus

 

Saludos a tod@s, no todo va a ser Nexus 4 en este blog (se me nota la envidia “sana”, verdad? ;)). Hace algunos días, os traíamos una noticia en la que se mostraba como la Nexus 7 movía Chromium OS, aumentando así las posibilidades del dispositivo. Pues bien, dentro del proyecto “Linux-on-Android”, detrás del cual está gente de XDA, el Samsung Galaxy Nexus acaba de recibir soporte.

La idea de las instalaciones conseguidas hasta el momento es que la distribución de Linux se ejecute en una partición separada de la de Android, de forma que el SO nativo no corra ningún riesgo, a través de una máquina virtual llamada jaula.

Las distribuciones compatibles son, hasta el momento, las siguientes:

-Ubuntu 12.04 Core v4 (sin GUI, ocupó cerca de 750 MB).

-Ubuntu 12.04 Pequeño v4 (con LXDE escritorio, ocupado alrededor de 2 GB y 1 GB de espacio libre necesario).

-Ubuntu 12.04 v4 completo (complete con Unity, ocupaba 3,5 GB y 1,5 GB de espacio libre necesario).

-Backtrack V10 imagen.

-Debian Core v4.

-Debian Pequeño v4.

-Debian grande v4.

En fin, que si estáis interesados en el proyecto, y sois poseedores de algunos de los terminales que han sido validados hasta el momento, pasaros por la web del proyecto para informaros más en profundidad.

La noticia original, de android.hdblog.it, aquí.

Anuncios

4 pensamientos en “Android y Linux de la mano … ahora, con el Galaxy Nexus

  1. Vamos a ver, no confundamos a la gente. Lo digo por ser rigurosos, nada de acritud 🙂 No se trata de ninguna “máquina virtual”. Eso es simplemente una analogía para que el profano en la materia llegue a entender más o menos someramente de qué va la historia. Pero antes de explicar cómo lo hacen voy a refrescar unos cuantos conceptos para que se me entienda.

    Primero, Android se basa en Linux, por lo cual no hace falta ni máquina virtual ni emulador para que Android corra Linux, porque ya lo corre. ¿Por qué digo esto? Porque Linux no es más que un kernel. Pongamos la analogía de un maniquí. El kernel es el maniquí en sí, y Android es ese maniquí cubierto por unos ropajes determinados. El conjunto de ese kernel más una serie de programas que corren sobre él componen lo que llamamos Android.

    Por otra parte, un ordenador de toda la vida corriendo lo que la gente llama “distribución de Linux” o simplemente “Linux” ejecuta el mismo kernel pero tiene otros programas corriendo sobre él, o sea, el mismo maniquí pero con otra ropa. De manera que para tener el entorno de una distribución “normal” de Linux corriendo en un dispositivo Android no se necesita más que compilar el software para el procesador del terminal y disponer de los drivers adecuados. Vamos, que se puede poseer el maniquí junto con los dos conjuntos de ropa disponibles y vestirlo con el que se quiera, o incluso con los dos a la vez.

    ¿Cómo se consigue eso? A través de un “chroot”. ¿Qué es eso? Otro refresco de conceptos 🙂
    Todo sistema basado en Linux (queda claro que es sólo un kernel, ¿verdad?), al igual que todo Unix, tiene una raíz del sistema, representado por el directorio /. Para los que tengan la desgracia de utilizar Windows, una comparación muy burda, aún a riesgo de que me corran a gorrazos, sería C:\, aunque ni por asomo C:\ y / representan lo mismo.
    De / cuelgan los demás directorios, com /bin, /home, etc…, de los que a su vez cuelgan otros subdirectorios como /home/user1, que es el directorio que contiene los ficheros del usuario de nombre user1. En Linux cada directorio tiene su papel: las bibliotecas compartidas en uno, los ejecutables en otro…

    Creo que la idea queda clara, así que volvamos al “chroot”. Mediante este método se consigue que un sistema operativo distinto del de arranque pueda colgar de un directorio de este último, siempre que el alternativo se pueda ejecutar con el kernel del de arranque. De ahí el nombre: “change root”, o sea, cambiar la raíz.

    Cuando se hace un “chroot” desde el sistema operativo de arranque al alternativo, en una terminal de consola (línea de comandos), se consigue que en esa terminal de consola en particular todo se ejecute como si se hubiese arrancado el dispositivo con el alternativo. Pero sólo lo de esa terminal en concreto. Es decir, que si se abre Konsole en KDE y en una de sus pestañas se hace un “chroot” a otra instalación de Linux, sólo en esa pestaña de Konsole se ejecuta el otro Linux. El resto de las pestañas de Konsole, o el propio proceso que lanzó Konsole en primera instancia pertencen al sistema operativo con el que se arrancó el ordenador. De ahí la idea de “jaula” a la que se refieren los autores originales de la noticia.

    Como directorio donde ubicar el sistema operativo alternativo se puede elegir cualquiera. No hace falta ni siquiera una nueva partición. Gento Linux, el que yo utilizo, se instala mediante el método de “chroot” arrancando el ordenador con otro Linux, bien otra instalación en la misma máquina o bien un Live CD o DVD, y se monta la partición del disco que contendrá el Gentoo a instalar en un subdirectorio como /mnt/Gentoo del Linux de arranque. /mnt pertenece al Linux de arranque pero /mnt/Gentoo contiene el sistema operativo que se está instalando como si se hubiese arrancado con él.

    ¿Otros usos de “chroot”? Un ejemplo práctico que me ha sucedido en Gentoo, por despiste personal: juguetear con la versión de xorg-server y olvidar actualizar los drivers que dependen de él. ¿Resultado? El teclado no funcionaba, no hacía nada. ¿Solución? Arrancar el ordenador desde un Live CD o DVD de cualquier Linux, meterme en la instalación “averiada” del Gentoo del disco duro mediante “chroot” y actualizarlo con el error subsanado. Ya está. O sea, el Live CD me daba acceso al teclado y el “chroot” al Gentoo sin él. También he usado el “chroot” para la primera instalación de Gento en máquinas lentas: compilo el sistema en una rápida dentro de un entorno de “chroot” con las definiciones de hardware de la lenta y luego se traslada el disco duro. Asunto terminado 🙂

    Por mi parte, la posibilidad de correr mi mismo entorno de escritorio en mi terminal telefónico es lo que ha hecho que me decante por Android y deje iOS. En cuanto conocí el proyecto Linux-on-Android se me disiparon las dudas. A la espera estoy de que se vuelva a poner a la venta el Nexus 4 😦

  2. Por cierto, acabo de leer esto en la Wikipedia a propósito del proyecto “Ubuntu para Android”:
    “Both Ubuntu and Android run at the same time on the device, without emulation or virtualization, and without the need to reboot. This is possible because both Ubuntu and Android share the same kernel (Linux).” (en http://en.wikipedia.org/wiki/Ubuntu_for_Android)
    O sea; “Tanto Ubunto como Android corren a la vez en el dispositivo, sin emulación ni virtualización, y sin la necesidad de reiniciar. La razón es que ambos comparten kernel (Linux)”.

    Espero que a nadie le queden dudas ahora de que Android ES Linux y de que por lo tanto no necesita emularse a sí mismo, como dije antes.

    Por chinchar un poco :), no comprendo cómo puede haber usuarios Android que en sus ordenadores utilicen Windows. ¿Cabe mayor herejía? 😀

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s