I will NEVER use Windows CE or Windows XP Embedded !!!


That’s quite a strong statement, right ? – so why wouldn’t I use Windows CE or Windows XP Embedded ?

  • The operating systems are too big
  • There’s no support for real-time functionality
  • The operating systems are not secure
  • It’s too hard to configure an operating system for my needs
  • The tools are too expensive
  • Licencing costs are too high
  • There’s no support
  • There’s no driver support for my hardware
  • I don’t want my embedded device to look like Windows
  • There are no training materials available to assist me with my project
  • There are no partners to provide hardware, drivers, bootloaders, training
  • It’s hard to find engineers to work on my projects
  • It’s difficult to move developers from one platform to another.
  • There isn’t a Starbucks nearby

I think that just about covers it, there’s probably something I’ve missed off the list, and if you have something to add then let me know…

If the list above were true then I certainly wouldn’t be even remotely interested in using Windows CE or Windows XP Embedded – the list above covers some of the common perceptions that customers seem to have about Windows Embedded Operating Systems, so, let’s walk down the list and in true Mythbusters stlye deal with each of the perceptions in turn… (I have a feeling this is going to be a long post, so bear with me…)

Operating Systems are too big

The first thing to say here is that Windows CE and Windows XP Embedded are both componentized operating systems, so you get to pick and choose the parts of the operating system that are appropriate for the device you are building – Windows CE has around 500 components, Windows XP Embedded has around 12,000 components [about 9,000 components are device drivers, the rest of the components are operating system technologies].

Windows CE minimum build size is approximately 200KB, a residential gateway image would be about 4MB in size, this includes support for wired and wireless networking, remote administration UI (web server), a “PDA” like image which includes the Windows like shell, networking, RDP, Internet Browser, Media Player, COM/DCOM etc.. would be around 18MB – obviously this could be tuned for the specific application you are building.

Windows XP Embedded mimimum build size is approximately 5MB (this is a kernel only build, you can’t do anything useful with this image, but it does boot and run), an average image size for Windows XP Embedded would be around 40MB or above – this, of course is a lot smaller than a typical install of Windows XP Professional on the desktop – when building the operating system image you get to pick and choose which hardware and software components are needed in your platform – if you don’t need Media Player, DCOM, RPC, Internet Explorer, then don’t put them in your image!

No support for Real-Time Functionality.

I’m not sure why we get this one, Windows CE is designed to be a hard real-time operating system, the underlying operating system architecture is totally different to the Windows Desktop operating systems, take a look at the RTC Magazine article which discusses Windows CE real-time capabilities and the Dedicated Systems Performance Report for Windows CE 5.0

Windows XP Embedded is NOT a real-time operating system, but there are a number of 3rd party real-time extensions for Windows XP Embedded.

The operating systems are not secure.

 Windows CE 5.0 – you can totally lock down your operating system images to only run the code that you want on your system through implementation of OEMCertifyModule – Also, for Windows CE 5.0 all security features are turned on by default – take a look at the following article on WindowsForDevices that describes Windows CE Security Features – also, because Windows CE is a componentized operating system you only include the components and technologies that are required by your device – the other interesting thing is that Windows CE architecture is different to the desktop, on the desktop operating system there are three core components that are linked by any executable code, Kernel32, GDI32, User32 – none of these components exist on Windows CE, so even if your device is running on the x86 processor even a simple application like Notepad from the desktop won’t run on Windows CE (and this means that desktop viruses, worms etc… won’t run on Windows CE).

Windows XP Embedded SP2 – ok, where to start, (perhaps with the SP2 overview document) the first thing to say here is that Windows XP Embedded is a componentized operating system, so you get to choose which components are included in your operating system image, if you don’t need networking components such as MSMQ, DCOM, RPC or others then don’t include them in the operating system image. If you look back at some of the viruses/worms that have attacked the desktop these exploit RPC, DCOM, and other open ports on a PC – with Windows XP Embedded SP2 you have all the desktop SP2 security updates which include Firewall (all ports except port 80 are turned off by default), plus the inclusion of support for No Execute and detection of buffer overruns (both are explained in an interview with Joe Morris from the XPE team) – and support for anti-virus software from companies like Computer Associates and Trend Micro

It’s too hard to configure an operating system image for my needs.

Windows CE – The operating system is componentized, the operating system development tool (Platform Builder) ships with a wizard to assist with the initial platform configuration, the wizard contains 9 platform configurations ranging from “Kernel only” (200KB), Residential Gateway, Internet Appliance, and WebPad, these can be considered to be starting points for your design, you can add or remove features from the platform workspace, for example adding support for the .NET Compact Framework, or removing support for the HTTP Web Server – The platform development tool also gives you the ability to add your own custom applications and drivers. See the Windows CE tutorials for more information. Plus, the platform configurations can be extended by creating your own templates.

