En momentos en que Android domina el mercado, Tizen, Ubuntu for phones y Firefox OS son alternativas derivadas pero muy diferentes
Qué lugar ocupa la fragmentación entre las razones técnicas y qué otras motivaciones pueden contribuir a su éxito
A principios de
enero Samsung anunció que este año sacará al mercado teléfonos de gama
media y baja con un nuevo sistema operativo, Tizen. Al día siguiente, Canonical, desarrolladora de Ubuntu, anunció Ubuntu for phones. Como si faltasen novedades, dos semanas más tarde se presentaron los dos primeros dispositivos de la empresa española Geekphone que funcionan con el sistema operativo FirefoxOS promovido por la Fundación Mozilla con otra empresa española -Telefónica- como uno de los principales colaboradores financieros y técnicos (seguramente la razón de que Mitchell Baker, presidenta de la Fundación Mozilla, se haya mudado a Barcelona el año pasado).
Es interesante que al mismo tiempo que Android domina el mercado y
adquiere una calidad y madurez comparable a la de su gran competidor, el
iOS de Apple, aparezcan alternativas derivadas pero tan diferentes. El
argumento de los protagonistas suele ser de índole técnico: tener
sistemas sólo basados en HTML5, más ligeros y con menos requerimientos
de hardware. Pero también se leen y adivinan otras razones. Aunque el
sistema Android es software libre, Google tiene un gran control sobre el
ecosistema: determina las pautas de desarrollo y lanzamientos, es
propietario de la marca y logo de Android que le permiten establecer
condiciones a los fabricantes, hasta las aplicaciones más usadas son
programas -no libres- de Google: Play, Maps, Gmail, etc.
Las razones técnicas
Android Inc. nació en 2003 para desarrollar el sistema Android, luego fue adquirida por Google en 2005. En 2007 se creó la Open Handset Alliance
para fomentar su desarrollo, y se lanzó el primer dispositivo con
Android en 2008. La pila de software de este sistema operativo está
formada por software libre: Linux, herramientas de software necesarias, y
en la capa más alta la máquina virtual Dalvik, la responsable de
ejecutar el código de las “aplicaciones nativas” para Android, escritas
en Java.
La elección de Java como lenguaje de programación fue criticada desde el principio. A diferencia de iOS, que ejecuta en código nativo del procesador (compilado desde el fuente en Objective C), en este caso la ejecución no es directa, Dalvik es el responsable de ejecutar el código intermedio de Java. El objetivo era la independencia del procesador, aprovechar las librerías existentes, y atraer a la masiva comunidad de programadores Java. Los desarrolladores de Android hicieron un gran esfuerzo en optimizar la ejecución de los programas, Dalvik no es la máquina virtual de Java estándar, sino una específicamente diseñada para dispositivos de poca memoria y potencia, en las últimas versiones incluye optimizaciones tan importante como JIT ( Just In Time compiler).
Las optimizaciones de Java/Dalvik no son las únicas. Android aprovecha las capacidades más avanzadas del Linux para minimizar el uso de memoria mediante una arquitectura muy bien diseñada. Por razones de seguridad, las aplicaciones se deben ejecutar como procesos diferentes (similares a los procesos de cualquier Unix o distribución GNU/Linux), con su propio intérprete y librerías de Java. Para no duplicar el consumo de memoria de cada proceso, se usa de forma muy ingeniosa la técnica Copy On Write (COW) de Linux, que evita duplicar páginas de memoria de sólo lectura o ejecución.
A pesar de las optimizaciones, las críticas continúan justificadamente. Android todavía no ha llegado a la suavidad y uniformidad de tiempos de respuestas del iOS. Incluso en las últimas versiones de 4.2 se observan regresiones importantes en este campo.
Los tres nuevos sistemas operativos -Tizen, Ubuntu for phones, y FirefoxOS- están basados, como Android, en el núcleo Linux y prácticamente sus mismas herramientas, pero los tres eliminan la capa de Java/Dalvik.
La elección de Java como lenguaje de programación fue criticada desde el principio. A diferencia de iOS, que ejecuta en código nativo del procesador (compilado desde el fuente en Objective C), en este caso la ejecución no es directa, Dalvik es el responsable de ejecutar el código intermedio de Java. El objetivo era la independencia del procesador, aprovechar las librerías existentes, y atraer a la masiva comunidad de programadores Java. Los desarrolladores de Android hicieron un gran esfuerzo en optimizar la ejecución de los programas, Dalvik no es la máquina virtual de Java estándar, sino una específicamente diseñada para dispositivos de poca memoria y potencia, en las últimas versiones incluye optimizaciones tan importante como JIT ( Just In Time compiler).
Las optimizaciones de Java/Dalvik no son las únicas. Android aprovecha las capacidades más avanzadas del Linux para minimizar el uso de memoria mediante una arquitectura muy bien diseñada. Por razones de seguridad, las aplicaciones se deben ejecutar como procesos diferentes (similares a los procesos de cualquier Unix o distribución GNU/Linux), con su propio intérprete y librerías de Java. Para no duplicar el consumo de memoria de cada proceso, se usa de forma muy ingeniosa la técnica Copy On Write (COW) de Linux, que evita duplicar páginas de memoria de sólo lectura o ejecución.
A pesar de las optimizaciones, las críticas continúan justificadamente. Android todavía no ha llegado a la suavidad y uniformidad de tiempos de respuestas del iOS. Incluso en las últimas versiones de 4.2 se observan regresiones importantes en este campo.
Los tres nuevos sistemas operativos -Tizen, Ubuntu for phones, y FirefoxOS- están basados, como Android, en el núcleo Linux y prácticamente sus mismas herramientas, pero los tres eliminan la capa de Java/Dalvik.
Lea el artículo completo en: