It used to be simple. There were desktop operating systems - like Windows and UNIX - and real time operating systems, like Nucleus OS. There was never a question of one being better or more appropriate than the other. They were different animals and no comparison made sense. Then someone had the idea that maybe Linux could be used for an embedded application and it all changed.
The idea did not make much sense to me. Although I could see the attraction of open source software up to a point. And the availability of drivers and other software components, along with lots of programming expertise, all made sense. But I still could not understand why it was all worthwhile - using tons of memory to make it appear like a file system is available, just because the OS needs it, even if the application does not.
But I suppose it is more rational nowadays. CPU power and memory are both cheap, so, for many purposes, perhaps the overhead of Linux is not a problem. I am beginning to understand the issues better now having been talking with the guys at BitRouter - a Nucleus OS customer who has also used Linux. I am doing a joint webinar with them in a couple of days. It is clear that, although Linux can make sense, there are applications where a “conventional” embedded OS is a much better fit.
I was quite clear that Nucleus would always have an advantage if memory and/or CPU power were in short supply. The high performance and modest memory footprint are appealing and tend to keep the bill of materials down. When you realise that you also get significant power consumption reductions, the arguments can be compelling. What I had not thought about before is the start-up time. Any OS needs to “boot”. In many products, this lag when you switch them on could be a big source of user displeasure. A plus point for Nucleus for sure.