It’s not the size that counts…

I had an e-mail asking why someone would move from their existing 100kb operating system to Windows CE when the CE 6.0 kernel alone builds at about 300kb and the CE 6.0 image that meets the needs of the customer is about 1MB in size.

In many cases size isn't a good metric for comparison, perhaps features and functionality may be a better comparison, of course limiting size of an embedded operating system can be important depending on the type of embedded application you are building.

Assuming that the current embedded operating system lives in the 100kb size range I wonder what capabilities it has in terms of communication support - is there any support for personal area networking (bluetooth, IrDA), local area networking (Wired/Wireless lan, IPv4, IPv6, what about secure sockets), what about wide area networking (server technologies, FTP, RAS, HTTP, and client side technologies, RDP, VPN, PPTP) - and what about higher level functionality such as media player and codecs, internet browser, what about VoIP capabilities, networked media streaming, and the list goes on. Exactly what do you get for your 100kb? - Windows CE and Windows XP Embedded are componentized operating systems, so the more features you add from the catalog of components the larger the operating system size is going to be.

Microsoft offers a range of embedded operating systems which includes .NET Micro Framework, Windows CE, Windows XP Embedded, and Windows Embedded for Point of Service - you get to pick the operating system that fits the feature set, size, real-time, and processor needs for your device.

- Mike

Comments (4)

  1. tired dev says:

    If I understand the first sentence of you post correctly, the email you received claims that whatever functionality dev in question was able to cram into 100kb image with WinCE 5.0 takes 1MB image with WinCE 6.0. Furthermore, based on the fact that you did NOT claim this dev to be wrong in your post, I conclude that footprint-wise things really ARE that bad for WinCE 6.0. Neat-o.

    To make long story short, both flash and RAM are as pricey as ever (yes they ARE if doubling your device flash/RAM capacity means your income is cut by $2-50 MILLION per year!).

    Win WinCE 5.0 MS had A KIND OF reasonable offer for "constrained" devices (~$3-5 per device plus one-time fees), provided you didn’t get burned by one of core WinCE 5.0 bugs, didn’t mind the flaky and/or buggy bundled drivers and could work around 5.0’s many severe limitations. With claimed hard-RT support, in some cases that gave 5.0 a fighting chance against Green Hills/Wind River/etc offerings – pretty much on pricing alone. If things are as bad as your post makes them look (can’t tell myself as I won’t be touching WinCE 6.0 for a while yet), MS is likely to lose that market. And no, not EVERY device out there needs RDP, IPv6 and media player with WMV codecs.

    Time to dump the "CE" line and concentrate on "Windows Mobile"?

  2. mikehall says:

    hang on a second – I think you are mis-reading the post.

    The e-mail I recieved was asking about moving from an in-house operaitng system that builds at around 100kb but has limited functionality – the question was why they should consider moving to Windows CE from their home grown operating system.

    Windows CE 5.0 kernel builds are about 300kb, Windows CE 6.0 kernel builds are also about 300kb – size really hasn’t increased between CE 5.0 and CE 6.0.

    Of course we provide more functionality with each new release, in the form of operating system components, if you want to include these new features in your operating system image then this will of course impact the overall footprint of the operating system because you are adding new functionality.

    – Mike

  3. tired dev says:

    Oops. Sorry, Mike, looks like I indeed misread your post – I somehow assumed the guy was moving from WinCE 5.0. Must have been tired, or something… 😉

    But I’m afraid that doesn’t take away from the point I was trying to make in my post, which is that way too often (more often than not?) it IS the size that counts.

    Claiming support for everything + kitchen sink in one’s [whatever OS]-based device is  cute, but it’s a game of "he who dies with the most dollar bills stuffed under the mattress wins", and fat BOMs lead to skinny margins. I think you know that just as well as I do…

    I’m not saying that there’s no market for Maybachs, I’m just saying that the billions are made elsewhere.


  4. mikehall says:

    Claiming support for everything + kitchen sink is fine is "one size" (pun intended) fits all. In the case of Windows CE the operating system is componentized, this means that you can start with the 300kb kernel and only add the functionality that you need.

    In fact, there may be a number of factors to take into consideration for your device design – off the shelf hardware, compatability with existing applications and drivers may be important for your design – on the other hand building a custom board that only contains the hardware components that you need and generating a small footprint customized operating system may also be important.

    That’s why there’s a series of operating systems to choose from, starting from the .NET Micro Framework (400kb all up but with limited funcationality) through Windows CE that scales from 300kb through to about 18MB depending on which operating system features you need and Windows XP Embedded that starts at about 40MB and scales up to a full XP Pro install but is also perhaps one of the fastest ways to bring a device to market.

    Size can be important for some (but not all) embedded designs.

    – Mike

Skip to main content