Noticia Por qué Android no es una distro (y controversias)

Un saludo a todos los lectores de Desde Linux. Este es mi primer post en este interesante blog, y espero que sea de su agrado. Actualmente tengo instalado Ubuntu en mi computadora de escritorio, y hace poco que participo en la comunidad de desarrolladores y control de calidad.

Mi primer post será un artículo de “opinión”, aunque no serán tanto opiniones mías, sino que les mostraré la evidencia técnica sobre la que sustento mis afirmaciones.

Puede que el título les parezca risueño a varios lectores; sin embargo, entre muchos usuarios y desarrolladores de Android y sus pares en Linux, consideran al sistema operativo de Google como una distro más, o en su defecto, algo “muy” cercano a una distribución de Linux.

Basan esta idea sobre el hecho que Android usa el kernel Linux (actualmente de la familia 3.3, ver aquí). Pero existen importantes diferencias entre el robotito verde, y cualquier distro basada en nuestro amigo Tux.

A continuación, varias características de Android que de cierto modo, evitan que pueda ser considerado una distro.

1) La VM de Android


Como es de esperarse, Linux funciona como cualquier kernel: está entre el hardware, y la capa de aplicaciones (este gráfico lo ilustra bien). Diversas herramientas nos permiten interaccionar con él en nuestras distros, como el compilador GCC, las shells, y algunos editores de texto como Vi/Vim.

Pero en Android esto no es así. En su arquitectura, las aplicaciones son corridas en una máquina virtual llamada Dalvik (ver: JAVA y Android, una relación de amor-odio).

Esto le permite a Android ser compatible con una amplia gama de hardware de celulares, a costa de perder rendimiento. Esto hace que iOS de Apple supere a Android en todos los test benchs, y de esta forma Ubuntu Touch tendrá un mejor performance cuando aparezca su versión final en las tablets y teléfonos móviles.

Nada de recursos derrochados en una máquina virtual, sino un sistema operativo customizado para cada modelo.

Windows 8 es un caso aparte, y su poca popularidad es por culpa de la falta de visión de Microsoft, que bien podría aprovecharse de esta ventaja por defecto que tienen sus celulares.

2) No todo es GPL!!


Si bien hay distros más o menos “libres”, es decir, con más o menos software privativo, la gran mayoría de las aplicaciones y librerías están bajo la licencia GPL (aquí están explicados los tipos de licencia usados en el open source).

Por su parte, Android tiene un uso más extenso de la licencia Apache. Esta, al igual que la licencia BSD, no exige que el software desarrollado a partir de códigos fuentes libres modificados deban ser copyleft, por lo que cualquier desarrollador puede hacer software privativo a partir de códigos bajo la licencia Apache.

Google se ve muy beneficiado con esta licencia, pues puede obtener todos los beneficios de software libre, sin contraer la responsabilidad de compartir sus desarrollos.

Lo controvertido es lo que hace Google con lo que sí es GPL. Para los que saben inglés, aquí hay un artículo de Florian Muller, especialista en patentes FOSS (free-and-open-source-software).

Sostiene que Google ha estado “lavando” (manipulando) los archivos header de los módulos BlueZ, Bionic y el sistema de archivos ext4 para zafarse de la licencia GPL.

En Internet hay muchas discusiones sobre este tema (mucho material lamentablemente en inglés), si buscan “GPL laundering” obtendrán muchos artículos donde se ejemplifican estás supuestas prácticas de Google.

Sin embargo, Linus Torvalds sostiene que estas denuncias son “basura”, a pesar que reconoce “que no se ha fijado sobre lo que exactamente Google hace sobre los headers de Linux”.

Pero la controversia continúa entre los defensores de software libre. Torvalds sigue rechazando esas críticas, y para sus detractores simplemente le está haciendo la contra a la FSF, y está promocionando su kernel por encima de los principios sobre los que se sostiene GNU/Linux.

3) Mucho software privativo


No es necesario explayarme mucho sobre este punto. Muchas aplicaciones de los teléfonos celulares y tablets son software privativo.

Con respecto a Android, posee muchos binarios que no son libres, al igual que varias bibliotecas y firmware, y una parte importante de Cyanogen….

Por sobre todo, el código fuente de Android 3.0 en sí (todo lo que no es importado de Linux y los proyectos open source y libre) no fue publicado. Google tampoco planea publicar el código de la versión 3.1.

Para ver más : ¿Es Android software libre? Richard Stallman dice que no

Si bien las posturas de Stallman a veces me parece extremas, lo cierto es que Google solamente se aprovecha de los beneficios del software libre, pero no aporta a las comunidades liberando el código de Android.

4) ¿Dónde está la consola? ¿Y los editores de texto? ¿Y Gnome? ¿KDE? ¿XFCE?….


Como ya les dije, entre el kernel y el resto del SO hay una máquina virtual, así que para correr la terminal hay que usar un emulador (Android Terminal Emulator).

Por su parte, los famoso editores de texto de GNU (Vim, gedit) no vienen instalados por defecto, y hay que buscarlos en el Appstore de Google. Y Android tiene su propio entorno gráfico, nada de Gnome, KDE, XFCE…. Aunque hay proyectos de usuarios para poder instalar estos entornos de Linux en un dispositivo Android.

Estas son las principales razones por las que Android no puede ser considerado una distro, algunas más poderosas que otras. Espero que les guste mi post, y espero sus comentarios. Al igual que recomendaciones para futuros post.

Nos vemos, amigos de Desde Linux!!!


NIuRCtWmHb0


Continúar leyendo...