News

Special Report: Windows CE 6 arrives with 100% kernel source

Staff | Date: Nov 1, 2006 | Comments: 1

Given URL is not allowed by the Application configuration.: One or more of the given URLs is not allowed by the App's settings. It must match the Website URL or Canvas URL, or the domain must be a subdomain of one of the App's domains.

Underlining the significance of Windows CE to Microsoft's overall business plans, chief research and strategy officer Craig Mundie (pictured above) delivered the keynote address at the CE 6.0 launch event, which was streamed over the web from Microsoft's website and attended by some 60 media representatives.

Microsoft characterizes Windows CE --
released at version 1.0
ten years ago this month -- as an embedded, real-time operating system aimed at a wide variety of application-specific systems and devices, including consumer electronics, industrial automation, and medical and scientific equipment.

(click to enlarge)

Windows CE also forms the core of Windows Mobile, Microsoft's embedded OS for smartphones, PDAs, multimedia players, and automotive infotainment systems. A future Windows Mobile release, currently codenamed "Photon" and expected within two years, will be built on top of CE 6.0, according to a roadmap presented by Microsoft at its
MEDC developer conference
in May (see picture at right).

Today's full release of Windows Embedded CE 6.0 follows the "preview release" of CE 6 at MEDC in May, and introduces several additional new features beyond what was contained in the preview release.

In developing CE 6.0, Microsoft has added various enhancements that aim to make the OS more useful in next-generation devices that require features such as wired and wireless networking, advanced multimedia, access to vast memory resources, and greatly extended multitasking capabilities.

Kernel enhancements

Fundamental enhancements to the Windows CE kernel are said to include:

Taking a cue from its own introduction of the Windows CE 5.0
network media device (NMD) feature pack
upgrade last April, Microsoft has introduced three bundles of application-oriented technologies into the standard Windows Embedded CE 6.0 distribution.

Cellular communications

A new set of software components, dubbed "cell-core," enable Windows CE-based devices to establish data connections and voice calls over cellular networks, according to Microsoft. These technologies are intended to be used in devices and embedded systems that require wired or wireless M2M (machine-to-machine) communications.

Some of the many possible applications are parking meters that call for a meter-maid when a car's prepaid parking time expires, vending machines that make distress calls when they're out of Diet Coke, and GPS devices that implement location-based services such as automatically downloading real-time traffic data, according to Mukund Ghangurde, Microsoft's Group Product Manager for Windows Embedded.

Asked whether these newly added cellular technologies might allow companies to create mobile phones based on Windows CE, Ghangurde pointed out that a large number of phone-oriented functions would be required to implement a mobile phone, such as a phone UI (user interface), dialer, connection manager, and APIs for controlling communications functions. Besides, he noted, Microsoft has a separate product that delivers that capability: Windows Mobile. Still, companies such as Intrinsyc, which has created a
feature phone
stack based on Windows CE 5.0, seem likely to benefit from cell-core.

Video projector technology

CE 6.0 also introduces a set of new software components that enable the development of LCD projectors and other devices that can communicate with Windows Vista's built-in capability to wirelessly export the Windows desktop to other devices, Ghangurde said.

This bucket of functionality actually debuted last April, in the form of the "NMD feature pack" add-on for Windows CE 5.0. It encompasses a DVR engine, networking capabilities, device drivers, and video codecs typically required to develop consumer NMDs and IP-STBs. It also enables PlaysForSure certification, an interoperability logo that aims to assure consumers that multimedia streams and files will be usable on their devices, according to Microsoft.

Quite a lot more detail about the NMD feature pack technologies appears in our
prior coverage
of its launch for Windows CE 5.0.

Enhanced toolsuite -- VS bundled

As
previously announced
in conjunction with the preview release at MEDC in May, Windows CE's platform-level development tools have converted into plug-ins for Visual Studio 2005, resulting in a single tool that can be used for configuring, building, downloading, debugging, and testing the operating system, as well as for writing both native (Win32, MFC, ATL, WTL, STL) and managed (C#/VB) applications.

Basically, the Platform Builder toolset functionality from earlier versions of Windows CE had become a plug-in component for Visual Studio (VS), the popular Microsoft IDE (integrated development environment) that is used for Windows application development. This eliminates the need for developers to use two different toolsets during device development: Platform Builder for developing platform-level technologies like drivers and BSPs (board-support packages), and Visual Studio for developing application-level software.

Additionally, Microsoft's popular Visual Studio 2005 Professional IDE is now included, at no extra charge, in the $995 Windows Embedded CE 6.0 development package.

100 percent kernel source now "shared"

For the first time, Microsoft is making 100 percent of the source code of the Windows CE kernel available as part of the Windows Embedded CE 6.0 operating system package, to everyone who gets the OS package. This, according to Microsoft, comprises some 3.9 million lines of code -- up 56 percent from what was supplied with Windows CE 5.0.

Developers can now access shared source code for the Windows CE kernel -- as well as certain device drivers and application-level components -- directly from within the Windows Embedded CE 6.0 distribution package. To do this, they click on a function in the IDE that installs the shared source, and indicate their acceptance of the associated shared source license.

Windows Embedded Product Manager Nic Sagez expects the source code provided with Windows CE 6.0 to be helpful to developers in four key ways. First, it provides highly detailed technical documentation of the software, thereby helping developers to understand what the OS is doing, and precisely what its APIs (application programming interfaces) do, and don't do. Second, it enables developers to debug their hardware and software, enabling them to trace the execution of their software, and understand how the kernel is responding to it. Third, in cases where some unique functionality is required that can best be implemented in the kernel, companies can modify the code
and include their modifications
in devices or systems that are shipped to their end customers. Finally, the modified source code can be shared with other developers and companies -- provided, however, that the recipient agrees to abide by the terms of the shared source license, as well as any additional licensing restrictions added by the developer.

Not mentioned by Sagez, is that the availability of modifiable source code enables companies to fix bugs or patch around problems, when necessary, either as a stop-gap measure, or on a long term basis.

The opening up of Windows CE's kernel source code is likely to make Windows CE more attractive as an alternative to Linux in many embedded applications and devices that require substantial customization of the OS, or where source code availability has been mandated by the development team. Additionally, Microsoft touts the terms of its
BSD-like
shared source license
as being preferred by many device and equipment manufacturers that don't want to be compelled to make their OS customizations public and available to their competitors.

Besides the CE kernel and other sources that are available to all developers within the CE 6.0 distribution package, Microsoft is also making additional source code accessible via a pair of more restrictive, "Premium Source" licenses:

Premium Derivatives license
-- this license is available to a select set of customers and partners, and is usable for the purposes of documentation and debugging. Specifically, the license is available to:

system and device OEMs (original equipment manufacturers) that consume 5,000 or more Windows CE licenses within a 12-month period

Gold-level system-integrator members of Microsoft's Windows Embedded Partner program

Microsoft's "Premier Joint Development Partners"

silicon vendor partners that have a certified BSP for Windows CE

Microsoft's MVPs (Most Valuable Professionals)

Premium Redistribution license
-- this is the only license that allows Microsoft's Windows Embedded source code to be modified and incorporated into production devices that are shipped to end customers. It is available on approval to OEMs that consume 5,000 or more Windows CE licenses within a 12-month period, and who are located in qualifying countries, Microsoft says.

Neither of these Premium Source licenses allow the sharing of source code between developers or between companies, Sagez emphasizes. And, both are restricted to use by companies located in a limited set of countries, which currently numbers 34. An application for either style of Premium Source license is available on
this page
of Microsoft's developer website -- click on "Premium," Microsoft says.

What's available to whom?

In order to explain what CE 6.0 OS and related software components are available to developers and companies under each of the above three licenses -- i.e. Shared Source, Premium Derivatives, Premium Redistribution -- Microsoft has generated a downloadable map that can be used to explore the entire hierarchy of CE 6.0 software components.

The tool is available for download
here, as a
Visio file
and in html format, lets you drill down through CE 6.0's architecture into various software subsystems, and, ultimately, to individual software components, in order to identify which Shared or Premium Source license, if any, applies to each piece of the OS.

These images show a drill-down process through just one of many paths, from the top of the OS structure, to the low-level components:

(click to enlarge)

(click to enlarge)

(click to enlarge)

(click to enlarge)

(click to enlarge)

The license under which the Windows Embedded CE 6.0 kernel source code is released is available for download,
here
-- it covers what Microsoft calls "private" shared source, which is designated by the medium shade of blue in the above charts, according to Sagez. An additional license, which can be used to pass through modifications done to the public/sample code contained in the CE 6.0 package, is available here
-- it covers code shown in the lightest shade of blue in the charts. "Premium" source code, designated by the darkest shade of blue, is restricted to OEMs, MVPs, and partners, as discussed earlier.

Growing community

Sagez points out that Microsoft is not the only company that is currently making source code available to the Windows CE community for sharing purposes. A growing number of shared-source "community projects" are listed on Microsoft's developer website,
here. These projects include: USB Webcam Driver, Phidgets Driver, Wifi Driver, MPEG 2 Demux, Bluetooth Wrapper, Gumstix BSP, OpenSSH, and LSP Samples, among others.

Additionally, Microsoft
recently launched
its answer to the popular SourceForge
code-sharing site: CodePlex, where community project source code is available under a variety of sharing licenses.

Develop now, pay later

A free 180-day evaluation version of Windows Embedded CE 6.0 is available for download,
here. The kit includes the operating system, the standard shared source components described above, and Visual Studio 2005 Professional.

Developers and companies are permitted to use the evaluation version to begin their projects, and need not pay anything to Microsoft until the time limit expires, after which a non-evaluation version is available for $995 -- or when they begin to ship product that requires run-time royalties, Microsoft says.