For novel ideas about building embedded systems (both hardware and firmware), join the 35,000 engineers who subscribe to The Embedded Muse, a free biweekly newsletter. The Muse has no hype and no vendor PR. Click here to subscribe.
By Jack Ganssle
I'll present my Better Firmware Faster seminar in Melbourne and Perth, Australia February 20 and 26th. All are invited. More info here. The early registration discount ends January 20.
Does Linux Suck?
Summary: Linux is the solution to all engineering problems. Or is it?
The Embedded Systems Conference in Farnborough, England a couple of weeks ago had a panel about the state of the embedded industry. Dan Saks, Niall Cooling and I discussed the subject, with Rich Nass moderating. One question from the audience was about the role of Linux in embedded applications. I responded: "Linux sucks."
There was a hushed and shocked silence. What one would expect from the congregation if a priest refuted the virgin birth in his Sunday sermon.
And this was exactly my point. We're only supposed to talk about Linux after first cueing the choir of angels who sing its eternal praises. According to some Linux will save the world from those skulking pirates in Redmond whose products barely boot and never satisfy anyone. Linux is the answer to every problem, from global warming to male-pattern baldness.
In my opinion, Linux is a great operating system for a wide range of applications, from the desktop to servers to the embedded space. But it is not the One True Solution as some of its acolytes preach.
In the embedded world Linux offers a rich API with a slew of resources like the filesystem, networking, and so much more. I see a lot of apps where it forms the front end, while under the hood additional resources, often embodied in additional CPUs, do the deeply-embedded portion of the work. Some managers tell me they use it (or Windows) in part because they can hire cheaper, non-embedded, people to do a lot of the work.
But I also get several queries a week from people wondering about using it on 8 or 16 bit processors. Or in high-reliability or high-security applications. Linux is suited for neither, unless it's just a non-critical component whose weaknesses are mediated by other resources. It has been certified to EAL4+ under the Common Criteria for security, but only under the Controlled Access Protection Profile, which essentially means it's reasonably secure if no one with hostile intent is around. Depending on Linux to protect vital information or resources is about as bright as making the same assumption about Windows.
I use Linux every day and like it a lot. I use Windows every day and like it, too (though detest Vista). But both are just piles of bits, well-suited for some applications and completely inappropriate for others. Engineers make sound decisions based on carefully-weighed tradeoffs. and avoid religious issues. At least at work.
Published October 19, 2009