Web Development

Intel, Nokia Team Up on MeeGo

Intel and Nokia have announced that they're merging their Linux-based platforms -- Moblin and Maemo, respectively -- forming a new platform called MeeGo.

MeeGo is a Linux-based software platform that supports multiple hardware architectures across a range of device segments, including pocketable mobile computers, netbooks, tablets, mediaphones, connected TVs, and in-vehicle infotainment systems. MeeGo includes the Qt application development environment, and builds on the capabilities of the Moblin core operating system and reference user experiences. Using Qt, developers can write once to create applications for a variety of devices and platforms, and market them through Nokia's Ovi Store and Intel's AppUp Center. MeeGo will be hosted by the Linux Foundation and governed using the best practices of the open source development model. The first release of MeeGo is expected in the second quarter of 2010, with devices launching later in the year.

Qt is a cross-platform -- Embedded Linux, Mac OS X, Windows, Linux/X11, Symbian, Windows CE/Mobile, Maemo, and now MeeGo I guess -- C++ application and UI framework. With Qt, you can write applications once and deploy them across all of the above without rewriting the source code. It's solid and it works.

Still, there's the name -- MeeGo. For all I know, the platform was named after Meego, a science fiction TV sitcom of a decade ago. Meego the TV show didn't make it through a full season before being canceled. Let's hope that MeeGo the platform fares better.

The MeeGo architecture is divided into three layers:

The MeeGo OS Base layer contains the Linux kernel and core services along with the Hardware Adaptation Software required to adapt MeeGo to support various hardware architectures.

The MeeGo OS Middleware layer provides a hardware and usage model independent API for building both native applications and web runtime applications.

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 patches, kernel configuration, software patches and configuration, modem support, and hardware specific media components.

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 subsystem provides services to manage voice and data connectivity for the platform. APIs are provided to manage cellular and IP voice and data connectivity across a range of communications technologies, including WiFi, 3G, WiMax, and Bluetooth.

The Visual Services subsystem provides 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 metadata (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.

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.

The MeeGo UI toolkit is the primary toolkit for developing MeeGo applications and is based on Qt with specific enhancements and additions. GTK and Clutter are also included for application compatibility.

The MeeGo handheld UX provides a user experience for handheld devices, including the core system user interface and applications that are built on a handheld optimized UI framework. The user experience illustrates the capabilities of the platform and also provides a starting point for building a MeeGo handheld product.

The MeeGo netbook UX provides a user experience for netbook devices, including the core system user interface and applications, which are built on a netbook optimized UI framework. The user experience illustrates the capabilities of the platform and also provides a starting point for building a MeeGo netbook product.

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task.
However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

This month's Dr. Dobb's Journal

This month,
Dr. Dobb's Journal is devoted to mobile programming. We introduce you to Apple's new Swift programming language, discuss the perils of being the third-most-popular mobile platform, revisit SQLite on Android
, and much more!