In a recent EE Times 2013 Embedded Market study, Android was the OS of choice for future embedded projects among 16 percent of the survey’s participants, second only to ‘in-house/custom’ (at 28 percent). But if a spectrum of disparate approaches can be lumped together as a single option, why not aggregate the various shades of Linux to see how they compare? “Parsing the EE Times data this way makes it abundantly clear that Linux truly dominates the embedded market.”
What’s not to love? The source code is freely available and highly adaptable, mature extensions supporting (for example) hard real-time and strong security are readily available, and numerous companies offer an impressive range of training and support services.
As long as you don’t need to distribute proprietary kernel-level changes and don’t have some strong attachment to another product (“We’ve used VxWorks for 25 years…”), it’s the obvious choice.
ricegf,
I agree, having linux source code makes it an obvious choice over most other commercial operating systems for embedded systems. It’s widespread prevalence is a clear indication of that.
It would be nice to see BSD’s (and others) in the embedded market though, they don’t even make this list. I guess market forces aren’t very favorable to them. Linux gets more attention because it’s on top, and it’s on top because it gets more attention. Such is the nature of the market forces behind the power law.
“As long as you don’t need to distribute proprietary kernel-level changes and don’t have some strong attachment to another product”
…Or pull an nvidia and distribute the proprietary parts as binary modules. There’s quite the debate whether this is even allowed by the GPL2, but as I recall Linux himself thought it should be ok. Even if he’s wrong, there isn’t likely to be any action against proprietary Linux modules while he’s the public figurehead for Linux.
BSDs have great security, but do they handle hard reat-time (“the right answer a nanosecond past deadline is the wrong answer”)? Honest question, I’ve never actually looked as our support companies all do Linux, proprietary, or both.
If you’ve used a hard-RT BSD, how well did it work for you?
ricegf,
“BSDs have great security, but do they handle hard reat-time”
I honestly wouldn’t know, I’ve done several searches just now to find out and there do seem to be some who are using BSDs for realtime applications, FSMLabs comes up very prominently in those searches but they’re mostly marketing pieces and their website is useless.
So like you, I’m not sure. Never the less, not everyone in the embedded space needs hard real time scheduling and I’d be curious how many devices (Linux or otherwise) in the EE study are actually hard realtime scheduled. I would think that for the majority of consumer needs, soft realtime scheduling is already good enough. Although I’m curious what it is you do that needs it.
Avionics. If we missed a deadline, a computer crash would be the least of our worries.
ricegf,
“Avionics. If we missed a deadline, a computer crash would be the least of our worries”
I know your half joking, but my initial impression would be that realtime flight control systems are far less demanding (in terms of schedulers) than even a basic audio daemon doing realtime effects. The difference being that with an audio application, we can wave our hands and merely assume the upper bound exists for priority threads (and probably be right if distortions never happen under full load), but with important control systems someone needs to compute and actually prove a deterministic upper bound.
What is the sample/control rate used by avionic controllers?
What kind of systems would start failing on an aircraft if an operation happened 1ms late? Even the fastest servos are pretty slow in computer terms.
Do you use multi-process, multi-threaded code with multiple threads running on the same core such that the OS scheduler plays a significant role?
Feel free to educate me since I have no experience in the matter, but I am curious.
BSD does have a relevant part of the market – in iOS. The problem is there is not much cooperation between companies in the embedded space when using BSD, so it doesn’t get better outside of dedicated products like iOS where significant resources are put behind it by a single player.
Conversely, there’s a number of real-time projects that are merely maintaining branches of the official Linux Kernel, and providing fixes back to the mainline kernel so it becomes easier to setup real-time systems using Linux.
So Linux is not in that position due to market forces – it had to overcome substantial market forces to get to that position. Rather it is in that position because it really is among the best in numerous views.
Yes, Linus Torvalds has officially endorsed what nVidia and others do. So that won’t likely change anytime soon, and without him against it (or whomever eventually replaces him) it’ll be hard to prosecute anyone doing that. His position is for pragmatic reasons – he’d rather encourage the use of Linux that way, then keep it out of the market.
So again, it helps everyone since you can more easily pull those binary modules in from others in an approved manner instead of necessarily having to write your own, or port them over.
TemporalBeing,
“BSD does have a relevant part of the market – in iOS.”
Ah yes, the unspoken cousin It still didn’t make EE’s list though. I wonder what their qualifications were for the embedded market.
“So Linux is not in that position due to market forces – it had to overcome substantial market forces to get to that position. Rather it is in that position because it really is among the best in numerous views.”
Well, it’s widespread adoption hasn’t occurred without merit, so please don’t take what I’m about to say the wrong way. But now that linux is in a dominant position there is a real risk of linux getting chosen over alternatives simply because is the defacto standard of open source kernels rather than because it is the best. In some cases the linux kernel seems to be lagging behind by many years (ie ZFS, unionfs, async file io, non-fork spawning, …) Even so I still choose linux because linux is better supported and the market is bigger. There are market forces at work.
Edit: Just to reiterate, linux is a great choice for embedded devices. My only objection with your post was the notion that market position is solely based on merit without influence from market factors.
Edited 2013-03-05 21:17 UTC
Agreed.
Linux got there on merit; but people will now choose it as you said for “de facto” reasons.
They probably used a common definition similar to “a device that performs fixed control functions”.
I can’t imagine an iPhone would be considered an “embedded device” unless it were dedicated to controlling a robot arm, optimizing the efficiency of an internal combustion engine, flying a drone, or something similar, and since as far as I know that’s not the market Apple is targeting, iOS would be considered part of the general computing rather than embedded market.