The SDForum recently sponsored a presentation on MeeGo, the Intel-Nokia collaboration to develop (yet another) Linux-based open source operating system for mobile devices. In this case, it's a merger of "the best of" Intel's Moblin with Nokia's Maemo platforms that was announced at the Mobile World Congress in February.
While Google's (and the Open Handset Alliance's) Android is coming on strong in challenging mobile OS incumbents, already surpassing the iPhone by some estimates, there seems to be no end to these efforts to launch new OS platforms - some "open" and some proprietary. A few additional examples:
Open: LiMo, Symbian
Starting at the bottom, both MeeGo and Android developed modifications to the Linux kernel. Google added drivers for handset applications, while also optimizing the power management and IPC "Binder" to support devices with limited CPU and memory resources. While Android's focus has been on porting to the ARM-based CPUs that dominate mobile devices, with an OHA membership that includes MIPS, Qualcomm, TI, Nvidia, Freescale, etc. (as well as Intel), the list of supported processors continues to grow.
One of the differences in MeeGo is that it is an open source project "managed" by the three year old Linux Foundation. Though the Linux Foundation includes many of the same members as OHA, it should come as no surprise that there are currently no other processor or semiconductor companies publicly supporting MeeGo. However, in a presentation at the recent Linux Foundation Collaboration Summit, Intel claimed that MeeGo supports ARM architectures while at the same time stating that:
"Silicon vendors are responsible for providing the hardware adaptation software"
(the gray wrapper that you can see in the MeeGo architecture diagram), and noting that "Intel provides the complete solution for Atom-based platforms".
So, at this point it's not clear exactly where that ARM support is going to come from.
Android employs their Dalvik virtual machine, with application code compiled from Java. A Native Development Kit (NDK) is also offered for high-performance applications that must use C++, such as games. The MeeGo operating system is primarily based on Nokia's Qt platform and the Qt Creator, with applications written in C++. Secondary support for Web runtime development in HTML and Java script is also described. Qt is Nokia's cross-platform development environment (IDE), which purports to enable porting code across platforms that span Linux, Mac OS X, Windows CE, Symbian and now MeeGo.
Whereas Android development will primarily be done in the open source Eclipse IDE, it's important to note that Qt requires a commercial developer's license for any application where you don't want to give away the source code.
The Qt Commercial Developer License is the appropriate version to use for the development of proprietary and/or commercial software. This version is for developers who do not want to share the source code with others or otherwise comply with the terms of the GNU Lesser General Public License version 2.1 or GNU GPL version 3.0.This is no small difference. A license for one developer to use on one OS is priced at $3,695!
Moving up to the top of the stack, we can compare the Android application layer to the MeeGo "User Experiences" (UX). MeeGo is designed from the outset with pre-packed reference platforms that go beyond smartphones - targeting netbooks, handheld, in-vehicle, connected TV, and media phone applications.
The Android ecosystem has rapidly expanded into all these spaces independently of Google's efforts. These vertical market packages stem from Intel's strategy to develop embedded applications for their processors.
In Android, every built-in application can be replaced. In MeeGo, developers are prohibited from doing so. MeeGo allows the UX to be customized, but with the following restrictions:
MeeGo is designed to prohibit fragmentation and ensure application compatibility to any MeeGo-based device. Use of the MeeGo brand will be based on meeting the specifications of the MeeGo compatibility program.
- MeeGo stack must be provided in its entirety.
- All packages based on MeeGo sources.
- Components can be added on top of MeeGo stack.
- Must include UI framework and user interaction model per profile.
The first open source version of Android (1.5) was released concurrently with the availability of the first Android phone - the T-Mobile G1. There are also unlocked developer phones available. With MeeGo, the effort is currently focused on adapting the Nokia N900 from Maemo to MeeGo.
Finally, there is the issue of governance. Much has been said and written about Google's control of Android. While OHA participants contributed to Android, the release timeline and content is completely controlled by Google. MeeGo implies more "openness" by operating under the auspices of the Linux Foundation.
MeeGo™ is an open source project created by merging the Moblin and Maemo software platforms, and is led by the MeeGo Technical Steering Group (TSG). The governance model is based on the principles of simplicity, efficiency, and transparent collaboration.However, while MeeGo is open to other contributors,
Much like most open source projects governed by a benevolent dictator, the MeeGo project will be led Imad Sousou (Intel) and Valtteri Halla (Nokia).
It would appear that "OPEN" has become quite a loosely defined (and promiscuously used) 4-letter word!
On the one hand - Android is so open that it has been modified, fragmented (or diversified if you prefer), and spun off into eBook readers, tablets, set-top boxes, connected TVs, home media phones, and more. Much of this has happened outside of Google's control, in a span of just about eighteen months since first release. The total number of applications in the Android Market is reported to now exceed 50,000. The Android ecosystem - beyond membership in the Open Handset Alliance, now encompasses a growing diversity of semiconductor manufacturers, wireless operators, software and "commercialization" companies, consumer electronics manufacturers and innumerable application developers. OHA has spawned the OESF, or Open Embedded Software Foundation.
It is very interesting to contrast these two approaches to leveraging "open source". I think that the comparison raises numerous questions to explore further. Amongst the questions:
- Does an "open" ecosystem require diversity?
- Or... can "open" co-exist with conformity that is enforced by 'benevolent dictators'?
- Is fragmentation/diversification a bad thing?
- Can any commercial ecosystem be truly open?
- Philosophical arguments aside, since we are not talking about philanthropic ventures, which is the more successful model?
At the SDFourm event, Jim Zemlin - Executive Director of the Linux Foundation, said that the #1 reason that industry has turned to Linux is because it is free. This is important he said, to address the "rising cost of innovation, while developing compelling user experiences".
Jim went on to define these requirements for success in "Open Source" industry collaborations:
- Must be able to be custom branded
- Must have lightweight neutral governance
- Span multiple architectures
- Friendly to operator business models
- Tools must be open source
- Strong set of uniform APIs
I would add to this list that the initiative must be capable of exciting and growing an ecosystem. Critical mass is involved. With Google's lead, I think that Android comes with a strong built-in attraction to follow the lead of the world's #1 internet company, to take advantage of the shift to mobile connectivity. Though both "Open Source" initiatives have their shortcomings, today I would say that Android gets a higher grade on this checklist than MeeGo does.
- Is there a similar attraction to participate with the #1 (worldwide market share) cell phone company - Nokia, and the #1 semiconductor company - Intel?
- Would the two companies be better off by simply adopting Android?
- Is Nokia cannibalizing Symbian?
contact me: firstname.lastname@example.org