Windows CE ships with Production Quality drivers and BSP’s, so it’s easy to configure, build, test, and debug the operating system – the tools also ship with 2.5 Million lines of “shared source” which can be used to assist with platform bring-up, debugging and learning about the Windows CE operating system.

Windows XP Embedded – Windows XP Embedded is also a componentized operating system, similar to Windows XP Embedded there are a number of “starting point” templates that can assist with operating system development, this includes starting points for set top boxes, windows based terminals, internet appliances, and so on… You also have the ability to start from scratch and select from hardware or software components. The process of getting Windows XP Embedded up and running on a new platform is pretty straight forward, since the underlying hardware is x86 and PC architecture then you can run a tool that analyzes your hardware and produces an XML output file that contains a listing of the hardware of your reference board – with this XML definition you have the baseline hardware for your target board sorted, now you just layer one of the templates or individual software components on top of the hardware definition and then build the operating system – sounds simple, right ? – why, yes it is… follow the Windows XP Embedded Tutorials to see just how simple the process is.

The tools are too expensive

Ok, this is a simple one, Windows CE and Windows XP Embedded are available as FREE downloads from the Microsoft Web Site (let’s just spell that one more time, F R E E), go here for more information – once you’ve evaluated the operating systems and tools (which run for 120 days, and the Windows CE tools ship with the same 2.5 million lines of source as the full product) you would then purchase the full products, which at the time of this posting are $995.

Licensing costs are too high

Exactly when do you need to start purchasing licenses for your embedded operating systems? – simple, when you start shipping REAL PRODUCTS to your customers – you can use the evaluation edition tools (or the full product) to build and send test versions of your operating system image to customers without needing to license anything.

But how much are the operating system licenses ? – the following page shows the licensing costs for Windows CE and Windows XP Embedded (look towards the bottom of the page) – Windows CE has a “Core” license (which covers most of the operating system) for $3, and a Professional license for $16. Windows XP Embedded licenses are approx $90 per device. Again, note that you don’t need to purchase runtime licenses until you ship REAL PRODUCTS. So the cost of development is pretty low, development tools are FREE to download from the Microsoft Embedded web site and run for 120 days, then the full product is $995.

There’s no support

There are a number of ways to get support for Windows CE and Windows XP Embedded, this ranges from FREE support (notice the Free word being used yet again!), which includes newsgroups monitored by our partners and development teams, online chats  through to training courses, partners that can assist with development, and Microsoft Developer Support – the complete list of support options can be found on this site.

There’s no driver support for my hardware

Windows CE – Windows CE ships with at least one BSP (Board Support Package) for each supported processor [x86, ARM, MIPS, SH4], a complete list of BSP’s can be found here – One of the interesting aspects of Windows CE is the ability for hardware developers, system integrators and Silicon Vendors can extend the Windows CE catalog of components to add support for their own reference boards, BSP’s, and drivers – for a complete listing of drivers supported by Windows CE look here.

Windows XP Embedded – Windows XP Embedded ships with the same set of drivers as the desktop version of Windows XP Proffesional, that’s over 9,000 drivers available as individual components for Windows XP Embedded – the list can easily be extended through the Windows XP Embedded development tools, if you have a 3rd party driver for Windows 2000 or Windows XP this can be directly imported into the Windows XP Embedded catalog by importing the drivers .INF file. With the .INF file imported and the component checked into the component database you can use the new driver in exactly the same way as any other driver exposed in the development tools.

I don’t want my embedded device to look like Windows

Each embedded system has it’s own requirements for user interface, in some cases the embedded system may be headless, in which case the only user interface may be through a web based UI, building HTML/DHTML based UI is extremely flexible and gives the ability to have a completely custom look and feel for your remote UI – and in some cases an HTML UI may also be appropriate for a headed device, in which case you can use the Internet Explorer 6.0 application or ActiveX control for the user interface of your device.

One thing to think about here – on both Windows CE and Windows XP Embedded the shell can look and feel just like Windows desktop, Start Button, icons on the desktop, etc… But, in both cases the Windows Shell can be removed from the operating system completely, this gives you the ability to boot into your custom application, the end user of the device doesn’t need to see any Windows UI, won’t have access to a desktop (since there isn’t one), no access to the control panel (since there isn’t one), and so on… you can develop an application to become the shell of your device (Windows XP Embedded ships with a number of sample shells, Windows Explorer, Command Shell, TaskMan Shell).

