Having introduced Compact 7 to a good-size audience on Tuesday at Microsoft’s Offices in Reading, UK, I thought it would be useful to begin to blog some of the very useful information that was presented.
The case for Compact 7 is focused on productivity enhancements provided by new features and tools, and in particular the ability to create differentiated devices thanks to the combination of support for touch and gesture user interfaces, and Silverlight for Embedded.
In Part 1 I’m going to concentrate on Compact 7 itself, and the tools enhancements and Silverlight for Embedded will follow in subsequent entries
Probably the single most notable feature of Compact 7 is the support of ARMv6 and ARMv7 instruction sets. This was a serious omission in CE 6.0, meaning that even if you were using an ARM11 or ARM Cortex-A8 device, everything compiled down to the v5 instruction set as used on an ARM9 or XScale. In particular, the Cortex-A8’s NEON SIMD (Single Instruction Multiple Data) co-processor is now supported, providing both run-time and native support for VFP (Vector Floating Point), and the DSP and multimedia acceleration which NEON potentially brings.
SMP (Symmetric Multi-Processing) support is now provided. This is a little ahead of time as there are not yet any multiple-core devices aimed at the general embedded space. But these devices have been announced by Freescale, TI and others, and are only a matter of months away. The SMP implementation is done in a very similar way to Intervalzero’s RTX Soft-Control Architecture for achieving SMP with full Windows / Windows Embedded Standard – in fact some of the API calls are identically named. So for example you can SetThreadAffinity and SetProcessAffinity to a core. Other calls allow you to discover how many cores are available, power them on or off, and even examine how heavily utilised they are.
Maximum physical memory has been increased from 512MB to 3GB. You may think these numbers relate to the future rather than the present, but we’re finding that full-blown Silverlight apps need 512MB right now, and I’m sure the first 1GB image is not far away. We’re already offering ARM-based hardware with 1GB RAM, and I don’t think we’re unique in that.
Other noteworthy enhancements under the performance heading are a faster file-system, and new, improved drivers for USB and SD Card storage.
Integrity, Reliability, Security
Windows CE is already used in a variety of applications requiring high reliability. One danger in situations where a system has to run for months or years between reboots is file system fragmentation. Windows Embedded Compact 7 features a new local heap manager designed to address this concern.
To address malware-related concerns, address space location randomisation is now available to ensure that load addresses are not predictable, and data execution prevention now covers the possibility of code being injected into data space prior to execution.
In amongst the many networking improvements, IPSec – a well known method of packet level encryption – and Kerberos implementations have been upgraded to the same standard as Windows 7. Kerberos is an industry-standard system for client/server authentication in unsecured networks.
A new loader/verifier module (LVMod) provides an authentication mechanism such that only application binaries within the run-time image, or signed with a security certificate can be loaded.
Connectivity Features – RemoteFX
RemoteFX is a pretty new – and potentially quite exciting and disruptive – remote desktop protocol technology from Microsoft, first seen in Windows Server 2008 R2 SP1 and Windows 7 SP1 as recently as last month. The idea is that RemoteFX cleverly encodes the rich graphical experience generally appearing on a high-end user screen, communicates it to the client in a reasonable bandwidth, and with an appropriate codec on the client side.
Support for RemoteFX in Compact 7 gives rise to the concept of a “zero client” – that is a thin client that isn’t a PC. This is a topic in itself, and one on which I’m sure we’ll blog soon.
Windows Device Stage
This is the thing which pops up in Windows 7 when you connect a printer, media player, camera, or whatever, which shows a photo and branding for the connected device above a list of options. It depends on the client device offering an MTP (Media Transfer Protocol) Responder, which Compact 7 does. The interest in the embedded space is that because you have the MTP Responder source code, you can modify it to achieve results outside of the usual wizards, thus it should be possible to create your own device type and Device Stage content.
New Networking Stack
In addition to the IPSec and Kerberos improvements already mentioned, an all new Winsock 2.2 stack brings the same features as available in Windows 7 (note the underlying theme here) to Compact 7.
Noteworthy features include enhanced accessibility of protocols other than TCP/IP SMP support, NDIS 6.1, IPHelper – which enables applications to retrieve information about the network configuration of the device and modify the network configuration, and Windows Filtering Platform which provides an API for packet-level filtering across multiple laters.
Other Connectivity Features
Compact 7 includes Bluetooth 2.1 support, and a new Native Wi-Fi, which has configurations based on XML profiles and features to facilitate automatic hand-overs when roaming across multiple access points and subnets.
An extensively improved Connection Manager allows automation of connectivity choice where multiple options are available (e.g. wired Ethernet, 3G, Wi-Fi), with a unified programming interface via WinInet.
Connected Multimedia is Standard
The idea of seamless interaction with the world of Windows often seems chiefly applicable to consumer products and less relevant to the broader embedded world. However, the need to capture, stream and display video and rich graphics is becoming more common, and every display – even in the most specialist, rugged industrial environment – is seen as a potential advertising vehicle by a marketer somewhere, and so the question of multimedia arises with increasing frequency.
With Compact 7, more features than you are likely to need are included.
At a practical level, multi-touch and gesture support, something likely to be needed with a modern user-interface based on Silverlight with a capacitive touch screen is provided.
A new DirectShow multimedia pipeline has enhanced buffering, and a new video mixing renderer which is achieved for the first time via DirectDraw. MPEG-2 and MPEG-4 containers (as used in DVB) can be demultiplexed and streamed.
Media Library allows you to locate and retrieve media held locally, remotely or via the internet. An SQL database is used to store and retrieve metadata. Media Player is similar to the equivalent function in Windows 7, and has its own UI – being capable of functioning as a standalone player (DMP), as well as a renderer (DMR) when attached to a server(DMS) under remote control (of a DMC).
The Digital Network Living Alliance is an industry body responsible for interoperability of media infrastructure in the home. Thus if you want to show your home movies residing on your PC or recorder on the TV, print some photos, or play your music wherever, you should be able to do this even though the separate elements of your system are from different vendors. The above abbreviations (DMP – Digital Media Player, and so on) come from the DNLA context. There is a two-box (DMS serves, DMP interacts with the user and plays back) paradigm, and a three-box paradigm (with separate Controller and Renderer in place of the Player), and both these are supported in Compact 7.
Other Multimedia Features
Compact 7 includes new readers for PDF, and for Office up to 2007 version.
A new Internet Explorer for Embedded is based on IE7, with performance enhancements based on IE8 features. Flash 10.1 support is included (but not an Adobe license). There is Pan and Zoom, XHTML support, and the new IE comes with a customizable XAML skin.
In Part 2 and 3 of this article, coming soon, we’ll look at the two other key enhancements in Windows Embedded Compact 7 – the new tools, and the ability to create exciting user interfaces with Silverlight for Embedded. In Part 4 we’ll examine the available licence types, and other go-to-market matters.