bulat-icon  Articles  

[+]  Articles


Windows 8 is on ARM and Why Windows Embedded Compact (Windows CE) is there to stay

by Maharajan Veerabahu
Windows 8 - The buzz is around and everyone is eagerly waiting for Microsoft to come up with its latest offering of the PC operating system. The community is very keen to have a go at the Windows 8 PC and give its verdict. Windows 8 release has been keenly followed by embedded enthusiasts as well because Windows8's interest in embedded industry's poster boy, "ARM". And I have been getting questions from all around on whether this move from Windows 8 would eventually sound the death knell for good old Windows CE/ Windows Embedded Compact.

I write this article for all those who have this question in their minds!!

Windows 8 for the ARM platform!!


This release of the Windows operating system is creating flutters in quarters that were not affected earlier like the Tablet market, Phone Market, Embedded Market. The reason behind that was the announcement that the Windows 8 is arriving on ARM processors provided by TI, NVIDEA and Qualcomm. This is really path breaking and definitely a re-imagined route (like MS would call, in its BUILD Conference) taken by the leader in PC Operating System market.


But this one was expected because of 2 principal reasons, A. ARM got more powerful and B. There are no x86 processors available that is good enough for tablets today.


ARM has indeed become powerful enough to run the REAL windows on it. It is no longer the processor that used to trade in performance for power consumption. With the introduction of Dual core ARM Cortex cranking speeds above 1 GHz and supported by leading vendors like TI, NVIDIA, Qualcomm, Freescale and the like ARM has definitely come a long way from its Strong ARM days. So basically ARM has provided an equivalent alternative to the "Powerful" X86.


Also Microsoft did not have a proper answer to the all-conquering IPAD and Android Tablet market. Though MS is keenly trying to address the threat in Mobile Phone market with its Mango version of Windows Phone, it seems that it did not target the same Windows Phone for tablets. To address this void in the tablet market it's not surprising to see Microsoft bring ONE operating system for the PC, Laptops, Netbooks and Tablets. That way MS can use the existing application developer community who would feel is easy to develop applications would run on PC as well as on the tablets (off course with some modifications).


Well is this move brilliant and would it serve as the right competition to the already strong contenders in the space? That's for us to wait and see and of course an inspiration for another article.


Now, the problem is that if Microsoft wants to adapt its mainline operating system to the tablet market, it needs to come out of its X86-ONLY approach. The reason is ARM is the market leader in Tablets and as things stand, would be in that place for a long time to come. So Microsoft had to adapt itself to the ARM platform, if it was really interested to break into the tablet market. That's what Microsoft just did with Windows 8.


The Windows 8 BUILD Keynote clearly focused on the User Interface aspect, the Metro tiled approach and Touch first … all pointing to tablets and panels. The keynote also demonstrated how the memory consumption was down to sub 300MBs and the processor usage was much better than the Windows 7 releases, again clearly going the tablet way.


So as I see this, Microsoft had compelling reasons to support ARM and ARM has the power and resources for Microsoft to adapt its mainline OS to ARM.(Win - Win!!)


Other interesting aspects behind Microsoft's strategic shift to include ARM support may be attributed to ARMs foray into the server and Mobile PC markets. There was an interesting analysis in WFD (http://www.windowsfordevices.com/c/a/News/ARM-Computex-2011-press-conference/) which claimed half of all mobile computers would be having ARM by 2015. That is aggressive and if it all it happens Microsoft would not want to allow Chrome, Ubuntu and the like claim that marketshare. With Windows 8 moving into ARM, Microsoft has created a checkpoint for its competitors. Of course, Windows 8 would be costlier than Chrome and Ubuntu but with it will come all of Windows Desktop luxuries and the ability to run the inevitable MS Office Suite.


All in One PCs with Touch interfaces are beginning to spring from every popular PC vendor. From HP to Dell to Lenovo, all of them seem to be coming up with interesting variants of this genre of PCs which includes HD video/audio, TV tuners, Full Multi Touch interfaces, etc. all packed into a monolithic, sleek design which can hang on your wall or use very less of your table space. There has been All-in-one PCs right from the early days, but their re-emergence has a lot to do with the touch and UI interface that is being promised by Windows 8 and is being done to some extent by Windows 7. We may not be a far away from the days when ARM based All-In-One PCs come up as well.


OK! Windows 8 runs on ARM, Does that sound the end of Windows Embedded Compact from Microsoft?


"Will Windows CE die or is Windows 8 the start of the demise of Windows CE?" - This has been the question that is being asked by Windows embedded software community right from the time MS licensed ARM and rumors of Windows 8 for ARM surfaced.


