Selecting an embedded operating system

A majority of embedded devices nowadays are implemented using an operating system of some kind. This has not always been the case and need not be today. Historically, using an OS was less common mainly because the applications were less complex and CPUs less powerful.

Some thought is needed, at an early stage in a project, to determine which OS to use [or whether to use one at all] …

This all started when a prospective customer asked me for help. He was planning to select an embedded OS and wanted a process – maybe something like a flowchart – to help him make a decision. I gave this some thought and then told him the bad news: there is no simple process to make the selection; there are just too many interrelated factors. I offered to work through his needs with him to help arrive at a conclusion and, as a result, I developed a talk on the subject which I have used and evolved over time.

The first thing to decide is whether an OS is required at all. If you have sufficient CPU power, the answer is probably yes. For a complex application, this conclusion is fairly obvious. But for a simple one, an OS may seem unnecessary. The reason why deploying one may be wise is future maintainability. The application may be simple today, but more capabilities may need to be added further down the line. An OS provides a scalable platform on which to extend the application in a managed way. Having said this, however, some applications today use an OS unnecessarily for the simple reason that the developers are unable to conceive of the idea of implementing code on “bare metal” with no underlying OS.

Having decided to use an OS, there is the question of sourcing it. At the highest level, there are three options: implement it in-house, download and deploy a “free” OS of some kind, or obtain a commercial OS from a reputable supplier. As I work for a vendor of embedded operating systems, there are no prizes for guessing which path I would advise.

The final step is the actual selection of an OS from the wide variety on offer. This is quite a complex decision, which should be based on technical and commercial parameters and also on the experience of yourself, your team and other developers in your network.

If you are facing the OS selection problem right now, do feel free to contact me for help. Just email me and I can answer questions and/or send you some material to help guide you. I promise that the answer will not always be one of Nucleus RTOS or Mentor Embedded Linux.

This is a topic that I have covered at various conferences and I am likely to do so again. In the short term, this coming Wednesday, I will be presenting a Web seminar. This event is free of charge, so please register and come along; there will be a live Q&A after the formal presentation. The session will be recorded and will be available as a download after the event.

Leave a Reply

This article first appeared on the Siemens Digital Industries Software blog at