There are no training materials available to assist me with my project

Training is available for both Windows CE and Windows XP Embedded – Windows XP Embedded training covers two days, Windows CE 5.0 training is available as a 5 day training course – check out the Windows Embedded Partners site to find your nearest training center

There are no partners to provide hardware, drivers, bootloaders, training

We have more partners than you can shake a stick at, somewhere close to 2,500 in over 50 countries at the last count – check out the Windows Embedded Partners web site to find a product, service or hardware partner to assist you with your next or current project.

It’s hard to find engineers to work on my projects

What do SPOT, Windows CE, and Windows XP Embedded all have in common? – they can all be programmed using C#, and a version of the Common Language Runtime (CLR) – Windows CE and Windows XP Embedded also expose Win32, MFC (Microsoft Foundation Classes), ATL (Active Template Libraries) – so if your developers have knowledge of Windows programming using Win32, MFC or ATL then they can be productive building applications for Windows CE and Windows XP Embedded – if your developers have managed application development experience then they can be productive on SPOT, Windows CE, and Windows XP Embedded – plus, there are over 6 Million developers world-wide that are trained on writing code for the Windows platform – there’s plenty of resource out there to assist you with your project.

Also interesting is the number of .NET Framework extensions being developed, just look at CodeProject and OpenNETCF.

Plus, engineers can easily be moved from a Windows CE project to a Windows XP Embedded project since they already know how to program against one of the platforms.

It’s difficult to move developers from one platform to another.

This is almost the same as the previous comment – if you have engineers that already know how to program on one Windows platform then they already know how to write code for Windows CE or Windows XP Embedded.

There isn’t a Starbucks nearby

ok, so it sucks to be you!  

There’s not much I can do about that one, perhaps you should consider ordering Starbucks coffee online?

So, why wouldn’t you use Windows CE or Windows XP Embedded ?

– Mike