Having followed the Development of Windows 8, the way MS is marketing Windows 8, having numerous discussions with other engineers like me, my strong feeling is


"NO!! Windows 8 is no replacement for Windows CE and CE has to live and flourish for a number of reasons. "
Why am I so sure about this? I would dig into the reasons by detailing the OS selection process and comparing Windows 8 and CE on the way.

OS Selection
There are 3 major factors that are considered by anyone who makes a decision on which Embedded OS to use.
    1.  Hardware
    2.  Performance
    3.  Cost and Support


There are 2 things regarding hardware when we decide on the embedded operating system to work with.
Hardware Support - The OS should support a variety of processors, CPU architectures, embedded peripherals
2. OS should operate with minimum hardware requirements

The two things mentioned are 2 ends of a spectrum. One end we say that the OS should support a group of hardware processor peripherals and at the other end we say that the OS should NOT DEMAND a minimum hardware that is TOO BIG or COSTLY.


While Windows 8 supports ARM, it has extended support for only what I would call the High END ARM Processors specifically like the NVIDIA Tegra and its brethren from TI and Qualcomm. Their low power cousins in the ARM world (which constitutes the bulk of the ARM processor market today) are not supported by Windows 8 and my assumption would be that it would never support the lower end market. Traditionally Microsoft Windows has been power hungry and memory hungry. MS is not be blamed for this as I would say, it was only trying to use with extra Gigs of memory and CPU power that was being offered at virtually much lesser cost by Intel and AMD. So the pampered Windows has never been starved of power or memory. Naturally the architecture of Windows also made the maximum out of the PC side hardware developments. I don't expect all this to change dramatically for the introduction of ARM. Like I said earlier, Windows 8 was able to venture into as ARM GOT POWERFUL.

In the Keynote at the BUILD conference Microsoft had mentioned that the memory usage of the Windows 8 was much better compared to Windows 7. The slide below (on the left) was taken from the BUILD
Windows 8 Task Manager
Windows 8 System Information
A bare minimum Windows 8 today can run in 281 Megabytes of system memory. While this is amazing in PC terms, this is still exorbitant in embedded terms. If you see system properties of one my development platforms (Alioth - PXA300 based Dev Board), you can observe that this embedded system has a lavish 256 MB RAM (being a development platform), but the minimal memory usage of a full blown GUI running on the LCD with touch is far less than 32 MB. In reality there are many embedded devices we have designed with 4MB of flash and 16MB of RAM and Windows CE 6.0 running on it.

This clearly points to the fact that if I decide to use Windows 8 as my choice of embedded operating system then, I am going to be definitely restricted to a particular list of Hi-End ARM Processors. On the other hand, all these years development in Windows CE has given me the flexibility to choose any ARM processor and design hardware that is really cost effective. Windows 8 would be overkill on most of the embedded devices made today.

Peripherals and Device Drivers


Another factor is the support for embedded peripherals. Windows CE provides very clear device driver, interrupt architectures that is best suited for most embedded peripherals. The OS is designed to be simple yet not simplistic. You can write complex NDIS drivers for an Ethernet card and at the same time write a simple i2c or SPI driver for your EEPROM. There is a great freedom to choose the peripherals that you want and the interfaces they use with your processor.


This would never be the case with Windows 8. Windows and Windows Driver development are directed to PC specific peripherals and interfaces. PCI, USB and few other basic PC interfaces are the only ways you can connect devices in a PC and so Windows would open up only those interfaces for writing device drivers.


"Writing driver for a SMSC Ethernet controller interfaced over the processor bus on my PXA270 platform would be alien to Windows DDK because according to Windows, NICs are over PCI, are they not?"


I am really interested to look into the Windows 8 DDK and how they are planning to support other peripherals (mainly for the tablet). Would they actually provide enough documentation and insight into their Windows architecture so that we can interface any peripheral or would they just partner with a group of ARM vendors and say if you want to run Windows 8 use this template hardware design, just as they did with Intel and the PC platform? Experience and initial noises that I hear about Windows 8 suggests the latter.


So flexibility in choosing the right peripheral and windows ce device drivers development would be with the embedded developers in case of Windows CE. So alliances and partnerships can be made by embedded product designers with companies that suit them and their size (should I say VOLUME!)


Shared Source Code

The shared source code was one of the major reasons for the sustenance of the Windows CE as an embedded operating system. Microsoft's deviation from its traditional closed door approach instilled a lot of confidence among embedded developers and also allowed developers to adapt their hardware to suit Windows CE. The shared source provides a greater understanding of the operating system, helps in the lowest level of debugging hardware/software problems and above all gives control/confidence over the development. This is not going to be an option with Windows 8. Forget about source code, most of the important architectural details are going to be off the limits from developers. It would have its own business and IP related reasons to keep most of the internal details off limits from developers. Again, a great deterrent to considering Windows 8 for embedded devices.


Performance is another major concern in an embedded operating system. Performance in embedded systems may not necessarily indicate the raw speed of execution, FLOPS, etc. Each embedded device is different and unique in its performance requirements. More often than not, the performance requirements on embedded systems are more in comparison to a surgical knife than an electric saw. Embedded does not need the raw power rather it would require the nuances and clinical performance in specific areas.


Some of the performance requirements that I have faced in earlier projects and have seen great deal of discussions are as follows,

    1.  Boot up Performance
    2.  Performance
    3.  Real Time characteristics
    4.  Security

The requirement for instant power up has been a requirement in almost all embedded products that we have worked on. There are a lot of compromises to be made if we need to power up virtually in no time. However, Windows CE offers the flexibility to optimize the boot up time and in one particular case we had success to boot up Windows CE in 3~4 seconds flat. Being a small footprint OS and with all the flexibility it offered, Windows CE is doing just fine.


This kind of performance cannot be expected from the Windows 8 system for sure. Though Microsoft claims to have worked out on a reduced boot time, it has been implemented in Windows 8 by using the hibernate option. This may not be the best solution in embedded devices owing to all the extra hardware that may be required for implementing it.


One of the most important aspects of a faster boot up involves a minimum overhead. A smaller overall image size, fewer peripherals to be taken care of during boot up and a modular approach all go hand in hand with faster boot. So advantage Windows CE on these aspects.


Power Management is another concern that embedded devices always have. Most of these devices run on battery. Some of them run on places where power is limited. A few of them run even on solar power. All these devices require efficient power management implemented inside to support different configurable power states and management options. Windows CE does a great job in this section as it has an organized power management architecture which is so flexible and open. Even the whole power manager can be re-written to suit our needs. By managing device power states and system power states Windows CE manages transition between states in a simple effective manner. We have exploited the processor power management and have practically achieved the lowest power consumptions claimed by TI in their OMAP 3530 platforms with Windows CE 6.0.


Again expecting the same from Windows 8 with all its bells and whistles may not be right. Though we expect the power management of Windows 8 to be much better than its predecessors, it may not be as flexible as Windows CE and what many embedded devices may demand.


Windows CE is a hard real-time operating system...OK! There are endless debates on how Windows CE is not exactly hard real-time, claims and counter claims. In spite of all this, I have seen the real time characteristics in practice and have practically used the fine scheduling options, nested interrupts, etc. that Windows CE provides to solve problems and design efficient systems (the complete discussion on Windows CE Real time is an article in itself !!).


Windows 8 cannot boast of a real time performance and there is no reason why this feature would come into Windows 8 at all.


Security is of prime importance in any system, especially on an embedded system, which can do a lot of critical things where the effect on security would be a big concern. Windows historically has been not super strong against security threats and hacks. Again, Microsoft is doing all the right things to make Windows 8 super secure, yet, it would be the default hot target for security breaches as it would be the most used PC operating system. The Windows CE has addressed the security problems really well and devices running the same Windows CE may look completely different mainly because of the various platforms it supports and its super modular approach that helps the device developer to remove all unwanted and vulnerable components out of his build. A real embedded OS (Windows CE) is the answer to any security concern.


Cost and Support


At the end of it, it's about the money, honey!! …. This should have been the first point, isn't it? Windows CE offers its core licenses for sub $3 and has SKUs with a variety of combinations. The Windows 8 PC version is expected to be around $150. However embedded it gets, it's definitely going to be costly than the Windows CE pricing.


I would conclude by predicting,


"Microsoft Windows 8 can never be a replacement for Windows CE and it looks all the more impossible for the PC OS leader to bring out a unified operating system that would run in the smallest device and run on the most powerful servers as well. "

"Windows 8 may occupy a favorable position in the tablet market (which Windows CE did not have any market in the first place) giving Apple and Google a run for their money"

"Windows 8 would replace the Windows Embedded Standard 7, POS operating systems for X86 based systems"

About Author

Maharajan Veerabahu can be reached at maharajan@e-consystems.com and followed at https://twitter.com/econsystems
Here are his related links https://www.youtube.com/user/econsystems,