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
Closed:(Samsung)
Bada, (Motorola)
Azingo
Though there are many questions to explore in all of this, I thought it would be interesting to start with a high-level comparison of the MeeGo and Android architectures, to see what differences and/or similarities exist. Maybe we can then surmise a
why to go with the
what.
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.
Looking at the middleware of the two software stacks, as one might expect - there is a lot of functional similarity between the Android libraries with their hardware abstraction layer and the MeeGo Services components. In fact, some of the exact same components are used; such as the WebKit for browsers, the Bluetooth connectivity manager, OpenGL support, etc. Differences start to stand out when we move over to the runtime layer.
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 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.
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.
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).
SUMMARY
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?
Clearly, Android is a huge success. Perhaps we should just stop abusing the word "open" when it comes to these industry efforts, and just describe them by what they are based on - "free source". That is certainly more accurate I think. Both Android and MeeGo have their origins in "freesources".
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.
More questions:
- 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?
It will be interesting to watch further developments.
contact me:
mike.demler@eedailynews.com
Follow me on Twitter:
MikeDemler