Meego Architecture Overview
Meego nace de la unión de los proyectos Moblin (Intel) y Maemo (Nokia) además cuenta con el auspicio de la Linux Foundation, lo que asegura que sea 100% OSS compliant, esto ultimo sumado a la política de upstream first para mantener una constante compatibilidad con el kernel de Linux, le esta trayendo algunos dolores de cabeza a Intel, que tiene problemas para integrar los drivers de sus chipsets GMA500 y del próximo GMA600 por una incompatibilidad de licencias.
Meego es la concreción del viejo dicho que dice, se juntaron el hambre y las ganas de comer, por una lado tenemos a Intel, que ve que el segmento mobile no para de crecer y a ARM y sus derivados llevarse la mayoría de las ganancias y el marketshare, por el otro lado esta Nokia, que ya había empezado a despegarse de Symbian con Maemo, pero que necesita acelerar el paso y tener un OS que le sirva para entrar en otros mercados (tablets, netbooks) como así también tener un plan B, por si el barco Symbian se termina de hundir en el segmento de los smartphones high end.
Arquitectura
Meego es una distro Linux, cuya arquitectura a grandes rasgos se divide en 3 capas, OS Base, Middleware y UX.
OS Base
Esta capa esta constituida por la HAL y un kernel Linux, a diferencia de Android, Meego sigue una política de upstream first que lo mantiene sincronizado con las ultimas versiones de el kernel Linux, esto permite adoptar fácilmente nuevas versiones del kernel dentro del proyecto, sino que también obliga a los fabricantes de hardware a que se encarguen de todo el proceso de inclusión de sus drivers en el kernel.
Middleware
En esta capa corren a grandes rasgos:
- Los servicios y APIs que permiten el acceso a todo tipo de conectividad, 3G, WiFi, Bluethot (Comms Services)
- El web runtime, los servicios de rendering y geolocalización (Internet Services)
- Los subsistemas 2D y 3D, los servicios para el rendering de fonts, la libreria Clutter y el server X (Visual Services)
- Todos los servicios y codecs necesarios para la reproducción y captura de audio y video (Media Services)
- El subsistema que se encarga de proveer los servicios para la manipulación de metadata, por ejemplo información de media files, la posición del dispositivo (acelerometro) (Data Management).
- Todos los subsistemas y servicios encargados de administrar el estado del dispositivo, como así también las sincronización, backup y restauración del sistema. (Device Services)
- Todos los servicios necesario para el manejo y administración de los datos personales del usuario, (contactos, tareas, calendario) y el manejo de las cuentas de acceso a servicios web. (Personal Services)
Meego API
La Meego API esta basada en QT 4.6.x (al día de hoy, pronto se estara dando soporte a la versión 4.7), además se están desarrollando complementos como MeeGo Touch Framework, MeeGo Web Runtime (permite crear aplicaciones nativas usando HTML, CSS y Javascript) y Qt Mobility (un set de librerías con funciones y componentes especialmente desarrollando para se usados en ambientes mobile)
UX
Meego fue pensado desde un principio para ser usado en una gran variedad de dispositivos (netbooks, smartphones, tablets, televisores y automóviles), en esta capa corre una User Interface especializada para cada uno de ellos.
Hasta el momento han sido liberas las versiones 1.0 de Meego para Netbooks y una Alpha (muy alpha) de Meego para Smartphones.
Herramientas y Ambiente de Desarrollo
Aunque la idea de Nokia es usar QT para todo, aun quedan algunas aplicaciones GTK en Meego (por ejemplo Banshee) resabios de su pasado como Moblin, no esta en los planes desterrar a GTK del entorno, sino impulsar a QT para que tome una posición mas relevante, para ello Nokia provee de QT Creator y los SDKs necesarios para comenzar ya mismo a desarrollar, también Novell se esta sumando a la fiesta con su propio sabor de Meego y el consiguiente soporte para Mono.
Recursos
- Meego Homepage
- Download MeeGo v1.0 for Netbooks
- MeeGo Handset Day1 Developer Preview
- Getting started with the MeeGo SDK for Linux
- Meego Community
- QT Labs
- Download QT Creator 2.0 and QT SDK