Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Open Source

Linux Surveys


Embedded Linux is dying. According to a recent survey sent to readers of  Embedded Systems Design and EE Times Linux use has declined from 37% of the market to just 20%, a stunning change. The same survey suggests that developers are even less likely to use the OS in future products.

Or embedded Linux has never been healthier, and its use continues to increase. A survey that contradicts the former  shows 47% of developers are using Linux in embedded products this year, up from 32% three years ago.

Both surveys do show that Linux adoption has grown over time, since a 2001 study by the Evans Data Corporation pegged its use at 11.2%.

One is not suppose to discuss politics or religion in polite company, so I hesitate to enter into the Linux discussion. Yelling "Microsoft rocks" into a room full of open source advocates is about as bright as brandishing a copy of The Satanic Verses in a square in Iran. The same goes for making even the slightest disparaging comment about Linux to most any techie.

Yet it's just an OS, a pile of bits, nothing more, nothing less, one that is superbly suited for quite a range of applications but that is a ridiculous 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 surely skewed by a population already culled by their interest in the OS. I suspect few Windows zealots frequent the site.

The embedded.com data may be affected by the way responses were totaled. All summed to 100%, which hardly seems likely given that many of us use multiple OSes across many products. It appears respondents could 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 we see that the use of all operating systems in embedded applications is down except for Linux, eCos (another open source product) and, frighteningly, home-brew versions. That last data point violates common sense and must surely be some sort of statistical anomaly.

According to linuxdevices embedded Windows has grown steadily but was slightly off in 2006, down to 13%. Embedded.com suggests Windows adoption has nearly doubled in a single year!

A survey I recently conducted showed Linux eclipsed by only home-brew operating systems. It stood at 23.5% adoption, not far off the 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 a couple of years ago. My gut tells me the survey data is not telling the whole story. How about you? Are you using it in an embedded application? Has that been a great or lousy experience?

Jack G. Ganssle is a lecturer and consultant on embedded development issues. He conducts seminars on embedded systems and helps companies with their embedded challenges. Contact him at [email protected]. His website is www.ganssle.com.


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:

1. support

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?

(support)

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.

http://www.embedded.com/showArticle.jhtml?articleID=185300272

- 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


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.