Embedded Linux is dying. Accordingto a recent survey sent to readersof Embedded Systems Design and EE Times Linux use hasdeclined from 37% of the market to just 20%, a stunning change. Thesame survey suggests that developers are even less likely to use the OSin future products.
Or embedded Linux has never beenhealthier , and its use continues to increase. A surveythat contradicts the former shows 47% of developers are usingLinux in embedded products this year, up from 32% three years ago.
One is not suppose to discuss politics or religion in politecompany, so I hesitate to enter into the Linux discussion. Yelling”Microsoft rocks” into a room full of open source advocates is about asbright as brandishing a copy of The Satanic Verses in a square in Iran.The same goes for making even the slightest disparaging comment aboutLinux to most any techie.
Yet it's just an OS, a pile of bits, nothing more, nothing less, onethat is superbly suited for quite a range of applications but that is aridiculous choice for others.
But why is there such a great variation in responses?
I have no idea.
There's some evidence. The linuxdevices.com results are surelyskewed by a population already culled by their interest in the OS. Isuspect few Windows zealots frequent the site.
The embedded.com data may be affected by the way responses weretotaled. All summed to 100%, which hardly seems likely given that manyof us use multiple OSes across many products. It appears respondentscould select only one of a number of choices.
So I suspect the truth lies somewhere between the two sites.
The data is interesting and suggestive, though. At linuxdevices wesee that the use of all operating systems in embedded applications isdown except for Linux, eCos (another open sourceproduct) and, frighteningly, home-brew versions. That last data pointviolates common sense and must surely be some sort of statisticalanomaly.
According to linuxdevices embedded Windows has grown steadily butwas slightly off in 2006, down to 13%. Embedded.com suggests Windowsadoption has nearly doubled in a single year!
A survey I recently conducted showed Linux eclipsed by onlyhome-brew operating systems. It stood at 23.5% adoption, not far offthe embedded.com figure. Windows scored 10.6%… not far off the linuxdevices.com results.
In my travels I see Linux in lots of applications, far more than acouple of years ago. My gut tells me the survey data is not telling thewhole story. How about you? Are you using it in an embeddedapplication? Has that been a great or lousy experience?
Jack G. Ganssle is a lecturer and consultant on embeddeddevelopment issues. He conducts seminars on embedded systems and helpscompanies with their embedded challenges. Contact him at . His website is .
We are working on an embedded linux product, and all our products will be developed using embedded linux as OS in the near future. I see a lot of competitors' products are running on Linux or uclinux.
I am saying the technical design of Linux kernel is perfect, but several factors will make it a strong player on embedded OS market:
1. It's open sourced, with more and more detailed documentation;
2. More and more engineers are getting familiar with it;
3. More and more drivers, protocol stacks, and applications are running on Linux, make Linux a good candidate OS for time-to-market products;
Survey is JUST a reference data, you must judge it before you believe it.
– Marco Wang
Linux or Windows arguement is another story – adoption of linux in embedded systems is another story.Going by Marco Wang's comments about the familiarity of linux and availability of portable source code, I guess that is the ONLY major factor in adoption of linux – applications are quickly deployable once the OS is ported.Technically speaking – every project I have done, I have been cross-evaluating with other OS or home-grown OS/Schedulers. Many a times, linux comes down on performance because its architecture is rigidly placed by widely accepted standards. Nothing wrong with that. But every generic architecture has performance limitations and bottlenecks – and thats exactly what Linux too has built in it.
As an example, I would suggest support for real time behaviour – ya I know we are talking about “embedded systems” – but still in most cases, there is required to be some reasonable guarentee on timing for applications like video/audio streaming – though soft real time. I have done at least 4 projects on this and found that it is the 'most' difficult job to get timing right on linux – by the architecture of kernel itself 🙁 In home grown or other RTOS, it is quite simple to achieve the same results because we have more control over the scheduling and timing.Anyways, I still love Linux and Windows – both for different reasons. Windows has another advantage of having portable APIs across desktop to the embedded world and ready available of easy to use user tools (competes with Linux – but not free of course 🙁 ) – always gaining on popularity by user experience and ease of use of tools.
All depends on having a proper balance between cost, time, quality and user experience.
Low Cost, Short development period, Behavioral sacrifices – Linux
Average (?) Cost, Short Development Period, Somewhat Controlled Behaviour (at least with the expensive support options ;-)) – Windows
High Cost, Short development period, (Semi-)Completely Controlled behaviour – 3rd party RTOS
High Cost, Long development period, Completely Controlled behaviour (but lacking features) – Homegrown RTOS
99% of time I have seen, choosing of OS depends on Cost of OS and Maintenance/Support available than any of the technical factors anyway. The management generally offers broad choices to engineers – Hobson's choice.
I would love to hear other experiences.
– Saravanan T S
Linux, or not to Linux?
Basically, what is holding most developers back is some of the confusion in regards to:
2. BSP, (again support)
3. open source licensing models.
4. real time
>From what I can see, the #3 item above is becoming more and more of a non-issue as time goes on…that is, the whole SCO thing seems to be vanishing into the dust of developers minds.
Also, the consensus, (again anectodtal evidence), is that when developers pick Linux, they are not really interested in the real time performance…they accept the fact that Linux is not a hard real time shell. Amazingly, a lot of developers are opting for the vanilla Linux ports done by various companies out there, and are finding other ways to tackle hard real time….(including…believe it or not, another processor!)
The thing that is front and center of most developers minds are:
1. what is the risk of implementaton, (support)
2. how quickly can I spin my system up?
3. what kind of BSP support do I get for my hardware configuratino? (again more support).
– Ken Wada
I'm in automotive – steering, braking, body control, etc. We don't use Linux or Windows (too big, too slow, not hard-real-time), or open source. We use home grown (because we've been doing it for ever) or an OSEK operating system (because it's designed for automotive).
Our requirements for speed, footprint, determinism, reliability, interrupt handling etc rule out a lot of the options and leave us with the two options above. It's not that we don't like Windows or Linux, they simply don't fit!
– Paul Tiplady
Good topic, Jack.
I'll throw our collective hat squarely into the Linux ring, and submit an exhibit from the recent Embedded Systems Conference as our case study.
– Daniel Daly
I think the reason we don't use linux in our embedded systems is that we have had such a bad experience with linux on the PC. Every time we want to do something we are entering a username and password. Every time I copy files over to a linux machine, Samba or not, I need to then log on ( username-password) to the linux box and change the group and owner of all the files just so I can open and use them. Even though X-Windows has been around for years, every time I go to one of the linux guru's office for help, they open up a terminal and start typing command line arguments. I thought command lines died with DOS, not to mention the cryptic commands. For instance, what does 'grep' stand for? Why would I use that to do a file search? Is VI really the (ahem) 'editor' we should be using ?
In addition to all the updates and incompatibilites with various libraries, it has left a bad taste in the mouths of the engineers who simply turn on a windows box, connect to computers all over our network, and develop applications using tools that we paid for.
In the long run, $6000 for an RTOS and $1000 for a 'C' compiler is cheaper than having 8 engineers spend 3 months fighting with free/open source software.
– Edward Handrich
Linux, and other Open Source is a great way to set up shop for those with lots of time for development and TEST. I think it's better to buy into a vendor's RTOS and toolkit for any one particular project; you are not only buying the tools, you are buying a guarantee of reliability bolstered by the simple property that all problem reports go to a single source, and the single source then has a record of fixing the problems. (or not, so choose someone else)
This means: use IAR, not SDCC. Use QNX, not Linux. Ect. Ect.
– Matthew Staben
Linux dominates products which typically require
large complex standards-based apps. Good examples
are product heavily dependent on standard networking protocols
(e.g. TCP/IP, routing, VOIP) and application frameworks
(e.g. java, graphics). Examples of these products are
cable/SAT/IPTV STBs, PVRs (e.g TiVo), DVD recorders,
residential gateways, and NAS storage boxes. In fact if you
look at the MHP standard they require java which pretty much
forces STB vendors to use linux or windows.
Linux is also used in high-end mobile devices like smartphones,
GPS devices, personal media players (e.g. Archos), etc. However,
it is not used in low-end mobile devices (e.g. cheap phones, and
MP3 players) because of constrained footprint sizes.
So any devices which are limited in footprint size (usually
due to cost) and devices with heavy real-time constraints
won't use linux.
The survey may be misleading because the number of respondents
working on high-end products are smaller than those working
on low-end products. But as we all know the high-end will eventually
become the low-end.
– Earl Mitchell
Great topic, Jack!
I am on a project which, initially had its priorities as a small, low-power media recording device that stores its data to CompactFlash. An RTOS (Nucleus PLUS in our case) was a natural choice on the AT91RM9200 processor we had chosen as well. I don't have much Linux experience, but have read and been told that it is easier to control the low-power modes of your system with an RTOS. Plus, RTOSes use way less memory than linux, which leads to power savings (i.e., being able to use SRAM vs SDRAM)
Then… our customer throws a monkey wrench in all of it and asks for networking capability with ftp server, ftp client, web server with control GUI, and audio streaming capability.
My choice was to either (1) switch platforms to linux and port all our existing code, or (2) stick with Nucleus PLUS and use all the Nucleus middleware.
I chose to stick with Nucleus, mostly for the reason that I have no linux experience and it would be too much of a risk (for me). I also really liked the idea of a technical support contract. I am confident that our device will be lower power and cheaper to manufacture (because we don't need 64 MB of RAM!) due to using Nucleus, but I sometimes still get that nagging feeling that I missed the boat…
I am curious what other people's opinions are on the issue of memory usage and low-power capability with linux vs. RTOSes.
– Stephen Fenwick
I am an embedded systems engineer with a global company headquartered in Birmingham, Alabama. I also do some freelance contract work on the side, and have done so now for about 4 years. I for one have come across MANY people evaluating Linux OS for embedded applications. The reasons vary but are the usual ones for us in the embedded community. The OS is simple, scaleable, open source, has a myriad of driver support, and is just plain simple to use for us embedded folks, and the price is stunningly attractive, especially since there are no royalties. The work in the last few years within the Linux consortium in making it more and more “real-time” is also one thing (in my opinion) that is making it much more attractive.
But in my own personal evaluations, and also in those of many small companies I have been involved with, there is one main stumbling block that holds this little jewel of an embedded OS back. Simply put “development tools”. There are just no tools available to develop Linux applications under a Windows platform. Even though the target will be completely Linux, the only development tools that seem to be of any use MUST also run under Linux. I have worked with many of the different RTOSs in this industry, including several of the home grown ones. Pretty much all of these other OSs have development tools that are Windows based, but why not Linux? I don't have an answer for that, and quite frankly it mystifies me. But I do know this much… when those cross platform tools do become available I believe that you will see a quantum increase in Linux's usage… bottom line. And the company who creates them will find a market equal to Windows itself. Just a thought… Hmmm anyone interested in joining forces in creating some development tools!? 🙂
– Nathan Wallace