With the release of kernel 2.6, Linux now poses serious competition to major RTOS vendors, such as VxWorks and WinCE, in the embedded market space. Linux 2.6 introduces many new features that make it an excellent operating system for embedded computing. Among these new features are enhanced real-time performance, easier porting to new computers, support for large memory models, support for microcontrollers and an improved I/O system.
Linux Kernel 2.6: the Future of Embedded Computing, Part I
2004-03-29 Linux 26 Comments
Come on, you must be joking.
Read this: http://www.eetimes.com/story/OEG20040112S0043 and then tell me again “Linux is the future of embedded computing”. No way. It’s very far from that.
I agree, even without reading the article at eetimes. An OS that was not build for real-time computing from scratch can never be as efficient as a native real-time OS.
Well, while linux is not a RTOS, it’s much closer of being it than 2.4. The question is, do yo REALLY need a strict RTOS for all embbeded devices? The answer is clearly: no, linux can do the job for lots of uses.
The arguments of that article are weird. The first one “there’re not support” doesn’t make sense, companies will support Linux when it increases their market share. Look at WindRiver, for example…
The “it wastes too much mem, it needs 5 MB of mem” it doesn’t have sense either. That guy really needs to take a look at the -tiny tree ( http://www.selenic.com/tiny-about ) , a 2.6 kernel tree with some patches to make things configurable. Look at http://www.selenic.com/tiny/2.6.2-rc3-tiny1.txt:
“Here’s a test boot of my development config (console, ide, ext2, and ipv4) with mem=2m, which is actually only 1664k after accounting for BIOS memory holes”
So, you can boot linux with 2 MB of ram and run userspace on it.
1664 KB is still A HUGE amount of memory. VxWorks, Neutrino, and others, only need 100 KB or less.
Memory chips are expensive and need space.
Think it for a moment, you have 2 options:
– Linux: free operating system, but spend $50 more in memory chipsets and have a bigger device. Sketchy support (at best) if you get it for free. Good support if you pay Montavista, Lineo or another company.
– Actual RTOS (VxWorks, QNX, etc): pay $5 per device, but have a cheaper and smaller device. Very good support and long experience. It will cost you -more or less- the same that Montavista or Lineo.
What would you choose? I don’t doubt: VxWorks.
> What would you choose? I don’t doubt: VxWorks.
No sir. QNX.
“Dan O’Dowd is President and chief executive officer of Green Hills Software,Inc. (Santa Barbara, Calif.)”
“Green Hills is 20 years old, privately held, profitable since its inception, and is growing at an average rate of 30% per year. Based on 2001 revenues, Green Hills Software has grown to become the world’s #2 RTOS company.”
Oh, I understand now: Green Hills is a proprietary RTOS vendor making FUD statements about linux…
> The arguments of that article are weird. The first
> one “there’re not support” doesn’t make sense,
> companies will support Linux when it increases their
> market share.
Sure, I get support for the Linux core from my vendor. They solved all the tricky details of getting e.g. ssh to run on their system. Great!
Now let’s say I’m in a mind of compiling my own tool for my PDA. Does the vendor ship a compiler for my PDA? Does it run native, or as cross-compiler on a Linux desktop? (*Both* might be what’s required…) Is it an up-to-date version? Who supports me when I can’t compile some dependency, because of some nifty trickery in the vendor’s system?
That’s what’s meant with “support”. Reportedly, it’s possible to run NetBSD or Linux on my PDA (Jornada 720), but I – an experienced netizen, not-too-dump developer and not-quite-new-to-bash – am utterly unable to get it to run due to the scetchy documentation and support.
That isn’t likely to improve with some vendor-hosted premium Linux derivative. Or, only at a hefty fee…
(PS: If someone can help me getting gcc to run on a Jornada 720, you’d be *very* welcome to contact me by e-mail…)
Ah, sure. If you aren’t a hardcore Linux hacker yourself, all criticism you have is automatically FUD because you have some private agenda… “ad hominem pro toto” at it’s best.
If the coach of the 49’ers says that Cleveland has a lousy offense, that doesn’t automatically mean he’s wrong on the subject just because he’s coaching elsewhere…
PS: Sorry footballers, I have no idea how good the Cleveland offense is. Just in want of an example.
Isn’t Code Warrior still being used? I figured that’s at least one good alternative for embedded Linux development.
Anyways, I like Linux and all, but how limited (for the future) is a monolithic design really? I’m not a kernel hacker, so I’m just asking. How long before it just becomes impractical, not just for embedded, as it already is, but for other uses as well? I’m talking 10-20 years down the line here. What does a monolithic kernel look like after 30 years?
I mean, wasn’t the original GNU system the HURD? Even LT said he would have never made Linux if the HURD was up and running then….But now it is. Linux has done enormous things for GNU and Open Source, but shouldn’t we just say c’est la vie, port and recycle what’s needed, and just move on? Or at the least, the HURD deserves more attention.
It’s a bad analogy, but it’s similar (sorta) to Microsoft’s 32 bit offerings in 90’s, and it’s only now that they’ve finally made a transition from WinDOS to NT.
We use our own embedded real time kernel. Why bother
with GPL? Why bother with a desktop OS? It’s obvious
the people who seem to promote embedded linux don’t actually
design, develop, manufacture, and sell embedded products.
It’s not just the bloat, i’ve seen linux on pda’s and things like reboot times are hideous.
this guy needs to have a look here: http://www.bitbenderforums.com/vb22/showthread.php?threadid=58650
Hey ya. I have boosted my network @ home with close to 25% with 2.6, same driver, same hw.
I also have much less load on the server: look here gentoo users that need to tweak proggies that wait around for user input etc: http://www.bitbenderforums.com/vb22/showthread.php?postid=310232#po… that is a kernel tweak.
This is not to flame gentoo, but flaming this guy for choosing something he has no clue over
haha wrong article LOL forget my comment over
“I agree, even without reading the article at eetimes. An OS that was not build for real-time computing from scratch can never be as efficient as a native real-time OS.”
WinCE wasn’t built for real-time from scratch either, yet it is ready for embedded computers? No wonder people don’t listen to you zealots.
“Ah, sure. If you aren’t a hardcore Linux hacker yourself, all criticism you have is automatically FUD because you have some private agenda…”
Oh so are you saying that guy is absolutely independent from Linux’s success? What makes criticism against Linux so great that nobody’s allowed to criticise the critics?
Oh sure, if it’s criticism against Linux then you zealots all praise it to the heavens and flame down anybody who have doubts against the criticism.
“1664 KB is still A HUGE amount of memory. VxWorks, Neutrino, and others, only need 100 KB or less.”
1664 is the total memory of the system – not what the kernel eats.
I’m not going to argue that vxworks will use much less memory. I bet they don’t have the same fatures compiled in than linux… ext2 was never designed as embeeded filesystem, and there’s a lot of code on ext2 just to optimize disk io throughput, which is useless for memory chips (montavista recently released a new filesystem for embedded devices for linux 2.6). The ipv4 linux stack, memory subsystem, block layer, etc aren’t small either. but you can optimize it ej: the -tiny guy wrote a simple slab allocator replacement instead of using the linux one. It won’t never won vxworks when it comes to memory usage, but then, there’re LOTS of embedded devices that can run linux.
What all the fools posting here forget is that embedded devices are also getting much more powerful. So even if your chosen pet operating system has a theoretically smaller memory footprint, for manufacturers, it simply isn’t worth to depend on a proprietary OS vendor for your product development and strategic feature/future plan.
Ask yourselves why the majority of the electronic makers in East Asia formed a Linux consortium.
There is a place for niche operating systems, but that niche will get increasingly smaller.
And I guess your thick zealot head can’t get that there are more open source OSes other than linux: meet itron an open source rtos:
This part from the above linked article is particularly relevant: “RTLinux switches tasks in milliseconds, while ITRON switches tasks in microseconds”
have a nice day
Linux is becoming a monopoly itself among Unices and now in embedded systems. This is not so much of a good news. There’re other OSes (as pointed out) that are by design my suitable for this purpose and technically superior. NetBSD for instance would be another promising choice, given that WasabiSystems have close partnership with Intel for XScale processors.
But the Linux hype devours any such knowledgeable arguments. Soon we shall have a new monopolistic tyrant, but this time driven by open source programmers. Sort of reminds me of “Animal Farm”.
Sort of reminds me of “Animal Farm”.
Good one. Hmm, so I guess LT is “Old Major”?
I know several low manufacturing volume shops that build Linux into embedded products. For these people it might be cheaper to throw a few MB of RAM at a small unit build than buy the RTOS licenses. Adding fixed tool costs with a limited number of units produced over which the costs can be amortized may make Linux more cost effective than something like VxWorks. I don’t count the beans but it’s something people should be thinking about.
That being said, I have seen some pretty bad problems pop up when people try to use Linux in the embedded space. Some developers forget their target and code up desktop style applications and cram them into a small box – not a good idea.
No one has mentioned eCos, an open source RTOS. Developed by Cygnus and now owned by Red Hat.
…and now owned by Red Hat
You mean “abandoned by Red Hat”, don’t you? Read on:
FSF has the copyright and is doing development on it.
Thats not abondoned at all. Redhat did a responsible thing of transferring the copyright instead of dropping everything
>> Ah, sure. If you aren’t a hardcore Linux hacker
>> yourself, all criticism you have is automatically
>> FUD because you have some private agenda…”
> What makes criticism against Linux so great that
> nobody’s allowed to criticise the critics?
Marcelo criticised the author solely on grounds of what he does for a living. He didn’t even address what was said in the article.
Just working for the competition doesn’t mean your opinion is biased. It can mean that, so of course it has to be taken with a grain of salt (just like every other source, too). It could also mean that the author actually knows what he’s talking about.
Spare the flames, will you?
No one is saying that you still can’t use VxWorks or QNX for an embedded system. If you’re looking to make a 100K image with a very specified purpose, with RTOS support, then so be it. This debate rivals the C, C++, Java, C#, .Net “which is better?” debate. You use the tool which fits the job. Linux has a lot of flexibility built into the system, and the best thing about it is that no one controls it. This isn’t the case with VxWorks or QNX. I did a project with QNX a few years back. When we ran into a stumbling block with a third party software and needed QNX’s leverage as well as their expertise to move forward. QNX charged us $250K. They basically said, “sure, we’ll help you out. But you have to buy X00,000 licenses of our OS.” We paid. Suffice to say that when we started a new project, QNX was no longer in the plans. We were able to get up and running with Linux reasonably easy and embraced the resources that were available. You have to understand that the majority of the people who are working with embedding Linux came from the this world and migrated from other platforms.
eCos certainly isn’t abandoned as an OS – that’s one of the good things about OSS, it doesn’t matter one if some group who worked on it before stop. Being GPLd it doesn’t _really_ matter to users if Red Hat dropped it or assigned their copyright to a mauve starfish.
As for embedded Linux: sure hardware is getting cheaper, but it’ll be some time before you can get 2Mbyte on-chip RAM. In the meantime OS’s like eCos (and no doubt RTEMS (another Free OS), vxWorks, maybe QNX, etc.) can fit into, say, the 256K on-chip RAM of an AT91.
And then there’s real-time… the changes in linux 2.6 mean that if you throw CPU power at it with a high enough spare margin then instead of providing proper real-time accuracy 99% of the time it’s 99.9%. However many apps, e.g. ones with streaming data, need 100% and nothing less is good enough. You need to go the RTLinux route to get that, and that’s not really linux – that’s an RTOS and Linux bolted together and anything real-time must stay 100% entirely in the RTOS world, and you can’t leverage existing drivers etc. Assuming you don’t mind paying the patent license fee.
There’s some things that Linux is good for, and in particular against other high-end large OSs like WinCE. But far from everything, and certainly not in the vxWorks/eCos etc. part of the market.
Vested interest: I work on eCos although I’ve worked on embedded Linux too.