February 14, 2011

The Mobile Linux Roundup: An Overview for Developers


Linux has made its way from the desktop to the server room, and now it is poised to take over mobile devices. In fact, by at least one report it already has. But as mobile developers are painfully aware, the mobile space is quite fragmented, and there are many versions of Linux to target. Which one is best for your project? Linux.com takes a hard look at the major contenders from the developer's perspective.

Leader of the Pack: Android

Android is a Linux-based mobile platform that needs little introduction. It is currently the second-hottest mobile platform in the US, usurping both Nokia's Symbian and Apple's iOS and gaining on RIM's Blackberry. New devices appear almost daily, from smartphones to tablets and beyond.

Google just introduced Android 3.0, code-named Honeycomb, specifically tuned for tablets and with eye candy that makes Minority Report look like a documentary. The Android market contains more than 100,000 applications and is still growing strong. Google also just made the Android Market available on the web (https://market.android.com/), greatly improving the application management process for users.

Being just one app among many thousands can be daunting, but there is a reason all those applications exist — Android is extremely popular and growing fast. In addition to industry-quality development tools provided by Google, Android has several extensive developer communities, including the “official” developer community as well as several others independent of the Google mothership. Chances are good that if you have a question, it has already been asked and answered at least once.

In short, there is a lot to love about Android.

But is Android actually Linux? Android uses the Linux kernel, but it has differences from the upstream project due to architectural disputes that are still being worked out between Google and the Linux kernel maintainers. This isn't unusual — most vendors ship drivers or patches to the kernel that have yet to be accepted in the upstream Linux kernel. Android, however, has attracted more attention than most in this regard.

There are also some legal considerations, as Google is currently being sued by Oracle for its use of Java, which Oracle now owns. No one expects this lawsuit to bring Android to a grinding halt. However, it may present some challenges in application development down the road, so it is worth watching.

Finally, there is also the question of Android's openness, or lack thereof. Major decisions about Android are made by Google, not by the community, which means that Android is not as open as its licensing suggests. While much of Android is made available under FOSS licenses, the development process does not embrace the open source tenets of transparency and meritocracy. This is not universally regarded as a bad thing. Google has the will and the means to provide professional touches that are beyond the reach of the average community, and mobile developers and ISVs who are not philosophically motivated are generally happy to receive Android as a finished platform they can develop and sell software on top of. But it means that Android is controlled by Google and its partners just as much as iOS is controlled by Apple, and developers need to be aware of the difference between projects that are merely openly licensed, and those which are open source communities.

Android Summary:

Big wins: Very popular on handsetss, excellent ecosystem with an impressive selection of applications.

Hurdles: Heavily modified kernel that differs from upstream kernel. Legal considerations due to Oracle suit. While Android is mostly open source, development is not community driven.

Examining MeeGo

MeeGo is the new kid on the block, and it offers something no other mobile Linux offering has: openness. Originally developed as a joint project between Intel, who brought Moblin to the project, and Nokia, who contributed the Maemo, MeeGo is hosted by The Linux Foundation and managed in accordance with open-source tenets, including transparency and a community built on merit and collaboration. MeeGo sports a very friendly user interface that is almost comically easy to load onto a netbook. It can be installed or run directly from a 4GB USB key, and it runs circles around the proprietary operating system often found on netbooks, both in terms of performance and usability. Its three UI "faces" — netbook, handset, and in-vehicle infotainment (IVI) — provide ample starting points for many projects. And its development tools and community are both first-rate.

That being said, MeeGo has opportunites to be better. It was introduced in 2010 as an operating system for handsets, tablets, netbooks, and in-vehicle infotainment (IVI) systems, but thus far only the netbook skin has been actively developed or used in actual products. Meego is also bound by the realities of being paid for and worked on largely by industry giants Intel and Nokia — like Android, releases are made by the parent organizations, not necessarily "in the wild."

The application store AppUp is largely netbook-oriented, although that may change if and when MeeGo is deployed on tablets or handsets. The store currently has about 10,000 applications available, including the ubiquitous Angry Birds. On the positive side, AppUp is very easy to use for developers.

One very bright spot for MeeGo is the recent announcement that a company has ported the Dalvik engine to MeeGo, enabling Android applications to run on MeeGo. That will go a long way toward uniting the programming models between these two important Linux-based projects, enabling them to specialize in different areas while providing a level playing field for application developers.

MeeGo Summary:

Big Wins: Extremely open development community. Dalvik may be available for MeeGo, allowing developers to port Android applications to MeeGo. Attractive UI. Solid roadmap for tablets and IVI.

Hurdles: Netbooks only (for now), uncertain future on handsets.

HP's webOS

webOS is HP's answer to the siren call of Linux. In a somewhat surprising move in 2008, Palm, Inc. announced that it was abandoning its venerable Palm OS for Linux. PalmSource, Inc., the software arm of Palm Inc. which had been spun off from Palm in 2002 and then purchased by Tokyo-based ACCESS Co. Ltd. in 2005, was in the process of developing ACCESS Linux Platform (ALP), and many developers assumed that Palm would use ALP as its Linux-based OS. However, Palm decided to develop its own Linux instead, and thus was born webOS, which made its public debut at CES in 2009. Palm, of course, was then purchased by HP in 2010, so webOS is now an HP operating system, and HP has big plans for it in both handsets and tablets.

A great deal of design and development have gone into webOS, and while it uses a Linux kernel there's little else that is community driven about its development. webOS is based on the Linux kernel and retains the GPL for any open-source components, but most of its special magic is proprietary. Developers must sign a EULA in order to use the operating system and its development tools, which are fairly extensive. It is worth noting that not many developers have taken Palm/HP up on the offer, as there are only a few thousand applications available in the Palm App Catalog.

That may change with a new crop of handsets, however and HP's recent announcements around webOS may inspire developers. With webOS in phones, printers, and PCs, driven by a company like HP, developers and consumers appear to have new faith in the platform.

webOS Summary

Big Wins: webOS has a feature-rich UI that rivals Android and even iOS. Strong commitment from HP with a solid roadmap.

Hurdles: webOS is mostly proprietary. While technically on par with other mobile OSes, it has some catching up to do in marketshare and mindshare with developers and consumers.


From our research, the main conclusion is that Linux will play a prominent part in the future, and it is worth keeping in mind that handsets are not the only mobile form factor on the rise. Also worth noting is that developer communities and other ecosystems are ultimately the primary method of support for Linux-based mobile operating systems, so in that case, as in most cases, the more open the project is, the better.

Click Here!