31 octubre 2013

¿Por qué no puedo instalar Ubuntu en mi móvil Android?

Aunque es muy común oir la frase Android es Linux esto no es del todo cierto, motivo por el cual no se puede coger un teléfono con Android e instalar cualquier otro sistema Linux como Ubuntu. El principal motivo de esto son los gráficos.

Simplificando bastante (si quieres una explicación detallada de cómo funcionan los gráficos en Linux puedes leer este artículo), en Linux los gráficos están repartidos en dos piezas: el servidor gráfico y la capa hardware. En una distribución Linux al servidor gráfico se le conoce como servidor X y la capa hardware es la librería Mesa. Mientras que el servidor X se encarga de la parte más funcional dando soporte a los programas y a funciones como el arrastrar y soltar, Mesa se encarga de la parte de más bajo nivel y se corresponde con los driver a bajo nivel de la tarjeta gráfica que usemos.


Esquema de las distintas partes que componen los gráficos en Linux. De mupuf.org con licencia Commons Attribution-ShareAlike 3.0 Unported.

Al contrario que la mayoría de sistemas Linux, en Android se decidió crear un nuevo sistema gráfico, donde SurfaceFlinger reemplaza al servidor X y una librería llamada Gralloc HAL reemplaza a Mesa.


How do graphics stacks compare on GNU/Linux and Android 2.x?. De http://she-devel.com/Linux_Android_Graphics_Stacks.html con licencia Commons Attribution-ShareAlike 3.0.

El problema está en que la mayoría de fabricantes de SoC están implementando un driver Gralloc HAL pero no están construyendo un driver para Mesa. Además, la mayoría de las veces el driver Gralloc HAL no tiene código fuente por lo que los desarrolladores no se pueden basar en él para crear un driver Mesa; y en los casos en los que sí que se cuenta con el código del driver Gralloc, la calidad de dicho código deja bastante que desear (esto es lo que se dice de los driver que liberó Qualcomm Unfortunately, the msm android fbdev driver code is a real mess (at least the mdp4 parts). Even by android / vendor kernel standards, which are pretty low to begin with.)

¿Cuál es el futuro?

Actualmente hay un montón de desarrolladores trabajando en crear driver Mesa para la mayoría de los chips gráficos ARM y por ahora van por buen camino por lo que es probable que en un año podamos instalar una distribución Linux en móviles o tablet sin ningún problema.
Además hay varios factores que pueden acelerar este proceso. Por un lado la gran cantidad de ordenadores low-cost que están apareciendo y que cuenta con sistemas SoC como RaspberryPi o CuBox. Por otro lado está la sustitución del servidor X actual por Wayland. Una de las múltiples ventajas de Wayland es su flexibilidad gracias a la cual ya sea conseguido que este se ejecute sobre los driver Mesa o sobre los driver de Android. Esto significa que aunque no se creen driver específicos para Mesa las distribuciones que usen Mesa podrán funcionar con los driver que los fabricantes publican para Android.

Sinceramente creo que el futuro es la desaparición de PC tal y como lo conocemos (como una torre enorme con una pantalla separada) y lo que nos espera será algo similar al visionario Motorola Atrix, un móvil que según el accesorio que le pongamos podrá convertirse en un PC de sobremesa, un tablet, un portátil, etc. y aquí tendrá mucho que decir la adaptación del sistema operativo a la pantalla en la que se esté ejecutando.

Nota: Puesto que no soy un experto en gráficos es posible que este artículo contenga errores. Agradecería que si alguien ve alguno lo dijese en los comentarios para aprender de ellos.

3 comentarios:

Anónimo dijo...

No sé si tiene errores tu artículo, pero me lo he encontrado muy interesante, gracias.

Anónimo dijo...

Coincido con el comentario anterior, excelente nota y ansioso por que pase el año

xalitre dijo...

Hola
Ante todo muy buen blog y muy informativo.
Yo trabajo en mi tienda con móviles chinos y si quieres alguna información estare dispuesto a ayudarte.
Un saludo

Publicidad