viernes, 18 de octubre de 2013

Android y Linux, la delgada linea verde

¿Son lo mismo Android y Linux? Pues si y no, depende a que llamemos Linux. Frecuentemente se cae en el error de llamar Linux al sistema operativo GNU/Linux, pero Linux es un kernel. Cuando el proyecto GNU se decidió a adoptar el kernel de Linus Tolvards fue porque Hurd, el kernel que la Free Software Foundation proponía no estaba listo, y sigue sin estarlo. Así que podemos tener entornos que podríamos llamar “Linux” sin serlo, como un GNU/Hurd o un BSD, o un OpenSolaris, que pueden tener los mismos componentes pero un núcleo diferente. 

  Realmente Linus Tovards lo que hizo fue poner la última pieza  del rompecabezas de GNU. Para que  nos hagamos a la idea es como si tienes un coche marca Dacia y como el motor es Renault dices que tienes un Renault, nada más lejos 

Así que si tomamos Linux como GNU/Linux entonces podremos decir que Android y Linux no son lo mismo. A Android le faltan un montón de componentes  de GNU/Linux, las consolas, los entornos gráficos, los compiladores, los servidores, los cargadores de arranque… Aunque no está bien definido que debe incorporar un sistema para ser GNU/Linux a primera vista podemos ver que dista mucho de ser un GNU/Linux estándar como las distribuciones que existen para PC, incluso dista mucho de los sistemas encastrados que encontramos en otros dispositivos.

Por otro lado si tomamos como Linux el kernel en si mismo podemos decir que Android y Linux son lo mismo porque Android usa ese “motor” para funcionar. Android usa el kernel Linux como capa de abstracción de hardware. Es decir, el kernel se usa para que los componentes de Android, la máquina Dalvik, las bibliotecas y las aplicaciones corran sobre un entorno estandarizado que no dependa del hardware. En el grafico que os muestro abajo podemos ver como el kernel es la base sobre la que se apoya todo el sistema Android. 
Tenemos cientos de modelos de terminales Android, si por cada uno hubiera que retocar todo el sistema operativo habría un montón de problemas  en las actualizaciones y en los nuevos desarrollos. Pero si por otro lado solo tienes que tocar una pequeña parte del sistema operativo y solo en la parte de comunicación con el hardware se hace todo más fácil. Y si además no lo tienes que hacer tú, sino que puedes utilizar un kernel libre, con la estabilidad que tiene Linux, con una gran comunidad detrás y lo único que tienes que hacer es liberar tu código es un pequeño precio para los grandes beneficios que te aporta. 

Si Google no hubiera utilizado Linux como base de Android el desarrollo de uno propio se habría eternizado, tendrían problemas para adaptarlo a la gran cantidad de terminales que hay en el mercado y el trabajo de desarrollo sería demasiado complejo para el tipo de sistema operativo que quiere Google, que lo evoluciona casi cada 6 meses.

Así que podremos decir cuando nos pregunten que Android no es GNU/Linux, sino que utiliza el kernel Linux, que no es lo mismo. 

0 comentarios:

Publicar un comentario

comenta con facebook