The Microsoft embedded freight train

Embedded Linux will play an important part in the mobile devices of the future, but don't underestimate the strengths of the CE environment.

An article yesterday on ZDNet discussed the prospects for Linux in mobile phones and other embedded systems of the future. Eirik Chambe-Eng of Trolltech, a maker of cross-platform software infrastructures that are popular on Linux, believes Linux's embedded future is bright indeed, attributing that future success to what he calls the "five Cs" - complexity (or rather, lack of it), control, customization, cost and community.

Linux will - and does - play an important role in the embedded space. TiVo is famously built atop Linux (and is famously the target of certain changes Stallman wants to make to the GPL license), and Linux is increasingly viewed as a prime choice when considering what embedded platform to use. Linux's growth in the space is hotly contested, however. A recognition of the merits of one's opponent can't hurt.

In the embedded space, the ability to customize is critical, and an operating system for which the full source code is available has benefits. However, the full source code is also available for Windows CE (okay, mostly full, as there are some bits that aren't available), and more important, modifications to that source included as part of a product do NOT need to be shared with others, something which isn't the case with GPL-licensed Linux. In other words, if you are making improvements to OS code, and you want those improvements to be a competitive advantage, it might be better to do them atop a codebase with a license that is friendly towards proprietary alterations.

An interesting omission from the list of Cs is "consistency," an issue noted in the ZDNet article, but expanded on in an article by Eugenia Loli-Queru at OSNews:

What Trolltech failed to mention was that each of the FOUR different Linux cellphone initiatives, plus TWO more other companies who develop with Linux for their cellphone software, are completely incompatible ( has a list of all these initiatives). And here we are, in year 2006, with at least SIX different implementations of Linux/Qt/other-API that are neither binary or source compatible with each other. This situation is even worse than the current desktop Linux distro issues, where distros are somewhat compatible, but not completely. Each cellphone software maker and initiative is pulling its own way and creates extreme fragmentation.

That's an issue, and though a Java J2ME application should work well across platforms, an application that needs native access won't. That isn't an issue for either of the proprietary OSes common in mobile development, and is something they will have to work out if they hope to compete favorably with them. Ecosystems in software demand consistency, particularly if they compete with ecosystems that have a high degree of it.

Whether or not embedded Linux reduces complexity in embedded and mobile situations is questionable, to my mind. Perhaps it's an improvement over what went before, but compared to the simplicity of a CE development environment, it appears lacking. You can build a highly-functional operating system image using a "point and click" graphical tool like Platform Builder, then build your applications in Visual Studio - the same tool you use to build server, desktop and handheld applications. That makes life easy for developers, and that matters. If Linux has something comparable, feel free to tell me about it.

Cost is an advantage, to be sure, as Linux can theoretically be free - and often is in embedded situations. MontaVista, the leading vendor of an embedded Linux distribution, charges no runtime license fee, but does charge for tools used to make a product. However, Windows CE is pretty low-cost as well, ranging between $3.00 and $16.00 / per distributed copy, depending on features used. Granted, depending on the cost of the hardware involved, that can be a large or small percentage of the overall cost. On the other hand, you get an incredibly easy development environment and a huge stack of optional features - such as the new Networked Media Device Feature Pack, which makes CE-based DVR devices easy to build. Speed to market has value, as does development time.

Windows CE is doing extremely well in the marketplace, and is the operating system that is now the de facto standard in handhelds (goodbye, Palm OS). Windows Mobile phones are now available from most mobile networks, making the question of top-tier manufacturer support less relevant, but they have had success even with a group of companies that fear "Microsoft coming in and pushing margins away from the hardware" (which, as I've noted before, isn't such a bad thing for consumers). Nokia does not ship a phone which uses Windows Mobile, though that shouldn't surprise anyone, as they are strong backers of Symbian as majority owners of the Symbian consortium [update:  as Bob Teale notes in the Talkbacks, Nokia only has 47.9%, having been blocked from majority ownership by Ericsson and Sony.  Either way, Nokia still has a strong vested interest in Symbian.]. Motorola and Samsung do, however, and Samsung is the manufactuer with the highest market share growth rates.

Further, if a presentation I saw a month ago by Ellen Daley of Forrester is correct, most Line of Business (LOB) and enterprise applications are moving towards Windows Mobile. The reasons are various, but include cost, ease of development, and consistency with existing enterprise software infrastructures.  That is something vendors need to take notice of, because the same dynamic existed in Microsoft's battle with Apple in the 80s and early 90s.  The biggest buyers of mobile phone hardware are businesses, and though Symbian might be doing reasonably well among "prosumers," businesses will set the trend due to its purchasing power.  What gets used at work often gets used at home.

There's a Microsoft embedded freight train coming down the tracks just as mobile computing is set to become a technology inflection point. Is Linux ready to stop it?