Lately, it seems like the most frequently-asked question I receive around Windows Mobile devices revolves around OS updates for the Pocket PC, Phone Edition, and Smartphone. The question always boils down to something like -
"Why does Microsoft not make the OS upgrade directly available? Why do I have to go through <fill in the manufacturer>?"
There is an answer to this question. Usually, however, the answer is either -
a) Way too wordy and technical;
b) Way too "finger-pointing" in nature;
c) Way too "not what you want to hear";
d) All of the above
I finally decided that I would take a little time to describe the answer to this oft-answered question in a way that overcomes a) and b). I do not think I can do much to overcome c), especially if you are the owner of a Windows Mobile device that has been "orphaned" by a manufacturer. I am hoping that at the least you will have a better understanding as to why the "Microsoft-direct" alternative is not viable.
A Tightly-Coupled OS and Hardware
How many people can remember back to the early PC days, whether it was DOS or early (pre "Plug 'n Play") Windows? More importantly, how many of you remember what an absolute nightmare it was to upgrade the OS and discover your hardware drivers no longer worked? For most (myself included), your PC was never upgraded at the OS level until you checked with all of your hardware component manufacturers to get the latest drivers for the new OS. In some cases, the hardware vendors decided not to support older hardware with new drivers, so you had to go out and buy a new replacement hardware piece (I remember this being common with CD-ROMs) in order to upgrade the OS. While this can still happen today, it is far less common.
Now turn to the Windows Mobile platform. When Microsoft completes a new version of or update to Windows Mobile operating systems, it is not really complete. You see, the new/updated version of the OS must be delivered to all of the manufacturers of the devices for customization. Here's the deal - Windows Mobile hardware devices are very tightly coupled to the operating system. This is similar to the days of DOS and system drivers, but in some cases is actually more severe. Rather than simply providing an updated driver, the device manufacturers must actually integrate directly (and thererfore modify) the operating system provided to them by Microsoft in order to work properly and efficiently.
This tight-coupling of hardware to Windows Mobile operating systems essentially means that Microsoft cannot simply provide a single generic version of Windows Mobile for all Pocket PCs or all Smartphones. The end result would be disastrous.
XIP - Nice In Theory, But...
Some of you may recall that one of the largely-touted advancements in the Pocket PC 2002 OS was the insertion of "XIP" technology. Without getting too wordy or technical (as promised), XIP was supposed to enable Microsoft and/or the hardware manufacturer to update specific areas of device ROM (where the OS is stored) without having to overwrite the entire ROM. In theory, XIP was supposed to enable -
1) A device update of ROM without having to hard-reset a device;
2) Microsoft to provide updates to items in ROM that would never be customized by any hardware manufacturer.
XIP can (and has) actually been used and works. As a real example, my Mitac Mio 8380 Smartphone (running the Smartphone 2002 OS) actually has been upgraded with a number of ROM updates using XIP. I never once had to hard reset my device after applying one of these updates. While XIP could work to solve the "Microsoft-Direct" update, there were several major obstacles -
1) There would need to be a universally agreed-to standard for "what gets placed where" in ROM (for lack of a better term). Microsoft would need to know that a specific location in memory would always contain the same data (regardless of the device).
2) The agreed-to standard would then need to be rigorously self-enforced by the hardware manufacturers.
As far as I have been ever able to determine, neither items 1 or 2 ever really occurred. Even if they had, it must be noted that XIP would only solve updates that were not device-specific; an update to Pocket Word would be possible, but not necessarily to Connection Manager.
What About Plug and Play and Today's PCs?
Earlier, I mentioned that many of the problems regarding early PCs with regards to the operating system and hardware have been overcome. Much of this has been made possible by creating a layer in the operating system that separates the tight coupling of the OS to the device. While risking an over-simplification, the evolution of the Windows (and other) operating systems to include a "Hardware Abstraction Layer" (or "HAL") has made it easier to provide OS updates without as much regard for the underlying hardware. This, when combined with a "Plug and Play" specification (this is a standard for creating device drivers, BTW) to hardware manufacturers and the people responsible for writing the device drivers for the hardware, have made OS updates a much more simplified and hardware-agnostic process.
While this may be possible at some future point for Windows Mobile devices, it is not really feasible at this point in time. The reason is quite similar to the early days of PCs, where resources are at a premium. A Hardware Abstraction Layer requires quite a bit of physical space (something that current Windows Mobile devices are still quite limited on) and processing power (again limited). We may very well see this occur somewhere down the road for the Windows Mobile platform, but not today.
Computing Platform or Consumer Appliance?
The last factor that plays some role in why updates are or are not available for a particular device lies largely with the device manufacturers themselves, and is very non-technical. For many manufacturers, the debate rages internally over whether a PDA or Smartphone is a computing platform or a consumer appliance. The difference in how manufacturers perceive the devices makes all of the difference in the world from a business perspective.
To a manufacturer, a consumer appliance is largely considered "disposable". That is, the product will likely (based on price and changing technology) be replaced within a brief time period (with "brief" being relative and specific to the product and market). As a result, the cost of labor associated with providing an upgrade is weighed against the need for assigning the same resources to similar products that are earlier in their life cycle. In short, manufacturers count on you as the consumer simply buying a new consumer appliance with more features rather than trying to make due with an older product.
Computing platforms have evolved to the point where users expect to be able to extend the life of their product for longer periods of time (thanks to easier hardware replacement and OS advances mentioned previously). As a result, manufacturers (in order to maintain customer satisfaction) have increasingly taken steps to ensure that labor is put forth to ensure greater upgradeability.
Unfortunately, it has become apparent through actions that some hardware vendors have chosen to classify their Windows Mobile products as consumer appliances, if for no other reason than to try to spur continuing sales of newer hardware through older hardware obsolescence. This holds true for both Pocket PCs and Smartphones (perhaps even more so for the latter, as that has been an industry-wide philosophy for quite some time).
There is really no one-line response to answer the question as to why Microsoft cannot currently simply directly provide upgrades to Windows Mobile devices. It is a complex situation that prevents this from happening today. While it is possible that this situation can change over time, it will only happen if hardware manufacturers buy in to the process. Hopefully, this text has helped explain the situation a bit more clearly.