Embedded Computing Design

Subscribe

Receive our complimentary magazine via U.S. Mail or E-mail.

MES

Menu expands at the OS diner

Maciej Halasz, Timesys Corporation

A new operating system, MeeGo, is described and compared against the Android, Linux, and iPhone OS.

3Android, having captured the bulk of mindshare and ink as the leading mobile/embedded OS, is the blue plate special, but menu choices today also include the MeeGo project – an open source project created jointly by Intel and Nokia – and other embedded operating systems such as Embedded Linux and the Apple operating system for iPhones. The author analyzes the potential impact of MeeGo on embedded device designs, discussing opportunities and threats the MeeGo project faces. Finally, the author recommends some criteria to consider when selecting an OS for your next embedded project.

In recent years, we all have seen new multimedia/multipurpose devices from RIM, Motorola, Nokia, and Apple. Technology advancements in both hardware and software have resulted in faster-than-ever-before expansion of the embedded space in a variety of markets. It is the largest market segment, the consumer electronics market, that drives the most innovation.

A new OS, MeeGo, found its way to the consumer electronics market OS menu (where the iPhone OS and items tend to jump out) a few months ago (Figure 1).

Figure1
Figure 1: Timeline of first software releases of major software stacks used in mobile market
(click graphic to zoom by 1.9x)

The goal behind many of these OSs (or software stacks) is an application framework that allows developers to write software once and to then run it on many different platforms enabled with the same OS. Graphics frameworks such as the Nokia-owned Qt and the Android user interface API facilitate such binary compatibility.

With a number of alternatives available to build the next generation of embedded devices, it is critical that developers understand ’ strengths and weaknesses and the trade-offs each requires.

What is MeeGo?

Announced jointly by Intel and Nokia, MeeGo is a -based open source software stack for mobile devices. Hosted by the Linux Foundation, the goal of MeeGo as an open source project is to support creation of multimedia based devices in markets such as handsets, netbooks, In- Infotainment (IVI), smart TV, and more.

The MeeGo project is based on Intel’s Moblin project and Nokia’s Maemo. Since its inception we have seen many other vendors joining the MeeGo project, including AMD.

MeeGo’s modular approach includes MeeGo core frameworks that are shared by all profiles and different user experience layers for each type of device, with one example being In-Vehicle Infotainment (see Figure 2).

Figure2
Figure 2: MeeGo architecture (Source: MeeGo.com)
(click graphic to zoom by 1.9x)

The core OS of MeeGo uses a Linux kernel and a set of packages from Nokia’s -based Maemo and Intel’s -based Moblin projects. As shown in Figure 2, these APIs support a variety of frameworks, such as Communications, Multimedia, or Location, in the MeeGo stack.

The Nokia-Intel Alliance produced a key outcome, the adoption of the Qt framework as a default application development framework. This framework allows companies to develop applications for a variety of devices and put into practice a “develop once, run on many” philosophy. It’s a standardization approach that other OSs such as Android and iPhone OS also use, and it dictates APIs and frameworks against which to develop value add software.

MeeGo alternatives – Android, iPhone OS, Linux

In embedded markets such as automation, industrial, consumer, and medical, products shipping today are often Linux-based.

Linux

The conventional Linux approach offers engineers the most flexibility in designing a complete solution for an . It allows engineers to design the smallest and fastest software for a product. It also requires more effort, as engineers have to design and build core features that application engineers can develop against. The process of designing with Linux has dramatically improved over the years and today offers access to many tools and to support and knowledge from open source as well as commercial vendors. With a proven Qt framework that abstracts application API from OS, applications written for one device will run on others, although recompilation of the code might be required.

Android

While the Android OS relies on Linux and its device drivers to access various peripherals, such as a USB or an LCD display, the connection to Linux ends pretty much there. Most of the software that’s running on an Android device is written in . Google wrote and controls all the core APIs and the stacks that application engineers develop against. Any modifications to core APIs introduced by Google ensure backwards compatibility with previous Android releases.

This approach defines a common interface for application developers and is a reason why the same application from an Android market can run on different Android enabled devices. This approach, however, does not give developers complete control over the core frameworks. Engineers can contribute by submitting changes to the Android core API, which is open source, but it is up to Google maintainers to decide if code gets accepted or not.

MeeGo

