Echando una mirada en los clasificados en Costa Rica me fijo que tenían un anuncio en el que ofrecían clases para desarrollar en “Linux-Android”. Esto me llamó la atención porque aunque el sistema móvil de Google está basando en Linux, no es igual que instalar Ubuntu o Elementary OS en la computadora. Esto es muy obvio, especialmente cuando no puedes usar aplicaciones que están hechas para Linux en un dispositivo con Android y viceversa. Así que decidí investigar qué significaba esto de que Android es basado en Linux y descubrí algunas cosas que posiblemente muchos de los lectores de Artescritorio sepan, pero que yo no tenía ni idea.
¿Qué significa realmente decir “Linux”?
No se cuántas veces he visto discusiones de usuarios de Linux que dicen que la terminología correcta es “GNU/Linux” cuando se quiere hablar de alguna distribución como Ubuntu, Mint, Debian o Elementary. Esto tiene una explicación muy simple, y es que Linux no funciona solo, necesita GNU, un escritorio como GNOME, navegadores, servidores gráficos y muchas más cosas para llegar a ser lo que vemos cuando lo instalamos en un ordenador.
El Linux Kernel es open-source por lo que es usado por otros para desarrollar , como por ejemplo cuando Google decidió crear Android, y de esta manera cualquiera que quiera crear algo en Android no tiene que hacer un kernel desde cero, sino que ya tiene una base. Sin embargo, encima del Linux Kernel de Android hay muchas otras capas que lo hacen ser completamente diferente. El robot Android hipster de arriba muestra justamente sobre las capas que tiene Android luego del Linux Kernel que lo hacen diferente a cualquier distribución de Linux que hayas usado.
¿Cuál es la diferencia entre una distribución de Linux y Android?
Es muy simple: aunque cuando prendes un dispositivo con Android el kernel de Linux se inicia, las capas encima de él son completamente distintas: no se cargan las librerías del GNU, ni tampoco un servidor X como Xorg. El resultado es que no se pueden correr aplicaciones que están hechas para Linux en un teléfono o una tablet con Android, ni viceversa.
Android usa la máquina virtual de Dalvik como librerías encima del kernel de Linux y luego el framework de las aplicaciones que son hechas en Java y que, por lo tanto, se necesitan aplicaciones que están desarrolladas diferente y usan un código distinto.
A pesar de que Android es distinto en esto, todavía existe un debate de que si es una distribución de Linux o no, lo que creo que quedaría de parte de cada quien, dependiendo lo que consideren. Es muy relativo realmente porque personalmente conozco como distribuciones de Linux aquellas que usamos en PCs como Ubuntu o Elementary, pero después de saber todo esto, ¿no se le debería llamar “distribución de Linux” a cualquier sistema operativo que use el kernel de Linux?
Pingback: Bitacoras.com