Introduction to the MeeGo Software Platform
On February 15, 2010, the world's largest chip manufacturer, Intel, and the world's largest mobile handset manufacturer, Nokia, announced joining their existing open-source projects (Moblin and Maemo, respectively) to form a new project called MeeGo, hosted at the Linux Foundation. This article provides an introduction to the MeeGo Project, a brief overview of the MeeGo architecture, the benefits the MeeGo platform offers to various players in the ecosystem and discusses the role of the Linux Foundation as the project's host.
MeeGo is a Linux-based platform that is capable of running on multiple computing devices, including handsets, Netbooks, tablets, connected TVs and in-vehicle infotainment systems. The primary goal of the Maemo and Moblin Projects' merger was to unify the Moblin and Maemo communities' efforts and enable a next-generation open-source Linux platform suited for a variety of client devices. Most important, MeeGo will be doing this while maintaining freedom for innovation, continuing the tradition of community involvement (inherited from Maemo and Moblin), accelerating time to market for a new set of applications, services and user experiences.
MeeGo is a full open-source project hosted by the Linux Foundation and governed according to best practices of open-source development. As with other true open-source projects, technical decisions are made based on technical merit of the code contributions being made.—Ari Jaaksi, Vice President of MeeGo Devices, Nokia.
With the merger, the MeeGo Project has the opportunity to expand market opportunities significantly on a wide range of devices. It also will provide a rich cross-platform development environment, so applications can span multiple platforms. Additionally, it will unify developers, providing a wealth of applications and services. Such opportunities were out of reach for Maemo and Moblin individually. MeeGo will support multiple chip architectures (ARM and x86). Furthermore, with hundreds of developers working in the open on upstream projects first, from which MeeGo will be based, other mobile Linux platforms will benefit from MeeGo's contributions.
Maemo Background
The Maemo Project, initially created by Nokia (www.maemo.org), provided a Linux-based software stack that runs on mobile devices. The Maemo platform is built in large part with open-source components, and its SDK provides an open development environment for applications on top of the Maemo platform. A series of Nokia Internet tablets with touchscreens have been built with the Maemo platform. The latest Maemo device is the Nokia N900 powered by Maemo 5, which introduced a completely redesigned finger-touch UI, cellular phone feature and live multicasting on the Maemo dashboard.
Moblin Background
The Moblin Project, short for Mobile Linux, is Intel's open-source initiative (www.moblin.org) created to develop software for smartphones, Netbooks, mobile Internet devices (MIDs), in-vehicle infotainment (IVI) systems and other mobile devices. It is an optimized Linux-based platform for small computing devices. It runs on the Intel Atom, an inexpensive chip with low power requirements. A device running Moblin boots up quickly and can be on-line within a few seconds.
MeeGo provides a full open-source software stack from the core operating system up to the user interface libraries and tools. Furthermore, it offers user experience (UX) reference implementations and allows proprietary add-ons to be added by vendors to support hardware, services or customized user experiences. Figure 1 illustrates the MeeGo architecture, which is divided into three layers:
The MeeGo OS Base layer consists of the hardware adaptation software required to adapt MeeGo to support various hardware architectures and the Linux kernel and core services.
The MeeGo OS Middleware layer provides a hardware and usage model-independent API for building both native applications and Web runtime applications.
The MeeGo User Experience (UX) layer provides reference user experiences for multiple platform segments. The first UX reference implementation was released on May 25, 2010, for the Netbook UX. Other UX reference implementations will follow for additional supported device types.
A detailed discussion of the MeeGo software platform is available at meego.com/developers/MeeGo-architecture.
As mentioned earlier, the Netbook UX was the first reference implementation of a UX to become available for MeeGo. It delivers a wealth of Internet, computing and communication experiences with rich graphics, multitasking and multimedia capabilities, and it's highly optimized for power and performance. You can download the MeeGo Netbook images from meego.com, and run MeeGo on your Netbook. Figure 2 shows a screenshot of the Netbook UX featuring the MeeGo MyZone (the home screen).
The MeeGo open-source project is unique in that it offers benefits to everyone in the ecosystem, starting from the developer all the way up to the operator and the industry as a whole. MeeGo allows participants to get involved and contribute to an industry-wide evolution toward richer devices to address opportunities rapidly and to focus on differentiation in their target markets.
As mentioned previously, the MeeGo Project is a true open-source project hosted by the Linux Foundation and governed by best practices of open-source development. From MeeGo.com, as an open-source developer, you have access to tools, mailing lists and a discussion forum. You also have accessibility to technical meetings and multiple options for making your voice heard in technical and nontechnical MeeGo-related topics. Furthermore, all source code contributions needed for MeeGo will be submitted to the upstream open-source projects from which MeeGo will be built (Figure 3).
As an application developer, MeeGo significantly expands your market opportunities, as it is the only open-source software platform that supports deployments across many computing device types. MeeGo offers Qt and Web runtime for application development and cross-platform environments, so application developers can write their applications once and deploy easily on many types of MeeGo devices or even on other platforms supporting the same development environment. Furthermore, MeeGo will offer a complete set of tools for developers to create a variety of innovative applications easily and rapidly (see meego.com/developers/getting-started). The major advantage from this approach (Figure 4) is having a single set of APIs across client devices. In addition, in this context, “multiple devices” means much more than just multiple types of handsets, for instance. MeeGo device types include media phones, handhelds, IVI systems, connected TVs and Netbooks.
In addition, MeeGo application developers will have the opportunity to make their applications available from multiple application stores, such as Nokia's Ovi Store (https://store.ovi.com) and Intel's AppUp Center (www.intel.com/consumer/products/appup.htm). Also, there is the opportunity to host the applications on other app stores for specific carriers offering MeeGo devices as part of their device portfolios. These MeeGo capabilities and cross-device and cross-platform development are major differentiators and offer huge benefits to application developers.
MeeGo helps accelerate time to market using an off-the-shelf, open-source and optimized software stack targeted for the specific hardware architecture the device manufacturer is supporting. From a device manufacturer perspective, MeeGo lowers complexities involved in targeting multiple device segments by allowing the use of the same software platform for different client devices. In addition, as an open-source project, MeeGo enables device manufacturers to participate in the evolution of the software platform and build their own assets for it through the open development model.
MeeGo enables differentiation through user interface customization. Although many devices can be running the same base software platform, they all can have different user experiences. Furthermore, it provides a single platform for a multitude of devices, minimizing the efforts needed by the operators/carriers in training their teams, which allows their subscribers to be familiar with the experience common to many device types.
MeeGo is a vehicle for fostering mobile innovations through an open collaborative environment, promoting the exchange of ideas and source code, peer review, unifying development from across multiple device categories and driving contributions and technical work upstream to various open-source projects.
In addition, MeeGo contributes to Linux as a technical platform, as it combines mobile development resources that recently were split in the Maemo and Moblin Projects into one well-supported, well-designed project that addresses cross-platform, cross-device and cross-architecture development. Dozens of traditional Linux mobile and desktop efforts use many of the components used by MeeGo. They all benefit from the increased engineering efforts on those components. This is the power of the open-source development model.
The Linux Foundation (www.linuxfoundation.org) hosts the MeeGo Project as an open-source project, provides a vendor-neutral collaboration environment and encourages community contributions in line with the best practices of the open-source development model.
The Linux Foundation and MeeGo meet on various key points:
Accelerating the adoption of Linux.
Promoting collaboration between industry players and the Open Source community.
Unifying divergent efforts toward the benefits of a strong Linux platform.
Promoting a truly open Linux platform and improving Linux as a technical platform.
Encouraging companies to drive their contributions and technical work upstream.
As owner of the MeeGo trademark, the Linux Foundation also is driving the creation of a MeeGo compliance program that will allow ISVs and OSVs to go through the compliance program and have their applications, distributions, devices and so on certified as MeeGo-compliant. Figure 5 illustrates the benefits of the compliance program to various players in the MeeGo ecosystem. MeeGo will enable applications developed with the MeeGo API to run on all devices running MeeGo-compliant OSes with segment-specific adaptations.
The Linux Foundation contributes to the MeeGo Project through its coordination efforts, overseeing MeeGo events; hosting a number of MeeGo-related technologies, services and collaboration tools; in addition to various marketing, legal, PR and other support activities. Furthermore, the Linux Foundation employs the maintainers of the cross-toolchain used by MeeGo and contributes the optimizations for multi-architecture support in the build service.
15 MeeGo Facts
Full open-source project.
Hosted under the auspices of the Linux Foundation.
Aligned closely with upstream projects—MeeGo requires that submitted patches also be submitted to the appropriate upstream project and be on a path for acceptance.
Offers a complete software stack.
Provides reference UX implementations.
Governed according to best practices of open-source development.
Offers equal opportunities for all players and enables them to participate in the evolution of the software platform and to build their own assets on MeeGo.
Lowers complexity for targeting multiple device segments.
Offers differentiation abilities through UX customization.
Provides a rich cross-platform development environment and tools.
Offers a compliance program to certify software stacks and application portability.
Supports multiple hardware architectures.
Supports multiple app stores.
Has no contributor agreements to sign.
Has more than 1,000 committed professional developers and hundreds of open-source developers.
MeeGo is a fully open-source software platform, hosted under the auspices of the Linux Foundation, and governed according to best practices of open-source development. Open mailing lists, discussion forums and contribution are open to all. It offers the best of Moblin and the best of Maemo to create a platform for multiple hardware architectures covering the broadest range of device segments.
MeeGo offers several opportunities to participate and help shape the future of the next-generation Linux platform. It will accelerate the adoption of Linux on mobile devices, Netbooks, pocket mobile devices, in-vehicle entertainment centers, connected TVs and mobile phones by implementing a truly open Linux platform across multiple architectures for next-generation computing devices. It is an open collaborative project between the project founders (Intel and Nokia), the community and various commercial and noncommercial partners bringing thousands of developers to work entirely out in the open, driving their contributions and technical work upstream making Linux the platform of choice for mobile computing devices. Visit MeeGo.com and be part of it!
Ibrahim Haddad is Director of Technical Alliances at the Linux Foundation and a Contributing Editor for Linux Journal.