The MeeGo platform has been carefully created to provide the components necessary for the best device user experience. As shown in the MeeGo Reference Architecture Overview diagram below, the MeeGo architecture is divided into three layers:
Each of the subsystems and functional blocks are described in the following sections. Note: Items with a black dotted border are not included in the 5/26/2010 stack.
There are multiple software components that a hardware vendor must provide for MeeGo to run successfully on their platform architecture, including platform kernel drivers, core architecture additions, kernel configuration, X software additions and configuration, modem support, and hardware specific media components. You can learn more about the hardware enabling process here. These specific software components are called the hardware adaptation software and are detailed below.
The kernel is the heart of Linux, and acts as the bridge between applications and the actual data processing done at the hardware level. There are three general categories of additions that MeeGo requires for each supported hardware platform.
The X Window System (also known as X11 or simply X) provides the graphical interface and the basic framework for building this interface. There are two general categories of X additions that MeeGo requires for each supported hardware platform.
MeeGo uses a Linux kernel from kernel.org, with architecture specific configuration and patches (as needed). Drivers are provided for each supported platform.
The Comms Services enable managing voice and data connectivity for the platform. Functionalities are provided to manage cellular and IP voice and data connectivity across a range of communications technologies, including WiFi, 3G, WiMax, and Bluetooth.
The Internet Services enable rendering web content, providing web run time support, exchanging data with web services, and determining location.
The Visual Services enable the core 2D and 3D graphics capabilities for the platform, including support for rendering internationalized text and taking advantage of underlying hardware platform acceleration for graphics.
The purpose of media services is to provide audio/video playback, streaming and imaging functionality to the system. In general, media services take care of the actual audio/video data handling (retrieval, demuxing, decoding and encoding, seeking, etc.).
The Data Management subsystem provides services for extracting and managing file meta-data (for example to support extracting and searching metadata for media files), retrieving data about the device context (such as device position, cable status), and managing the set of installed packages on the device.
The Device Services subsystem contains a set of services for managing device state, including everything that is needed to make a device safe to use for a consumer, and exchanging data with the device, sensor data extraction, overall system policy, device data synchronization, and device data backup and restore.
The Personal Services enable managing user data on the device, including personal information management (that is, calendar, contacts, tasks) and managing user accounts to enable single-sign-on for web services.
MeeGo uses a scalable security framework that provides security via role based access control that applies to a wide range of systems, from completely open systems to systems that need to be partially locked down. This is achieved by having a flexible and updatable policy that is enforced by key pieces in the software stack.
MeeGo Security is not part of MeeGo 1.0 release.
The MeeGo API provides the interface for application development. The current release includes Qt 4.6.2. Additional features are under development. For more details, see the MeeGo API page.
Qt provides application developers with the functionality to build applications with state-of-the-art graphical user interfaces. Qt is fully object-oriented, easily extensible, and allows true component programming.
Component(s): QtGui, QtCore, QtDBus, QtMultimedia, QtNetwork, QtOpenGL, QtScript, QtSql, QtSvg, QtWebKit, QtXml, Qt3Support, QtDeclarative, QtHelp, QtScriptTools, QtTest, QtXmlPatterns
Dependencies: http://doc.trolltech.com/4.6/requirements-x11.html
References: Qt 4.6.2 API Documentation