Like the Android OS, MeeGo also aims to simplify device development. The benefit of using MeeGo is that it is all Linux. Similarly to Android and iPhone OS, an engineer gets a complete reference platform and can focus on writing value-add software. It is fairly easy to adapt existing Linux applications to run under the MeeGo framework. Companies with products at market can upgrade their designs by leveraging MeeGo’s many features and frameworks. They can offer modern user interfaces and still provide a customized user experience.

MeeGo is completely open sourced and allows engineers to easily contribute changes both upstream and to MeeGo. Assuming MeeGo adoption happens and given the number of Qt and Linux engineers in the embedded space, the number of applications for MeeGo should grow rapidly.

iPhone OS

The iPhone OS is Apple proprietary, limiting engineers to developing applications and allowing them only to develop for Apple enabled devices.

When comparing alternatives, we should look at not only the functionality an OS offers, but we should also support these alternative options for application development.

Table1
Table 1: MeeGo alternatives comparison
(click graphic to zoom by 1.9x)

As shown in Table 1, all of the OS options listed offer a Software Development Kit (SDK), which can be used by engineers to develop value add software/applications. The SDKs include an appropriate cross environment to compile code for a target device. They also come with a nice set of tools to assist with application design, compilation, and testing. MeeGo offers tools such as QtCreator to facilitate a WYSIWYG design approach. Apple has its proprietary Xcode, and Android comes with the Integrated Development Environment (IDE), which includes Android Development Toolkit (ADT) plug-ins. The Eclipse framework is the most popular IDE for Linux-based projects and is used as the basis for many commercial Linux development tools.

Weighing the choices

There are many reasons why Android is such a popular option today. It has been on the market for more than three years, and it has a rich community of developers building apps that are available through Android Marketplace.

Many users are familiar with the Android interface through its widespread adoption in the mobile market and marketing campaigns on mainstream media. With consumers on a first-name basis with the Android, it is easy for other devices to leverage Android’s popularity and reach a wider customer base.

Despite the Android familiarity advantage, a number of reasons speak to MeeGo as a viable choice:

  1. Customization – Certain levels of customizations, for example, adding support for another hardware device, are difficult in Android, and iPhone OS doesn’t allow it. MeeGo and Linux provide a well-defined process and APIs to support it.
  2. Linux open source alignment – Similarly to mainstream Linux designs, MeeGo uses many upstream packages. Android uses its own open source APIs, and iPhoneOS uses its proprietary stacks.
  3. Easy migration of existing Linux-based products and applications.
  4. Performance/feature optimizations – One of the benefits over standard Linux, which often is not optimized for specific features/performance.
  5. Feature completeness – MeeGo offers all features and frameworks you would expect to see in an , similar to Android and iPhone OS.

If having compatibility between devices for your applications is not an issue, open source frameworks such as MeeGo or Linux can be customized, allowing you to pull into your product design only the frameworks you care about. If you modify the MeeGo Core set of packages, you will not be able to claim MeeGo compliance, but the MeeGo project will make your task of building a custom media framework easy. The Qt-based graphics stack used by MeeGo will provide you with a complete development framework and the latest graphics UI, which you can leverage in your product.

If your next product is a mobile phone, Android is a very good choice as it offers access to a large pool of applications. If you are designing a custom embedded device such as a smart TV, MeeGo or commercially supported Linux is a good option as both offer a good development environment and greater flexibility.

When it’s time to order…

Although MeeGo has entered the embedded space late compared to the well established Android and iPhone OS, it has the potential to become a major player in many market segments. MeeGo success will correlate heavily with that of the Intel Atom processor in the embedded market. However, given MeeGo alignment with different market segments, such as those for handsets and In-Vehicle Infotainment, it is just a matter of time before MeeGo will be available for more than a handful of architectures and processors. Given its features and openness, the MeeGo project can become a serious alternative to Android and other embedded OSs if it continues on its current path.

Maciej Halasz is director of product manage-ment at , provider of award-winning, proven embedded Linux solutions. Maciej has over 10 years of experience in with a focus on embedded Linux and real-time systems. He holds a master’s degree in Computer Science from ENST de Bretagne, France, a master’s degree in Telecommunication Systems from Poznan University of Technology, Poland, and an MBA from the University of Pittsburgh Joseph M. Katz Graduate School of Business.

Timesys Corporation maciej.halasz@timesys.com www.timesys.com

Leave a Comment