Comments (71)

  1. why not write ONE THOUSAND DOLLARS in bold like you did "free", since that is the real price?

  2. Mike says:

    Because you only need to purchase the tools once you’ve fully evaluated the operating system and tools.

    – Mike

  3. tum says:

    XP embedded is way too expensive which is why many people just use XP home.

  4. Mike says:

    Just for my interest, how much would you pay for a Windows XP Embedded license ?

    – Mike

  5. " Because you only need to purchase the tools once you’ve fully evaluated the operating system and tools. "

    Wrong. You have to purchse after the trial period is up. The tools (according to your post) cost ONE THOUSAND DOLLARS, regardless of whether or not the trial period is free. Pretending that $995 is free isn’t exactly helping your cause.

  6. Mike says:

    Yes, correct, once the evaluation period has expired you do need to get the full products to continue development, which are $995 – do you feel that $995 is too much to pay for the Windows CE and Windows XP Embedded operating system development tools ?

    – Mike

  7. Though admittedly this is because we are the international team for Windows. 🙂

    The current toolset slices up language functionality in ways that are not entirely intuitive and is often quite restrictive.

    It is okay for when you control what the platform is becuse you are an OEM or are working with one, but its not so great if you are a developer and know you cannot provide solutions since you never know what the device will support.

    I know its not a core issue at the moment (it did not even rank higher than Starbucks!), but it will matter some day….

  8. Albert Trotter says:

    The ability to omit components in XPe would be nice. Unfortunately it’s such a "can of worms" it’s hard to do what you want. I can’t remember the dependency chain, but I’ve found it impossible to remove IE (something to do with help and page rendering if I remember correctly). And if you want to use C# of course you need the .net framework (fair enough) which pulls in all kinds of stuff, then you’re looking at 200M+ IME –

    Albert

    (All the same, we’re still using it!)

  9. Mike Hall says he will never use Windows CE or XP Embedded again. Which is tough, since he’s employed by Microsoft Corp. as part of their Windows CE and XP Embedded team. Actually, the article debunks popular myths and arguments…

  10. We prototyped a bar-top game with an Intel mobo, our IDE to CF adaptor, a touch-screen and bill acceptor using XPe about a year ago. The initial learning curve was rather steep, but we did eventually get it to work. At that time, there were some issues with the EWF component and CF cards, and also some problems with incorporating the touch screen drivers into the install. However, we were able to run several DirectX based games developed on the PC on the prototypes. The customer did balk at the $90/unit price for the OS, not having to ever pay for any commercial embedded software previously. Doesn’t matter now as they are out of business…

  11. Peter da Silva says:

    "Windows CE minimum build size is approximately 200KB"

    This is about the size of a minimum Debian build. It’s pretty hefty for a RTOS.

    "Windows XP Embedded mimimum build size is approximately 5MB"

    This is simply humungous for an embedded OS. I have a couple of FreeBSD-based "thin servers" still doing routing, DNS/DHCP, and firewalling for training subnets. One of them has 5M RAM total, and FreeBSD makes no attempt to claim it’s an embedded system.

    "Windows XP Embedded licenses are approx $90 per device."

    This would be why people aren’t considering XP Embedded for low-cost systems.

    "do you feel that $995 is too much to pay for the Windows CE and Windows XP Embedded operating system development tools"

    Yes.

    What do you do if your product is supposed to be customizable and extensible by *your* customer? Sell them a $300 console then ask them to fork over another grand so they can customise it? Tell them to write their apps in VB or Jscript?

    The smartest thing Microsoft did to promote the Pocket PC was to release a free version of the development tools customised for that platform.

    If someone other than Microsoft wants to do something like that, well, that’s when you start looking at things like embedded Linux…

  12. - says:

    I’ll reverse the question – "Why should I use Windows CE"?

  13. "do you feel that $995 is too much to pay for the Windows CE and Windows XP Embedded operating system development tools ? "

    Well, the objection you were responding so dishonestly to was "The tools are too expensive". You try to pretend that they are free (in big bold caps) when the price is $995. If you want to say that $995 isn’t too expensive, then say that, don’t pretend they are free. They are only free for a limited time. If someone actually wants to use them, they pay $995, they are only free if you decide to stop using them during the trial. People who decide to not use the product aren’t the ones you’re trying to reach here. You’re trying to reach the ones who want to use the product by think $995 is too high. Instead of countering that argument, you act like a shady used car sales man ("this car isn’t too expensive! The test drive is FREE! You only have to pay if you want to keep the car!")

    Do I personally think $995 is too high? Depends on whether those tools are included with an MSDN subscription. If they are, then yes, $995 is WAY too expensive and I would never consider paying that much, I would use the MSDN subscription. If the tools are not included in MSDN Universal, then $995 is probably more than I would pay, but I also have no confidence in your numbers, you have proven yourself to be a little less than honest about pricing.

  14. Mike says:

    to answer the question "why would I use Windows CE", there are a number of reasons…

    small footprint (200kb and up)

    hard real-time support

    support for PAN, LAN, WAN networking

    combination of client and server technologies

    support for .NET Compact Framework (rapid application development)

    great development and debugging tools

    support for multi-lingual user interface technologies

    and the list goes on…

    I’m more interested in why you wouldn’t consider using the O/S

    – Mike

  15. Mike says:

    Shannon,

    I clearly stated that the tools cost $995, and that the evaluation tools run for 120 days, I don’t see how I’m covering up anything here, yes, I did bold the fact that the evaluation tools are free, but I see that having the tools available to you to try out is a good thing, right? – you (that’s you), get to try out the operating system development tools without having to shell out a bean.

    If you decide that CE or XPE are the right choice for your development project then you purchase the full product.

    The Embedded development tools don’t ship on MSDN because they are OEM licensed products, this is another reason to the have tools as FREE downloads from the MSDN/Embedded web site.

    – Mike

  16. Mike says:

    so let me ask this question…

    is the barrier for using Windows CE or Windows XP Embedded a cost issue or a technology issue ?

    – Mike

  17. Kris says:

    I recently took an embedded course – using HC12(16 bit proc) and the instructor taught the entire course using GNU set of tools. Infact the entire kernel was built from scratch. Never once in the course did the instructor mention about CE or XP Embedded when he talked about the existing OSes in the market and how each one handles certain realtime aspects. It doesnt suprise me cos most of the folks from the Unix side of the fence share a certain animosity towards MS. This is nothing new and very natural for them. And most of the Embedded OSes have a Unix leaning and hence most of the Embedded devlopers buy into that frameset. I have downloaded the Embedded Evaluation kit and am playing with it. Thanks for your Go Virtual articles! Have to say it is an awesome piece of software. Ofcourse it doesnt suit all the Embedded applications (certainly not for microwaves and washing machines!), but does certainly have its niche market.

    My observation is that it is tough to woo the folks from the Unix side of the fence, given their reluctance to accept anything from MS irrespective of its merits. Just so you know, I am not a Unix basher as I began my career in NCR Unix and to this day love Linux. I think you should target the new developers who have not yet been initiated into the Unix world of ideas and idealogy. Towards that effect, you should put out more case studies rather than showing off stuff on Channel 9, which many developers dont even know exist. For instance why not have a logo on the products "Built with CE" to convince ordinary business folks/incipient developers that it is a relevant technology. Make them realize what it comes with – an entire suite of technologies (Windows Media, RTC, Terminal Services, .NET) and the amazing potential these technologies carry in conjunction with the Embedded world. When you try to whet the appetite of the developers use an old PC when you build an embedded system so folks dont think it is going to cost them a gazillion to build a simple Embedded system (and most of the developers have one laying around) and try to publish them on MSDN magazine rather than Channel 9.

    The technology is already there and it is just a matter of selling it and letting developers/managers/industry embrace it. Just my 2c….

  18. jdq says:

    This is a serious question: What can Windows CE/Embedded do that embedded linux (uClinux) can’t?

  19. Anonymous says:

    Mike, $995 kills hobbyist market. CE is PERFECT for small home projects like picture frame, multimedia player, small TV, smart remote control, car multimedia, navigation computer, you name it. NO hobbyist will pay $995. You are pushing people to Embedded Linux. Why? Why everything has to be for corporations? Visual Stidio woke up and is back to hobbyist/student market: it is going to ship Express versions which supposedly will cost very little. CE should do the same. People complain in blogs that Microsoft is not cool anymore. Well, make masses to make cool things with Windows!

  20. Anonymous says:

    I would pay $49 (yes, forty nine) dollars for a SINGLE license of CE or embedded XP. I only need it for a SINGLE home device I’d like to work on. VS support should be below $50 or, better, CE SDK should come free with Visual Studio C# Express (or C++ or whatever).

  21. Mike says:

    Anon,

    For the home/hobbyist area you don’t need to license the Windows CE operating system – you can build I think it’s 10 devices (from memory) for home/hobbyist use without needing a license.

    So, let me ask this, for the home/hobbyist space, what processor(s) would you need to be supported, just x86 (since you can get some pretty low cost boards), or would you also need support for ARM, MIPS, and SH4 ?

    – Mike

  22. Mike says:

    jdq,

    let me do some research on what uClinux provides – I will get back to you shortly.

    – Mike

  23. Mike says:

    Anon (express kit comment),

    If you look at the Windows CE 5.0 product as it currently stands, what functionality would you remove to make an express product, or, to put this another way, what is the ‘core’ functionality that you must have to make a Windows CE "Express" product usable in the academic and hobbyist space ?

    – Mike

  24. Anonymous says:

    XP Home is $79 on Amazon with full functionality. XP Pro can be found fo around $149, I guess. So I am not sure if any functionality should be removed from CE. Maybe it should only support x86. Otherwise it is yet another Windows, why pricing should be significantly different when we are talking about just a few licenses?

    SDK, however, should be free. VS should not be required, after all, I can program for Windows with .NET SDK which includes C# and VB compilers.

    There is another market: assorted semi-custom devices that small companies produce in small quantities: car computers (which are currently XP based), smart remote controls, kitchen web browsers based on WebPads (like Siemens SimPad SL4), wireless media devices, assorted X10 devices, etc.

  25. Mike says:

    I’ve taken a look at a couple of uClinux sites, this appears to be a linux core that runs on processors that don’t require a MMU. What I don’t see on the sites are a list of supported technologies.

    Let me get a list of Windows CE supported technologies and we can compare from there…

    – Mike

  26. Mike says:

    ok, so to give you some idea of the capabilities of Windows CE 5.0 take a look at the following web page – http://msdn.microsoft.com/library/en-us/wcefeatures5/html/wce50oriWindowsCEFeatures.asp

    Windows CE supports a range of technologies and services out of the box, including real-time, networking which includes Bluetooth and IrDA, 802.11 (wired and wireless a/b/g), dial up networking, VPN, PPTP, RDP, FTP Server, DirectX, Telnet, media player, internet browser, web server, COM, DCOM, SOAP, XML, VoIP, Internationalization, and so forth – the list is quite extensive. I will see if I can get an extensive list together for you…

    What technologies are supported by uClinux ?

    – Mike

  27. Anonymous says:

    Well, XP home supports almost all of that for $79 except, I guess, realtime, multiple CPU types and IIS. IIS comes with Pro, so you can exclude server capabilities. However, you may not want to since Apache will be waiting.

    How’s about $49 per single license for each CPU type? I.e. want SH4 and x86 – that would be $96. Personal, non-commercial use only. Low-volume (< 1000 units) commercial may be another licensing scheme.

  28. Eric says:

    "$995.00" equals "The tools are too expensive."

    *Doesn’t matter* if they’re free for the first 120 days. After that, they’re

    T O O E X P E N S I V E.

    Maybe if the rest of the world were as rich as Microsoft employees, we’d all run around saying "$995? That’s pocketchange! I’ll take a dozen."

  29. Eric says:

    Here’s a thought that I’m sure hasn’t occurred to those in Redmond:

    Just because I want to program doesn’t mean I’m backed by the development budget of a nice, large corporation.

    I’m just a guy, spending his own money, who wants to make stuff to run on my hardware. Not necessarily stuff to sell, but just to get stuff done.

  30. Mike says:

    Eric,

    That’s why the Windows CE EULA (does anyone read these?) allows for hobbyists to generate up to 10 operating systems for their own use without needing to license the images.

    Note: even though the evaluation tools time out after 120 days the Windows CE operating system image does not time out – of course the operating system image won’t be stamped with a license key, so can’t be used for commercial use, but that’s another issue, right ?

    "Just because I want to program doesn’t mean I’m backed by the development budget of a nice, large corporation." – Correct, which is why the Windows CE operating system images don’t time out.

    What types of projects would you work on as a ‘hobbyist’ with Windows CE that would require the tools to run beyond 120 days ?

    – Mike

  31. Anonymous says:

    I often too busy to get to my projects for weeks. And anyway, hobby is a long process. Usually people spend *years* on it, some projects run for quite some time. Then, even after project is complete, you still may want to tweak it, improve, add a few more features.

    All this is somewhat irrelevant though. I can get XP Home + VS Express for less than, I guess, $200. and IT NEVER EXPIRES. Why CE is different? Hell, SQL Express is coming to hobbyist market!

    So, no matter what you say, as long as tools are $995, I’ll stick with XP or, if I need small diskless system, I’ll spend time learning Embedded Linux. Sorry.

  32. Arun Thomas says:

    Mike,

    I must take exception to your response to: "It’s too hard to configure an operating system image for my needs." While I agree that the initial process of getting _something_ up and running on new hardware is quite straight-forward, configuring the _something_ for specific needs is mindnumbing.

    My company even hired a contractor (a former member of the MS XPE team) to help us out, assuming we were just not having much luck learning the tools. His training towards minimizing image size / resource requirements was to this effect: Yeah, you’ve got to do it this way – go through item by item, take it out, build an image, see if it works. Repeat.

    The tools specifically do NOT manage dependencies well – expanding to a "working image" is all well and good as a first step, but reducing that image size moving forward is pure grunt work – first component by component, and then file by file within components.

    I also think that no-one has taken the time or energy to draw a dependency graph for all these components. I’ve run into at least one circular dependency – the only way to deal with it was to find all three components and take them out simultaneously; unfortunately, one of them was a dependency of a bunch of other components and took some time to successfully remove from the image.

    I also think the help facilities are awful. I’m a user and a fan of MS’s desktop tools – the help, at this stage in the lifecycle, is quite good enough. However, the XPE help leaves much to be desired – there are, as you noted, 12,000+ components. However, for the life of me, I can’t tell you what most of those components do, why they’re pulled into a particular image, whether I can safely take it out, or anything like that. Further, while it’s wonderful to speak in terms of components, when components are insufficiently fine grained, the help also needs to include detailed descriptions of the files pulled in by each component; some of these are quite large and require significant storage. If the functionality supported by those dlls is unnecessary, they need to be easily identifiable and removable.

    Any suggestions, besides the newsgroups, on how to get better explanation for what exactly a component/file is/does?

  33. Dan McCarty says:

    It seems that most of the "$995 is way too much" comments come from the hobbyist programmers, and I agree that the 4-month eval timeframe is definitely too short for that.

    But I haven’t seen any comments from corporate programmers about this. Either they don’t read this blog or they read it but didn’t care to leave a comment. So, let me just say this:

    WinCE is a hell of a lot cheaper than any of the other embedded RTOS products out there. (I’m not including any Linux-deritive distros as real-time products, so include that in your bias-o-meter.) We used a product called Zinc for many years, which was bought by WindRiver. They recently sold it to another company, and to _upgrade_ from v4 to v5 was going to cost us about $5K per developer.

    We also looked at VxWorks and it would’ve cost us several multiples of that.

    WinCE, in comparison, will cost us about $995 for every developer that needs Platform Builder, which is exactly 1. eVC is free, and our WinCE core license will cost us $3. That’s even cheaper than the $33 we were paying for MS-DOS (!!) licenses.

  34. Mike says:

    Dan,

    Thanks for jumping in, I’d like to see more adoption of Windows CE in the hobbyist space (I play around with CE all the time to build NAS boxes, electronic picture frames, and other interesting things).

    You are spot on with your assesment of Windows CE in the commercial embedded operating system space – and I’d certainly like to see comments from people that decided to use Windows CE (and their reasons for using CE), and from people that decided to use ‘other’ operating systems for their commercial products, and their reasons why.

    – Mike

  35. Mike says:

    Arun,

    The Windows XP Embedded tools do provide a set of starting point templates, if these don’t match your needs then it can be time consuming to cut down a workspace to match your needs.

    Can you tell me what the circular dependency was that you encountered ?

    What do you think is the biggest problem ? – knowing the o/s dependencies, or something else ?

    – Mike

  36. Silvano says:

    When i read comments about prices of WinCE and WinXPe i just wonder if you guys knows about the embedded market…

    Have you ever looked at products like QNX or VxWorks, or any other SERIOUS and well respected product in the market??

    And what’s the answer? Free sw? Embedded Linux? Come on… no jokes here…

  37. Mike says:

    Hmm, now that’s an interesting comment – you wonder whether Microsoft knows the embedded market – let’s take a look at the VDC findings for operating system vendors for CY 2003- http://www.windowsfordevices.com/news/NS7934050250.html

    Venture Development Corp. (VDC) has released its findings regarding the leading embedded software vendors for 2003. In ranked order, the top five vendors of embedded operating systems, bundled products, and related services for 2003 were: Microsoft (#1), Wind River (#2), PalmSource (#3), Symbian (#4), and Green Hills Software (#5).

    Microsoft has been building and releasing operating systems for more than 25 years, many of these operating systems have been used in embedded systems (ATM’s, RPOS, etc…), we have been working on Windows CE since 1993 and released the first embedded device in 1996 – Windows CE is released with new features based on customer and partner requests (and internal feature group requsts).

    – Mike

  38. Arun Thomas says:

    Mike,

    The biggest advantage that I saw with XPE was the ability to use a standard Win32 development environment and, assuming the appropriate components are assembled into the image, expect the application to work correctly. Application development is significantly easier.

    However, most embedded environments need to minimize requirements in both RAM and storage. XPE is not the best choice for that, but probably among the best that also provide the advantage noted above. Unfortunately, as I noted, although XPE does provide some templates, the templates quickly ramp up to be relatively heavy in both RAM and storage – not a good thing.

    I think I marked down the two areas that drove me batty during the image build process – component/file inter-dependencies, and lack of documentation.

    I’ll look to see if I can find my notes on that circular dependency that I encountered. I believe someone here already noted one of the circular dependencies that exist in the component heirarchy – IE depends on the help system which depends on IE – however, I did run into another that was slightly more complex to decipher.

  39. Mike says:

    Thanks Arun,

    I’d be interested to get your feedback on the circular dependency.

    You’re right that XPE is not the best choice for small footprint and memory constrained devices, which is exactly why we also have Windows CE as a small footprint operating system which has excellent power management, real-time support etc…

    There is a definate trade-off to be made when choosing the operating system – XPE has 9,000 device drivers, so getting hardware up and running is simple, plus support for Win32, MFC, and managed code – XPE is fast to get up and running.

    CE on the other hand is typically built on custom hardware for devices that are hardware or software constrained.

    – Mike

  40. Brian says:

    BTW, regarding the training link you provided above: http://msdn.microsoft.com/embedded/usewinemb/ce/techrsrc/train/default.aspx

    This search tool has provided the same error/try-later message for well over a month…

  41. Mike says:

    Hmm, the link appears to be working just fine for me.

    – Mike

  42. Brian says:

    I suppose its not a problem then… Pilot error perhaps?

    I select All Products, All Delivery Formats, English and press the Search button. The end result is this: http://www.microsoft.com/traincert/training/find/dbCatch.asp?error=1001

    with the text: "No Results Found — We apologize for the error that you are experiencing. The error is a result of temporary network problems. We are working to resolve this problem as quickly as possible. Please try again later."

    I tried Firefox and Explorer from separate PCs with the same result.

  43. Rich says:

    Looking for a realtime embedded OS look at http://www.fsmlabs.com. They make RealTime Linux. I was going to give WinCE a trying before I found rtlinux. No offense but I know alot more about *nix than windows and I trust them alot more (don’t wanna blue screen my homemade effects processor).

  44. Mike says:

    Hi Rich,

    two things jump out at me from your comment, the first is the comment about real-time linux, see my posting here (http://blogs.msdn.com/mikehall/archive/2004/08/18/216601.aspx) for comments from karim yaghmour (author of Building Embedded Linux book) about real-time Linux – I’d be interested in how much real-time response you get from linux, especially because the operating system architecture is primarily designed to be a server operating system which doesn’t need real-time response.

    Also, when have you ever seen a Windows CE device blue-screen ?

    – Mike

  45. David says:

    I’m glad I found the link to this page, and I’d like to sound off on the "too expensive angle", and provide an opinion on what to do about it. First I’d like to say that the costs per-box-shipped are not terribly out of line, the features are good, but the problem for me is the development tool time-out period.

    I would like to use winCE or XPe. I need small footprints, and a reasonable feature set. I’m comfortable with windows (C,C++,MFC,ETC..) programming, RT is not always a concern. These are right up winCE’s/XPe’s alley.

    However, the development tools for the linux variants (compilers, IDE’s, images)– can be had (in one form or another) for free –forever–. There are non-free tools too. There is an extensive network of developers, training, and applications as well. Aside from the availibity of free tools, all things are fairly equal, until …

    If I’m going to really evaluate a tool, I’ll have to at least (try to) complete a project with it– the project probably will not be a ‘front-burner’. The end result–if the development team does finish it, will be a project that is orphaned by the software.

    Example: Finish project os/sw/hw after 3-4 months. 2 months later the hardware changes for another evaluation run or hardware update/addition …. I cannot update the OS image without paying at least $1k. I still have not shipped a product, and I’ve just spent $1k (usually enough for 1-3 hardware prototypes) — How can I justify even a trial run when I can do the same thing with the free tools– and not be out the $1k? Assuming that everything does go smoothly, and the prototype is acceptabe, naturally, the $1k pricetage is acceptable to keep supporting such a device (or would I have to get every seat that worked on the project?).

    I’d like to see at least a ‘crippled’ version for of the tools that is not time limited for <$200. The features to cull would be quite hard to pick. Personally, I think that x86 processor support would be a good thing to leave in, this would provide a good ‘tinker’ environment for the developer. Or perhaps some sort of hardware key for the targeted device (some sort of USB/serial port dongle)? This would limit the number of ‘runnable’ images (to the # of dongles available), while not restricting the development environment…

    Thanks for the information and your time!

  46. 下载 says:

    Friends ask me what’s going on and I tell them to check my blog. Ya know that annoying "year in review mail" you get from an uncle? That should be a blog. I don’t know about the new email address, but surely, a business card. A "Google and you’ll find me." Maybe save a local copy of your blog to a usb keying and give that to someone. Where you did hit it, is that outside off the blogsphere, no one knows, or cares, about them. And why should they? It’ll mature into another media type. For years before I started using MT, my site was just a personal site. I wrote about this a bit on my blog, in regards to the blogging for business panel, managers still think blogging is writing about your love of cats or dogs.

    http://www.52z.com http://www.k198.com http://www.fxsw.net

  47. mob says:

    Any idea when the new Win eXP POS (Point of Service) release will be available?

  48. Mike says:

    Windows Embedded for Point of Service will be available before the end of this first half of 2005, look out for more information about this on the Windows Embedded web site http://msdn.microsoft.com/embedded – and on this blog !

    – Mike

  49. Jon says:

    I’d have to agree with the tool timeout issue. The cost of $1000 is acceptable if I’m going to be releasing a product for someone that I must support as a contractor. But to pay $1000 just to try to keep developing a potential project for an indecisive customer? I won’t do it.

    I have no problem with paying license fees or a $1000 fee for having used things if I actually release a product. But to road to get there shouldn’t cost that much.

    It also makes me look at linux solutions for my small home projects because the tools won’t time out on me before I get my little things done that I wanted around the house. But now I have to know both systems. Which is an annoyance to say the least.

  50. I’d like to add one more comment specifically for Arun and his concerns – the documentation for XPE (specifically what each component is for, what it depends on, what it contains, etc) has been pretty deficient in the past. I think we’ve done a pretty good job of beefing up the documentation with the recent release of XP Embedded SP2. I encourage you to check it out by going to http://go.microsoft.com/fwlink/?linkid=38214.

    Of course we recognize that we still have a ways to go but I think we’re heading in the right direction and made some big improvements in SP2.

  51. Jon Fincher says:

    One comment on the price point for XPE (which is also $995 for the full version tools). The XPE Eval tools can be used by anyone forever – they never timeout. The runtimes generated by those tools do timeout after 120 days, but the tools and underlyign DB are forever (well, until your next FDISK/FORMAT), and you can build as many XPE images as you want with them. If your test image times out, build another one, or redeploy the one you built initially.

  52. Recently remembered this post from Mike Hall’s blog a while back ( http://blogs.msdn.com/mikehall/archive/2004/12/22/331034.aspx