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.
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.
By Jack Ganssle
Embedded Linux - a Bust?
Michael Barr, ESP's Editor-In-Chief, recently forwarded an intriguing letter from a consultant who had attempted to build a business helping companies incorporate Linux into their embedded systems. The effort was a complete failure; a year of work had turned up only two companies actually using Linux in the embedded arena, so the consultant returned to traditional RTOSes where there's plenty of work and lots of money.
What gives? If you believe the magazines it appears anyone not using Linux is a dinosaur, an atavistic throwback who is doomed to write miserable little 8051 assembly language programs forever. At the local bookstore an entire shelf of computer magazine headlines scream "Linux Forever!"; all tout this OS as the solution to everything that ails us, from hackers to global warming.
Unfortunately Linux is an unassailable icon. Those who cast aspersions on it are immediately branded as wrong-thinking heretics. Yet it's just an operating system. That's it - a tool, something that allows us to build real systems. In the embedded world Linux is even less than an OS. it can't even manage real time events. At least not in the native distribution. Unless bolted on top of a traditional embedded RTOS your system might have a killer file system but be unable to handle asynchronous events in a timely manner.
In my travels around the embedded world I see a huge number of developers working with all sorts of real time operating systems, from very simple home-brew taskers to complete top-of-the-line commercial products with protocol stacks and a wealth of features. But Linux seems to be a stealth OS. Plenty of folks have adopted it as a development platform, but only rarely do I see it incorporated into a product. Sure - there are some notable exceptions. Some set-top boxes, PDAs, and other products are being shipped today with Linux kernels. But these seem to be in the minority, with traditional RTOSes still, by far, dominating the OS space.
Much as politicians are led by their polls, publishers use extensive surveys to see where the market is heading and what sort of editorial content best addresses readers' needs. But surveys are notoriously fickle. The 2000 ESP reader survey showed that 12% of the 525 respondents used Linux in their 16 (!) or 32 bit systems in the last year. 38% are considering it. With almost 100,000 embedded design starts each year, that suggests a huge market, enough to make any embedded Linux provider salivate and venture capitalists feed the frenzy with wild abandon.
But almost a year has elapsed since that study, and there's no way, based on my imprecise observations, that 30-40,000 projects were done this year with this OS. Lineo announced a layoff in September. One of Monta Vista's white papers discusses 60 microsecond interrupt latencies on an 800MHz Pentium. Yikes! Is that CPU really indicative of the embedded world? I doubt it.
Linux is a big beast that needs a lot of memory and processor cycles. It does bring some pretty substantial benefits to some systems: communications stacks, a fabulous file system, and a Unix-like interactivity and reliability. But is this a substantial part of the embedded space?
What do you think? Where does Linux fit into the near-future of embedded systems?