LWN.net Logo

Advertisement

Front, Kernel, Security, Distributions, Development. See your byline here on LWN.net.

Advertise here

Embedded Linux: Semantics and Reality (O'ReillyNet)

Karim Yaghmour writes about embedded Linux in this O'ReillyNet article. "Let's put it bluntly: embedded Linux doesn't exist. Embedded Linux is the stuff of glitzy announcements, hype, and other marketing mumbo jumbo. That is, at least, the conclusion I am forced to reach after having spent two years writing a book about the use of Linux in embedded systems, which is an entirely different subject. For had I written a book about "Embedded Linux," it would most certainly have been prime material for Marketing 101."
(Log in to post comments)

Embedded Linux: Semantics and Reality (O'ReillyNet)

Posted May 14, 2003 17:25 UTC (Wed) by jeff@uclinux.org (guest, #8024) [Link]

I'm a little confussed by this. It appears that Karim's point is that embedded Linux is
the same as any other Linux, just deployed for a certain purpose and that even purpose
built components can have more general use.

While I think this is to some extent true, it really misses the point. Take uClinux for
example. No one could confuse it with a general purpose system. It's kernel has
limitations that make no difference in an embedded environment but make it totally
unsuited for any use requiring user sitting at a shell prompt. It's userland is _completely_
different, I'm hard pressed to think of anything from the GNU project in it since it's
all purpose built. It is also completely unsuited for anything other than an embedded
environment, and no I don't mean BusyBox which is only half way.

My point is that if you want to find Linux that is purpose built from the ground up
(nothing from a standard distribution) and therefore radically different from Red Hat and
has been embedded in huge volumes on hardware also purpose built and different from
anything that looks like a PC or an ipaq, you can. This is real embedded linux, you can't
use it for something else.

Check out http://www.uClinux.org and http://www.uCdot.org
D. Jeff Dionne.

Embedded Linux: Semantics and Reality (O'ReillyNet)

Posted May 14, 2003 18:35 UTC (Wed) by karim (subscriber, #114) [Link]

I think I see two issues addressed here: uClinux and custom-made Linux.

Yes, uClinux is definitely different from a standard Linux kernel. As Jeff points outs, even userland is different. Point taken. Note, nevertheless, that for MMU-equipped architectures, everything in user-space can be used the same on workstations as in embedded systems. There are people using both uClibc and BusyBox on their workstations.

In regards to custom-made Linux, I'd like to point out that the definitions I've been getting in response to my article vary greatly. Have a look at this response for example, which states that "embedded Linux" is really just the kernel. In another answer I got from someone at the Embedded Linux Consortium, I'm told: "Embedded Linux is exactly the same as Linux. What is different is the set of resources inside and outside of Linux ...".

Yes, a custom-built Linux distro for an embedded system can be very different from a standard Red Hat, but I've seen people who have built embedded Linux systems using just that: a stripped-down standard distro with a custom kernel. Does that fit the description of "real embedded Linux"? I'm not sure, but I'm sure I'd have more information if "embedded Linux" was used within a more precise context.

In a way, this discussion about "embedded Linux" is a victim of another uresolved dispute: "GNU/Linux" vs. "Linux". Because people avoid to call complete distributions "GNU/Linux", we are now unable to make the difference between "Linux" the kernel and "Linux" the custom distribution. This may be of little consequence on workstations and servers, but it's very confusing in the embedded world where the user-space stuff is almost never the same and may contain no GNU whatsoever, as Jeff rightly points out. If the convention is to call "Linux" anything that is packaged with the Linux kernel, maybe we should call any "embedded Linux" just "Linux" and avoid the "embedded" altogether.

What is clear for me from reading the feedback I got from this article it's that there are many definitions of the "embedded Linux" noun out there, and we aren't helping Linux in general if we don't narrow the subject of discussion by adding a little bit more information when talking about "embedded Linux". In other words, I think that Linux is best served by using "embedded Linux" as an adjective.

Embedded Linux: Semantics and Reality (O'ReillyNet)

Posted May 15, 2003 20:56 UTC (Thu) by Baylink (guest, #755) [Link]

As an adjectival phrase, I think you mean.

But on the fundamental point of your piece, no, I don't think it's
actually all that incredibly difficult to define "Embedded Linux" as a
noun phrase: it's any Linux installation which is created or adapted for
use in a device whose purpose is *not* general computing. Workstations,
servers; those are likely not properly termed "embedded". Telephones,
PBX's, automobile fuel injection controllers, elevator controllers? Those
likely are.

As far as *I* can see, the real edge cases are things like the Quantum
Snap storage servers -- *I* call them embedded, since while they're a file
server, they're not truly "general purpose" -- and things like the Zaurus
and Agenda PDA's. Those actually *are* "general purpose computing
devices", but, by and large, the distribution you'd get from handhelds.org
is *substantially* different from anything on LWN's List of 300.

But I don't think that the fact that there *are* edge cases -- even ones
we have to go that far to find -- detracts from the usefulness of the term
for classification.

Embedded Linux: Semantics and Reality (O'ReillyNet)

Posted May 16, 2003 1:07 UTC (Fri) by karim (subscriber, #114) [Link]

I don't think that "embedded Linux" can't be defined as a
noun. It can, as you have demonstrated. The point I was
trying to make was that the use of "embedded Linux" as a
noun is confusing because different people have very
different definitions (which gets to be very confusing
for those who want to use Linux in embedded systems), and
that one way to avoid this confusion is to use it as
adjective (or "adjectival phrase" if you prefer.) Whether
people will actually adopt the usage I suggest, thought,
is an entirely different matter. It's really not much
more to say "embedded Linux system" or "embedded Linux
kernel", but it does add much more detail.

Copyright © 2003, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds