Build your own Windows!
There were a lot of significant announcements from Microsoft this week. Most
of them revolved around the next version of .NET and the associated tools, so
you can be forgiven if you missed one of the more significant changes: the
company has tweaked the licensing for Windows CE 5.0.
For a while now, Microsoft has been licensing Windows CE source code under
one of their numerous "Shared Source" programs. Embedded application developers
using Windows CE could download the actual source code and tweak it to work with
their particular hardware and requirements. Pretty much all of Windows CE is
available under this program: the kernel, GUI, file system, device drivers, and
more. All in all, there are over 2 million lines of code available in this
But under previous iterations of this particular Shared Source program, any
company that changed or improved the Windows CE source was requird to share its
changes with Microsoft -- and therefore indirectly with competitors. If you came
up with a neat new way to improve the file system and your device's performance,
for example, Microsoft might well roll the code changes into the next release of
the platform and destroy your competitive advantage.
The licensing change is simple: licensees now maintain ownership of their
derivative code, and aren't required to share the changes with Microsoft.
Undoubtedly some will still do so, in the hopes that the changes will be rolled
into the base distribution and available in future releases. But others will
make their changes and keep them, and derive some advantage by doing so.
I don't expect to see this exact model adopted across all of Microsoft's
products. There's no benefit to the company in fragmenting the PC Windows market
that I can see, for example. Nor would I expect the Office source code to open
up; ISVs can already customize Office and keep control of their changes through
the numerous hooks for add-ins and customization. But the mere existence of the
Windows CE 5.0 Shared Source program is a good sign; it means that Microsoft is
viewing its overall market and relationships as assets, rather than simply
trying to hang on to source code at all costs.
You can learn more about the program at the Microsoft Windows Embedded Developer