Choosing an Embedded OS for Sustainability? 68
vivekb asks: "I work for a small start-up that's building its first commercial product. Because cost is less of an issue than development time, we've decided to make the brains out of an ETX computer with some sort of (non-realtime) operating system. Based on initial costs of tools and estimated license fees, the cheapest OS's I've found are Windows CE and several offerings of Linux. The big question that I can't answer is, 'How much will these platforms cost in sustaining activities?' In three years, when we're fixing bugs or applying patches, how much will we be paying vendors and how much will we be spending on internal developers? When the Linux kernel is at version 3.0 and our device is still running 2.6 -- or when CE reaches .INFO and we're still at .NET -- will support even be available? If anyone has past experience picking an embedded OS for a screen-and-button based electronic device, what did you learn to stick with or avoid?"
Are you for real? (Score:5, Funny)
There are other ebedded OS besides Linux (Score:2)
VM/370 (Score:2, Funny)
I shouldn't do this but... (Score:1, Flamebait)
Hmm.. (Score:3, Insightful)
Tsume
Linux for Longevity. (Score:3, Insightful)
Keep in mind, that if code security is an issue, Linux may not be an answer since any kernel changes has to be available for public use. If no kernel changes have to be made for your app however, I don't think it would be a problem however IANAL. Other people here could answer this question a lot better than I could.
Re:Linux for Longevity. (Score:1)
Re:Linux for Longevity. (Score:3, Informative)
Limbo, its language, is c-derived, but safe. The network model makes sense. And it's mature as an embedded platform.
Re:Linux for Longevity. (Score:2)
The only issue are still device drivers, that is always the achilles heel of open source. MS does a good job of helping certain companies not rele
Re:Linux for Longevity. (Score:2)
Keep in mind too that if they decide to change hardware platforms then they can fix bugs in the old code that make prevent them from doing the port if the cost of taking the new kernel is too expensive.
Re:Linux for Longevity. (Score:1)
I don't recommend Windows CE for obvious reasons. It is expensi
Hire An Expert (Score:3, Interesting)
Re:Hire An Expert (Score:4, Informative)
There is a lot of truth to this. A few years ago, I joined a project team after development had been underway for a while. Most of the people had no embedded experience, and I had to spend a lot of time redoing things that would have been OK on a general purpose system, but were nightmares under an RTOS. There a lot of programming fields where speciality and experience matter, and embedded systems is one of them.
Re:Hire An Expert (Score:1)
You just described why Linux can never suffice as an embedded RTOS. Too many 'general purpose' fingers in the code. I have seen this in the past as well.
Re:Hire An Expert (Score:2)
Based on cost, board support and driver avail
Re:Hire An Expert (Score:2, Informative)
Microsoft offers a minimum of 5 years support for Windows CE. Beyond that you can get up to 5 more years support (at additional cost). Click here [microsoft.com] to read more about how we support Windows CE.
We're active on the newsgroups as well, as are many of the more experience developers who've used CE in their products.
I'm not familiar with ETX hardware, but we have excellent support for x86-based CPUs and the usual peripherals. You can even add device drivers to
Re:Hire An Expert (Score:1)
You're asking him to spend time checking out an OS put out by a company with very limited experience wrt developing embedded OS's. Remember, "Time is the most valuable thing a man can spend. -- Th
Re:Hire An Expert (Score:1)
Very limited experience with developing an RTOS? CE has been in the field for 10 years.
No experience with the other options? Do you think Microsoft hires people who are ignorant of their own field? Speaking only for myself, I was a firmware developer in the cellular industry prior to coming here, and have a long background in Unix and non-MS embedded systems. Many of us do.
Tools download - actually the tools are substantial. I'd order the DVD or set of CDs, but I know some folks would rat
Re:Hire An Expert (Score:1)
That was i
Re:Hire An Expert (Score:2)
Device Drivers (Score:4, Insightful)
I would pick the OS based on whichever has the best device driver support for everything in your product. Device driver development can chew up a lot of time. You would be better off spending resource time on the application layer of the product.
Source code (Score:3, Insightful)
So of the two you've listed, clearly Linux would be your choice. Plus, don't forget that Microsoft's embedded OSes reinvent themselves every few years - just wait until they throw out CE and sell you Vista Embedded next year.
There are other choices based on the size/scale of your project - such as Nucleus, which gives you source access.
Re:Source code (Score:2)
Re:Source code (Score:1)
The majority of the Windows CE source code is available (2.5+ million lines). It's free and there are no restrictions. Code includes:
Explorer Shell
HTTP Web Server
SOAP and uPNP Protocol Implementations
UPnP AV toolkit
Infrared Data Association protocol
Dynamic Host Configuration Protocol V6 Lite (DHCPV6)
Wireless Network Drivers, including Blu
Windows CE Source Code (Score:2)
Free. Kinda levels the playing field.
Re:Windows CE Source Code (Score:1)
Half-truths are sometimes worse than the whole truth.
True: Shared source code is free, apparently without restrictions.
Also true: You need to buy a runtime license for each and every device that you ship.[1]
[1]: From the webpage you link to:
"A valid Windows CE 5.0 runtime license must be purchased for each Windows CE 5.0 derivative work prior to distribution.".
From link to "How to Buy Windows Embedded Operating Systems" [microsoft.com] on the same page:
"Step 4
Acquire runtime licenses f
Re:Windows CE Source Code (Score:2)
Re:Source code (Score:2)
Microsoft have been selling CE for some time now and show no sign of throwing it out. Embedded NT/2000/XP have been parallel offerings for those who are willing to have a much bigger system - only marginally "embedded", really just a customised desktop build.
They do release new versions of CE and mostly forget about the old one, but the new ones are pretty much straight supersets of the old, with quibbles. Since with
Nucleus from Mentor Graphics (Score:1, Informative)
What you need to do is list out the features you want from an OS. Once you have that, a quick visit to the web sites of various OS vendors should help you quickly narrow your list down to a dozen or so. When I had to make this decision, I found the vendors were happy to send me API documentation, programming manuals, and in some cases, an evaluation copy of the OS itself.
I
Re:Nucleus from Mentor Graphics (Score:1, Interesting)
You really can't go wrong with Linux, but that can not be said for all other OSes, though some come close.
You can always fall back to the most used OS in the world
Re:Nucleus from Mentor Graphics (Score:2)
BTW, Nucleus Plus (scheduler) may be very good, but Nucleus File (their FAT filesystem extension), is pretty fucking bad. It is slow, buggy, and extremely lacking (silly things like assumi
Linux (Score:1)
Linux (Score:2)
Now if you need hard realtime capabilities, neither. Use QNX, VxWorks, or ThreadX. Just be prepared to pay. And pay. And pay.
Re:Linux (Score:2)
Re:Linux (Score:1)
Why not? Ever heared of Xenomai [gna.org]? With Xenomai (formerly kown as RTAI-fusion) you can write user-space apps in Linux that can switch hard real-time mode on or off seamlessly. You can basically forget about VxWorks, QNX and other hard-RTOS's, since Xenomai has API "skins", that can be used to run software written for your favorite RTOS directly on Linux; just as reliable and predictable, with truely deterministic real-time behaviour. If your favorite RTOS
QNX (Score:2)
I have no idea what the prices are, but it is reportedly the most superstable embedded platform available.
If I were building embedded devices for critical medical applications, I suspect QNX would be my only choice.
For less critical applications, I'd still keep it in mind.
Re:QNX (Score:2)
But, sadly, I wouldn't recommend QNX for a new startup that doesn't absolutely need hard real time. Since QNX was acquired by Harmon (the
Re:QNX (Score:1)
The lead architect of QNX died about two years ago, and there's been a brainpower exodus since then.
If you're talking about Dan Hildebrand, it was more than two years. I'm pretty sure it was 1998. He was the man that first got me onto *nixish systems when he installed a 'demo' version of QNX on my old 286 (AT) way back in the day when he still lived here (Winnipeg).
Re:QNX (Score:1)
Yeah, it was 1998. Here's his page at qnx.com mentioning his death. [archive.org] I remember finding it out on IRC when I saw someone from qnx.com on one of the distributed.net channels. I asked about how H was and he said he died a few days before.
Dang that was a sad day.
I've done both professionally (Score:1)
Simply speaking, you will get no support from Microsoft without dumping bucket loads of cash & if it isn't the latest release of the OS then you have no hope at all. The MS newsgroups are many times poorer for support than Linux mailing lists.
At least with Linux you can hire someone to work on old code, because you have the code!
MS onl
Figure out your requirements first (Score:5, Insightful)
Are there realtime requirements? Do you know what hardware will be used, or will you need to support different kinds of displays, for example? What are the reliability requirements -- will this be used in life-critical applications, or will it be used for games? Will you want to upgrade to the latest version of the OS from time to time, or will you pick a good one and make zillions of copies of your product based on that one version? I'm sure there are other questions you should be asking yourself (help me, fellow Slashdotters).
Figure out your requirements first, then figure out how to meet those requirements. Don't just pick a solution and then try to make it fit.
QNX or one of the BSD's? (Score:2, Informative)
What is sustainability? (Score:1, Flamebait)
Linux for example will run for a long time while support for it (as in knowledgeable people) will remain available. I think 20 years later people will still be easily capable of fixing kernel 2.6 issues. How many people do you know know how to fix issues with windows 3.1?
If you want the OS to change very little over time, BSDs are better at that. Expect OpenBSD to be around and to change little in 20-30 years. It'll change enough to accommodate the new hardware etc but thats it. How
Re:What is sustainability? (Score:1)
How about DOS? (Score:3, Interesting)
Re:How about DOS? (Score:2, Funny)
closed vs. open comparison (Score:1)
Microsoft moves their "A" team to the latest version of their OS. In your example, you will be left with "B" (or "C") team support resources. I worked on a CE device from 2.1 through 4.0beta; there is no realistic option but to move forward in lockstep with MS.
With Linux, you can still find support for the 2.4 kernel, and products are still moving to 2.6. Transitions can be managed at your pace; you can have all of your platform's source code in revision control, building everything from scratch indef
Micrium uC/OS, it's free (Score:1)
Re:Micrium uC/OS, it's free (Score:2)
Re:Micrium uC/OS, it's free (Score:1)
Re:Micrium uC/OS, it's free (Score:1)
It presented me with a page with a big blank white screen and nothing on the screen.
I am browsing from a NetBSD machine using a current version of Mozilla.
I have to assume that the web page is supposed to load some sort of Flash animation and/or proprietary mess that I don't have a 'helper' installed to make work.
They expect to IMPRESS people with a home page like that? They think they will get CUSTOMERS that way? Without even providing a 'bail out of the bullshit and take me to
WinCE (Score:2)
Windows CE is actually fairly cheap now if you go for the basic version - that is kernal-level only, no GUI or desktop - only about $3 per unit. Sure in cost sensitive cases that could still be an issue but for most specialist apps it's not significant.
You do have to buy Platform Builder for around US$700, but that's one off. And you can get a free 30-day eval to see if you like it.
WinCE is basically really
Rules to consider (Score:1)
#2 - Over time licensing costs will add more to the price of your product then you think. Get a flat fee license arrangement so that your license cost is fixed for the life of the product. Or use a no-license fee needed platform
#3 - Note that the Linux Kernel development path is maturing and slowing down. 2.6 is very featureful and will be an ok place to be for a long time.
#4 - Securit
Not a problem which should be solved (Score:2, Insightful)
MOD PARENT UP! (Score:2)
Re:MOD PARENT UP! (Score:1)
Re:Not a problem which should be solved (Score:2, Insightful)
If your embedded OS goes into a home appliance or some stand-alone application, your experience holds fast. If the application is net connected and world-visible, i.e. the controller in an internet-enabled vending machine, then your experience and opinion is lacking. It is NOT acceptable to 'screw down the lid and forget' about a net connected app, especially if a widely-used OS is embedded. Exploits WILL surface, and maintenance of the s
eCos (Score:1)
I also strongly agree that you never, ever consider kernel upgrades to a shipping product (any more that you would replace the CPU or whatever in the hardware design). What you really need to think about is how to ca
Look for surveys with real content (Score:1)
NetBSD (Score:2)
In general, I can only recommend NetBSD, as it not only comes as a rock solid operating system in itself, but as it supports many different platforms and crosscompiling of ker