This survey presents the state of embedded Linux as applied to
consumer electronics devices, from wristwatches to PDAs to cellular
handsets. We have attempted to address important decision areas for
embedded Linux developers, namely sorting through the various kernel
variants, distributions, C libraries, and GUI options in creating a
coherent software architecture. We will also provide a brief
introduction to Linux itself and describe the major players in the
rapidly evolving embedded Linux field. We welcome feedback and
questions about Blue Mug's background and services at
This survey defines the elements comprising "embedded Linux," the
key players in the embedded Linux field, and the state of the market
as applied to consumer electronics devices. We will address the
decisions embedded developers will need to make and comment on the
strategies adopted by major companies and groups.
The remainder of this introduction provides some general background on
embedded Linux for those who are new to the technology and may be
considering using it in their next project.
We compiled this survey from publically available information and our
own experience developing embedded software products. We discuss
material that can be evaluated to some degree at an engineering level
- a marketing press release generally isn't enough.
To limit our maintenance overhead, we have not included a complete
bibliography. We trust that elementary web searching will be
sufficient to track down the source of any information listed herein;
if not, please let us know.
The embedded Linux world is in constant flux so we will periodically
review and update content. This survey should be approached as a
"living document" rather than a static reference guide. Sections are
tagged with a revision date.
Please feel free to send us corrections, additions, or any general
comments to us at email@example.com. We appreciate your
input and would love to hear your opinion on how to improve this
Blue Mug, Inc. is a software engineering company that specializes in
designing and implementing system software for mobile consumer
devices. We view embedded Linux as a promising technology for such
devices, and have used it recently to complete projects for several
clients. For more information about Blue Mug, our background and our
services, please visit us at http://www.bluemug.com or email
Linux is a relatively new operating system that clones the UNIX
operating system. It was written by Linus Torvalds and a scattered
team of volunteer programmers across the Internet. The Linux kernel
and many system components are released under the GNU General Public
License (GPL), which dictates that the source code for those
components, including modifications, must be made available under the
the GPL or a compatible license whenever a compiled version is
An operating system (OS) is a special program that acts as an
intermediary between the computer user and the computer hardware.
Apple's MacOS and Microsoft Windows are operating systems. The
OS provides an environment to make the computer system convenient and
efficient to use. Among other things, the operating system delegates
which program should run, manages memory, provides a file system
interface, schedules hard disk access, manages the network
(e.g. TCP/IP), allows programs to talk to one another, and provides
Properly speaking, "Linux" is the operating system program itself;
this is the Linux kernel. A "Linux system" incudes the kernel,
system components, and essential applications. It takes considerable
effort to assemble a Linux system by hand-picking the various
components and applications because they are under constant
development and are scattered across the Internet. Thus, various
groups have arisen to provide standard collections of packages for
easy installation. These distributions include the basic Linux
system, system management utilities, and a wide range of applications.
Linux is a full-featured modern operating system. By full-featured we
mean that it supports all the newest computer technologies, including
communications like Bluetooth and USB, the newest video cards, etc. By
"modern" we mean that it includes the features expected of a system
that could be scaled up to massive server requirements: protected
memory, multiprocessor support, paging, etc. Linux has remained
relatively lean in spite of staying on top of developing
technologies. This is because the open development environment favors
optimized code and greater modularity, allowing users to pick the
precise set of features for a particular system. It was originally
written for the Intel 386 CPU, and even the newest versions of Linux
can run on a 386 with 4Mb of RAM.
Linux is widely regarded as revolutionary technology. The GPL prevents
any one entity from hoarding it. This allows for broad oversight and
flexible development efforts. Kernel improvements are fed back to the
community. The open source environment has fueled a high pace of
development. In just a few years, Linux has taken a significant
percentage of the server market.
When someone talks about embedding Linux, they mean porting the Linux
kernel to run on a particular CPU and board which will be put into an
embedded device. There are many companies that sell embedded Linux
solutions. These usually include a ported Linux kernel with
cross-development tools, and sometimes with real time extensions. For
the most part, the APIs and kernel codebase are the same for embedded
Linux as desktop Linux.
Linux quickly matured from an experimental system to an
industrial-strength operating system. Embedded Linux projects have
followed closely behind, moving from experimentation and small-scale
development to complete distributions. There is still transition on
- Standardization: as with most Open Source software, Linux tends
to fragment when under heavy development, then come back together as
best-possible solutions are arrived upon, and compatibility and ease
of development become important.
- Interface: having never adopted a One True UI, Linux has been
given many interfaces both in desktop and embedded products. The
demands of embedded and mobile devices, coupled with a strong
commercial interest in embedded Linux (e.g. as compared to Linux on
the desktop) have led to the narrowing of efforts in UI to a smaller
number of implementations with wider acceptance.
- Commoditization: as happened with the Linux server market years
ago, embedded Linux is moving from a fully roll-your-own product to
one in which components (kernel+runtime, RTOS environment, UI, etc)
can be adopted without requiring major customization.
As a result of these transitions, the barriers to embedded software
are falling; not only in that advances in hardware make it possible to
provide more and richer functionality in portable devices, but also
that the greater availability and functionality of embeddable software
are reducing the effort and expense of creating small, portable
devices. The confluence of the above-discussed factors provide
substantial opportunity for the embedded Linux market, and for those
seeking a profitable way to advance and participate in it.
Of course, the "embedded devices" category covers the territory
between microwave oven controllers to handheld devices only slightly
less powerful than laptop computers. Where does Linux fit into this
spectrum? Many are finding that a system as powerful as Linux extends
surprisingly low in this range, often being the best choice not only
for PDAs but also for appliances and cell phones.
Our goal is not to proselytize Linux, but it is worth mentioning a few
bullet points that device manufacturers have found attractive about
- Strong networking support
- Has already been ported to many different CPU architectures
- Relatively small for its feature set
- Easy to configure
- Huge application base
- Modern OS (eg. memory management, kernel modules, etc.)
For a discussion on the relative performance of Linux on different
hardware configurations, see the forthcoming Blue Mug Linux
It is widely agreed that Linux is powerful, fast, and free, but it
intimidates novice users. For Linux to be widely adopted as a desktop
system, it would need an intuitive installation procedure and
user interface to allow novice users to accomplish basic tasks,
while not getting in the way of experienced users.
This is not a problem on embedded devices. Linux comes pre-installed,
and the limited nature of an embedded device allows developers to
define an intuitive user experience (if any).
When discussing embedded systems options, the following attributes
emerge as important considerations.
- Size: One of the most important considerations for any embedded
project is how much size is available for code. This affects the basic
decision of whether or not to use Linux, which kernel to use, the C
library, GUI, etc.
- License: Linux and much Linux software is released under the GNU
Public License (GPL). This is a mixed blessing for embedded
developers. On one hand, this has created a huge body of free, stable
code to draw from. On the other hand, you cannot make arbitrary proprietary
modifications to GPL software - in general, if you ship a modified version of
GPL or LGPL software, you must supply the source code to your customers when
they request it.
- A proprietary application can run on top of GPL'ed software; it's
perfectly fine to distribute proprietary Linux libraries and applications,
even though the kernel itself is GPLed. GPL software does not automatically
change the license of other software installed on a device.
- However, an application that uses a GPL'ed library must also be
GPL'ed (the criteria is whether proprietary software shares process
space with GPL'ed software)
- Most libraries are released under the Lesser GNU Public License
(LGPL) to specifically allow proprietary applications to use the
- Some companies release dual-licensed software which is GPL'ed for
general and developer use, and requires royalties for non-GPL use.
- Real-time: Many embedded devices require specific actions to
occur at precise times. An operating system that provides this
real-time behavior is called a Real Time Operating System (RTOS).
Linux is not an RTOS (it would requires trade-offs that are
inappropriate for server or desktop usage). Linux can be used in
devices with RTOS requirements, however. One solution is to tweak the
kernel so it behaves like an RTOS under most circumstances; this is
called soft real-time. Another solution is to run the Linux kernel
within an actual RTOS. Yet another solution is to modify the kernel so
it provides true RT behavior.
- Toolchain: The toolchain is the set of tools used to build your
applications, or to create an image for an embedded device. Some
toolchains allow you to compile on one architecture for another
architecture (ie. compile an ARM image on an x86 desktop; this is
called cross-compiling). Most distributions use the standard GNU
toolchain, but there are some distributions and embedded device kits
that supplement the GNU toolchain with proprietary tools.
- File system support: An important device consideration is what kind of
file system support is required. For example, whether any writable storage is
needed. Some systems may require a journaling file system so power-offs won't
- MMU: Linux has historically required hardware with a memory management
unit (MMU) to allow for protected memory. Several organizations and vendors
supply kernel variants that eliminate this requirement, though with some
moderate impact on the userspace environment. More recent development kernels
have native support for MMU-less operation.
- Applications: Compared to PalmOS or Windows CE, there is not a large
library of end-user applications designed specifically for embedded Linux.
Certainly some do exist, and there also exists a very large body of
applications, utilities and libraries written for Linux in general that could
be adapted to embedded use.
- GUI: Other embedded OSes come with a single vendor-imposed GUI, but
embedded Linux doesn't. There is no one dominant GUI developer, but rather a
large number of companies and organizations with GUI offerings. OEMs may need
to design and construct a GUI or derivative GUI; in this case, 3rd party
developers wishing to release software for the device will have to work with
the OEM's GUI.
The Linux Kernel can be used "AS IS" in embedded systems. Thus, the
word "Embedded" in Embedded Linux offerings typically means "ported
to a number of CPUs and boards," usually with cross-development tools and
sometimes with real time extensions, but otherwise providing the same
standard APIs with the same code base.
The Linux Kernel itself. This is "The" Linux Kernel making waves in
the server world and to a lesser degree in the workstation market. It
is an attractive option because the source code is freely available
and the constant world-wide development effort keeps it up-to-date,
efficient, and running on an ever-growing list of
devices. Even-numbered versions are reasonably stable, while odd ones
represent work in progress. Of course, embedded projects may pull the
interesting parts of a development-stage kernel into a stable one.
Kernel development focuses on performance, so there are speed-for-size
trade-offs. Despite this, the kernel is actually not that big after
dropping unnecessary modules, drivers and console messages
inappropriate for the embedded/mobile space. It is quite possible to
get a kernel in the 800Kb-900Kb range. Most embedded Linux offerings
ARE this Kernel, patching as necessary for real-time capability or
In the 2.5 kernel series, the mainline Linux kernel tree rolled in
much of what had been the uClinux tree, adding MMUless target
support to the main kernel.
MontaVista's Linux-Kernel-plus-real-time extensions offering, with
ports to x86, StrongARM, XScale, PPC, MIPS, superH and
others. MontaVista supports a huge range of support packages for lots
of embedded platform boards. MontaVista Linux 3.0 is based on the 2.4
See "MontaVista" in Commercial Embedded Linux Distributions.
LynuxWorks' Linux offering. While they call it an embedded
distribution, it's basically a Linux kernel package with some
utilities (OS loader, tools to construct and deploy kernel and
filesystem images) and development process documentation. They
provide a "version stabilized" kernel, currently based on 2.4.17,
and a realtime variant derived from RTLinux.
See "LynuxWorks" under Commercial Embedded Linux Distributions.
uClinux's stands for "microcontroller Linux." This is a derivative of the
Linux kernel originally intended for operation on microcontrollers,
principally those without MMUs. As a result they've gotten the kernel down
into the 500Kb range. Adopted and maintained by Lineo, who include it as an
MMU-less option in their Embedix distribution.
The major feature of uClinux, MMUless operation, was included in the main
Linux kernel distribution as of version 2.5.46. uClinux was written with the
NEC v850 and Motorola 683xxx and ColdFire CPUs in mind, though support for
ARM, SPARC and i960 exist in various forms. A number of demo-level products
have been publicized running PalmOS applications under uClinux on m68k using
only a reimplmentation of the PalmOS API.
The variations from Linux are:
- No fork(). A process can't fork and have both parent and child in
the runnable state. Instead it can vfork(), which blocks the parent
until the child either exec()s another executable or exits, whereupon
the parent returns to runnable. This kind of forking also loses
copy-on-write, typically a strength of the Linux kernel, but there's
no penalty since vfork() doesn't permit any real modification of data
anyway. This would require small adjustments when porting some Linux
apps to uCLinux, but the most common usage of fork() is compatible
with vfork() so it would be a minimal adjustment in most cases.
- No malloc(). Processes allocate memory to themselves via mmap().
This requires a bit of care in handling pointers, but isn't really an
issue since the Linux ports of most C libraries implement malloc() via
mmap() anyway, since it's faster.
- No memory protection. Applications have unhindered access to
the entirety of system RAM, including kernel space. This makes it
possible for user-space apps to crash each other, or the kernel. This
does not hinder multitasking or other features, but it would make it more
important than usual to develop and debug applications on a standard
Linux kernel so that such faults could be detected in advance.
Environment simulation becomes accordingly more important. There are
security implications to an unprotected memory system, but
hostile-code hosting isn't really feasible on nonvirtualized systems
Lineo's Linux offering extends the kernel to support realtime features,
multi-core architectures and other services. See "Lineo" under Commercial Embedded Linux Distributions.
"Embeddable Linux Kernel Subset," a project to make Linux run
without the memory management features of the 386 architecture (that
is, on 8086 and 80286s which lack MMUs). Estimated memory requirement
is about 512k. The project makes no pretense of planning support for
other platform targets.
The project is far from complete. There is no ELKS distribution. It
has gotten as far as virtual consoles, mounting a root filesystem
floppy, provide basic serial and parallel I/O, and connecting to
another computer over a null-modem SLIP link. Large pieces like
swapping and shared libraries are missing.
The ELKS project seems to have stalled early this year; the latest update
to their website is from early May 2002.
There have been two approaches to enabling real-time performance. One
is a dual-kernel approach in which the Linux kernel is run as the
lowest-priority thread of a RT microkernel, and the other is to make
the Linux kernel fully preemptible. Each has its drawbacks; the former
requires real-time applications to be written as kernel modules
without all the features of user applications, whereas the latter may
prevent low-latency responses.
REDICE-Linux is a hybrid RT kernel implementing both these
strategies. Modules can achieve low-latency (5-10 usec claimed,
though for unspecfied hardware) interrupts and context switches, and
real-time user applications enable much easier real-time application
development. Based on RED-Linux, a University of California at Irvine
TimeSys Linux is an umbrella for several kernel extensions, until recently
sold together as Linux/RT.
- Linux/GPL: Lowers kernel latency, primarily though kernel
preemption and O(1) scheduling.
- Linux/Real Time: provides basic realtime features,
high-resolution clocks and timers, and periodic scheduling.
- Linux/CPU: provides guaranteed CPU allocation by way of
process-initiated CPU reservations.
- Linux/Net: provides guaranteed network bandwidth allocations
One of the best-known realtime Linux implementations; the development
was sponsored by Finite State Machine Labs (FSMLabs), who now sell
RTLinux and related products. RTLinux is available under the GPL.
RTLinux claims genuine hard realtime, via an RT kernel which runs the
realtime processes, and runs the Linux kernel as its least-priority
thread. Processes not requiring realtime response are written as
standard Linux apps. Realtime processes are implemented either as
realtime threads or interrupt handlers, and are controlled by the RT
kernel. The RTLinux project claims a typical 15usec response time
to an interrupt assertion on the x86 platform, with an admonishment to
compare the worst-case response time (less than 30ms on a 486-33,
"near the hardware limit"). Realtime threads follow the POSIX
realtime conventions for pthreads. RTLinux is available on x86
(incl. SMP), PPC and Alpha; floating-point support within realtime
threads requires the availability of hardware FP, currently working on
the x86 and PPC architectures. There appears to be no ARM support.
A project demonstrating RTLinux. Fits RTLinux, shell, networking, ssh,
sshd, scp, sunrpc, http and outgoing http onto a floppy (3MB when
decompressed and running, totalling about 5MB).
A GUI interface intended for controlling/monitoring the realtime side
of RTLinux, built on Gtk+.
Since FSMLabs sponsored the development of RTLinux, they have provided
a dual-license version wherein the realtime portion is available in
binary-distribution form. RTLinux/BSD does much the same thing as
RTLinux, but with the NetBSD kernel.
The Real Time Application Interface is a realtime implementation and API
written by the Dipartimento di Ingegneria Aerospaziale Politecnico di Milano.
Combines Real Time Hardware Abstraction Layer (RTHAL) with RTAI. Usable for
both uniprocessor and symmetric multiprocessor systems on x86, PPC, ARM and
MIPS. Current versions derive from the 2.4 kernel series.
RTAI provides guaranteed, hard real-time scheduling, yet retains all
of the features and services of standard Linux. Additionally, RTAI
provides support for UP and SMP-with the ability to assign both tasks
and IRQs to specific CPUs, 486 and Pentium, simultaneous one-shot
and periodic schedulers, both inter-Linux and intra-Linux shared
memory, POSIX compatibility, FPU support, inter-task synchronization,
semaphores, mutexes, message queues, RPCs, mailboxes, the ability to
use RTAI system calls from within standard user space and more.
Originally, RTAI used the same approach to realtime as RTLinux,
whereby the Linux kernel was itself a low-priority thread within a
realtime kernel. With more recent revisions, kernel and userspace
threads are both natively scheduled - all kernel threads are hard
realtime; userspace threads can be either soft- or hard-realtime as
they prefer. Interrupt handlers can be written for either kernel- or
Differences between RTAI and RTLinux:
- RTLinux makes changes to kernel source files (maintenance issues like bugs and updates and widespread modifications)
- RTAI is implemented with a hardware abstraction layer (a structure of pointers to interrupt vectors) which means only having to change 20 lines of existing code and add 50 lines of code to the kernel source. The intrusion to the kernel is quite small and it is possible to revert Linux to standard operation by changing the pointers in the RTHAL structure back to the original ones. While some expected the RTHAL to create performance issues, in practice its effect has not been significant.
Five core loadable kernel modules supported by the HAL:
- rtai provides the basic framework
- rtai-sched provides periodic or one-shot scheduling
- rtai-mups provides simultaneous periodic and one-shot schedulers or dual periodic schedulers with different base clocks
- rtai-shm provides memory sharing between real time and Linux processes
- rtai-fifos provides an adaption of NMT-RTLinux's FIFOs
QLinux is a joint effort between AT&T, the U. of Texas Distributed
Multimedia Computing Laboratory and U. Mass' Laboratory for Advanced
System Software (or researchers thereof). It attempts more recent
developments in QoS/realtime on the 2.2 Linux kernel (a 2.4-derived
version is nearing release.)
The major claims in QLinux are the available scheduling: Hierarchical
Start Time Fair Queueing (H-SFQ) for CPU and network, Lazy Receiver
Processing (LRP) networking, and a preliminary Cello disk
scheduler. These features provide for rate guarantees in CPU and
network allocation (including interrupt handling.)
The last published data from the QLinux researchers was in July 1999;
a revision was promised "later this summer."
A Debian spinoff intended to build a miniaturized Linux distribution
along the same lines as Debian itself, and with the goal of eventually
rejoining the mainstream Debian effort. (Many Debian sub-projects are
conducted this way). The two steps are: (1) produce a "Guide to
Embedding Debian," and (2) create tools and embedded packages (Emdebian). This project frequently stalls.
- EmDebSys (formerly CML2+OS): An integration of Eric Raymond's
CML2 with the Debian build system, providing a menu-driven tool that
configures an entire embedded Linux distribution, to produce a root
filesystem and a kernel.
- binutils, gcc, libraries
- Emdebian (re)packaged gcc 2.95.2 cross compilers, binutils and
standard C/C++ libraries for PPC and ARM. The binutils was adopted by
Transvirtual for use in XOE.
EmDebian has expressed an interest in cross-building from Debian
source packages, something not yet addressed by the Debian
distribution (which otherwise has a highly sophisticated and
automatable build system).
The Familiar project, a Debian-based PDA distribution, moves in
parallel track to Emdebian and there has been a lot of tool-sharing
between the two. One difference is that Emdebian is for devices which
do not need to add packages often, whereas Familiar has a built-in
package management system.
Handhelds.org is a loosely knit community of developers aimed at
facilitating "the creation of open source software for use on
handheld and wearable computers." They believe that corporate
distributions tend to be focused on narrow niches, whereas
distributions created by enthusiasts may be able to explore and
develop more territory. Familiar is the most important distribution;
the Intimate distribution is a derivative of Familiar.
Handhelds.org is sponsored by Compaq.
Familiar is a Linux distribution for the Compaq iPAQ h3600-series of
- Based on Debian's ARM distribution
- ipkg and dpkg (Debian) package support
- Supports either Gtk+ or Qtopia
- JFFS2 support (read/write flash)
An embedded Linux distribution developed on RedHat 6.2. The project
goal is to reduce the tedium of building an embedded system (stripping
libraries, binaries, and meeting dependencies), making it easy to
configure and install.
- Developed on a RedHat 6.2 platform
- Packages build and maintained using rpm
- Packages are customized to minimize memory footprint
- Ncurses driven graphical configuration and installation tools
- 2.2.x kernel enhanced for embedded applications
- USB support
- PCMCIA support
- XFree86 support
- Rescue floppy disks
An independent project focused on developing a fully open-source
implementation of the Zaurus distribution, with substantial
improvements over the original.
The OpenZaurus project targets the Sharp Zaurus PDAs (the released
SL-5000D and SL-5500 as of this writing); it strives for binary
compatibility with all existing Zaurus applications, save those
intended for the Geode JVM. It uses Opie, the GPL fork of Qtopia
(concerning which see Opie in the Windowing and Embedded
GUI Projects section).
Most of OZ's advantages derive from its ability to make many
incremental releases; unlike the commercial Zaurus distribution, OZ
uses networked ipkg repositories to enable users to upgrade individual
packages over the network (OZ also includes a writeable flash
filesystem to make such upgrades possible.) The networked package
repositories have many more packages available than the commercial
distribution, all of which may be downloaded and installed using the
OZ package manager, AQPkg.
- UI: Opie (Qtopia-compatible)
- Toolchain: GNU; gcc 3.2, 3.0 and 2.9x are supported
- Kernel: Lineo's Embedix 2.4.6 kernel, with extra drivers and fixes
- Other features as with Sharp's SL-5500 distribution
The four biggest players in Embedded Linux today are MontaVista,
LynuxWorks, Lineo and, to a lesser degree, Red Hat.
The key word in these businesses today is "support." This translates
to SDKs (ported distributions + board support packages + documentation
+ tools), and professional services. The primary R&D expenditures
today are for porting, driver and tool development. Most vendors
maintain some form of realtime Linux variant.
One of the older and more widely-recognized embedded Linux companies,
Montavista was founded in 1999 as a pure-Linux play. MontaVista
derives its income in part from sales of its embedded Linux
distributions and partly from related professional services and
support. The company has a substantial number of shipped products to
its credit, and its staff are active in several areas of the Linux
community. The CEO, James Ready, got his start in the VRTX real-time
MontaVista's major product is their MontaVista Linux distribution, a
soft-realtime (preemptible) variant of the Linux kernel, and assorted
add-on components including Java and Qt/Embeded.
(Formerly named Hard Hat Linux). A distribution based on the 2.4
Kernel with O(1) scheduler and kernel preemption. MontaVista has
ported the kernel to a huge range of devices.
- Target configuration GUI
- Library optimizer
- gdb hardware debugger (Abatron BDI)
- standard GNU toolchains, configured for cross-development
- KDevelop IDE configured for cross-development work
- Graphical debugging via DDD (KDevelop may provide integration
- Real-time tracing and tools adapted from the Linux Trace Toolkit
Components derived from open source code are themselves open-source
(that is, the entire target system). No indications as to the
licensing of the toolset are given, but the major components are
derived from free software.
x86, StrongARM, XScale, PPC, MIPS, superH. Huge range of support
packages for lots of embedded platform boards.
GNU toolset and supplementary tools mentioned above.
MicroWindows, Qt/E, "squashed Gtk," TinyX. Pushing for QTopia.
JFS/Resier, JFFS. Claim "ROMable kernel from 0.5MB with options for
image compression, XIP, flash file system, and field upgrade"
- Other features
- API emulation of VxWorks, pSOS
- PCI hot swap reliability - recovery, reconfiguration
- J9 Java VM, VAME (embedded Java development tools)
- Browsers: ViewML, Mozilla, NanoZilla, NetFront.
- Audio and video streaming
A refinement of the "Professional Edition" discussed above, the CGE
version of MontaVista Linux adds high-resolution POSIX.1b timers, NGPT
POSIX threads, an assortment of "hardened" drivers, enhanced crash
handling and analysis, IBM's kernel dynamic probes, etc.
Formerly Lynx, makers of LynxOS, they made an abrupt switch to
Linux. Most notable in this context for the BlueCat Linux
distribution. Headed by Inder Singh (also heads the ELC).
LynuxWorks still sell LynxOS, and when they say realtime, they're
usually talking about LynxOS - LynuxWorks only started offering a
realtime variant of their BlueCat Linux distribution in late 2002.
The company has had some difficulty posititioning its offerings, with
the competitive pressures of Linux on LynxOS from both outside
offerings and within LynuxWorks' own product line. From a marketing
standpoint, their approach has been to promote them together as a
spectrum with Linux at the "open, free, compact" end and LynxOS at
the "hard realtime" end.
LynuxWorks places special emphasis on their various alliances and
partnerships, mainly at the product compatibility level. They
averaged about one press release per month in 2002 concerning
compatibility with an embeddable or relevant technology vendor.
On 5/17/2001, LW issued a press release saying they'd support Intel's
IXA on BlueCat. There does not seem to have been any public
followup. No other communications-specific efforts are mentioned.
Ranging from 30 day installation (included with purchase) to
"long-term development and deployment support available, designed to
meet the lifecycle of embedded products."
A distribution that does as little as possible to deviate from the
standard Linux workflow. It includes a slightly modified 2.4.17
kernel, a command-line installer script, some utilities (OS loader,
kernel and filesystem image tools), and documentation.
See A developer's review of LynuxWorks' BlueCat Linux SDK at
Includes the GNU toolset, though they seem to maintain independent
versions from either the FSF or Cygnus. Their development kit runs in
Red Hat or TurboLinux. They also mention their own set of debuggers
and IDEs, none of which mention Linux on the actual product
LynuxWorks resells Metrowerks' CodeWarior IDE specifically intended
for BlueCat. Like all of Metrowerks' Linux IDEs, this variant of
CodeWarrior is based on the GNU toolchain.
Mostly OSS without royalties, "enhanced with the LynuxWorks
cross-development and embedding tools."
x86, PPC, powerquicc, ARM7, ARM9, StrongARM, superH, MIPS , XScale.
Bluecat's promotional materials make no mention of this, but LW issued
a press release 4/11/2001 stating that they would roll Qt/E into
BlueCat, and subsequent evidence indicates they have done so with
Qtopia as well.
An enhancement of BlueCat Linux providing realtime facilities; uses
the RTLinux approach of running the Linux kernel as a thread of a
realtime superkernel; the code is directly derived from RTLinux and
was licensed from FSM Labs.
One of the bigger embedded Linux firms. They're selling the SDK as
much as the distribution. Partnering with Sharp for their new Zaurus
PDA, with Samsung to form Lineo Korea which will market Linux embedded
devices in that country, with Tri-Pacific Software to port TPS'
timing and scheduling tool suite to Embedix.
During a series of reorganizations and recapitalization uphevals,
Lineo changed its name officially to Embedix, Inc. in April 2002, and
was acquired by Metrowerks (itself a subsidiary of Motorola) in
December 2002. It is unclear, as of this writing, the degree or
manner in which Lineo will function as a result.
Lineo markets their Embedix distribution in three major flavors: one
for PDAs, one for residential networking devices and another for
- PowerPC, x86, MIPS, SuperH, ARM, Strong Arm
- Bootable CD installer
- Extension for hard real-time support
- Linux shared library loader
- Reduced glibc, special tool reviews what symbols programs
require, gets rid of the rest.
- Slang and newt for console ui
- TCP/IP, firewalling/network routing, web server ftp client,
telnet client and server
- Qt/E, Qtopia, Microwindows, Allegro, LinuxPEG UIs
- GUI environment; while previously limited to Windows, as of 2.4
appears to support Linux hosts as well.
- Includes CodeWarrior's IDE
- Small uCLinux Kernel option
- Hard and soft real time Linux extensions, plus tools
- Target Wizard
- Source package management
- Cross compilation framework
- GNU compiler suite
- Qt/E and other UI options
A set of development environments targeted towards particular boards
and processors. "Allows a developer to install and have success with
a Linux Operating System and basic networking functionality in less
than 15 minutes."
- MCP750 Compact PCI
- MCPN750 CompactPCI
- MVME2700 Sandpoint
- 7410 RPX Lite 823
- Megatel (PC/II + dx) PC104
- CPV5300 Compact PCI
- CPV5350 Compact PCI
- CPN5360 Compact PCI
- IDT 79S334 (release 2) Malta
- LinkUp L7205
One of the largest and certainly the best-known Linux distribution
vendor. RedHat is primarily focused on the desktop and server
markets. However, RedHat has made a number of relevant acquisitions,
most notably of Cygnus Solutions, a long-time embedded tools vendor
and developer of eCos.
RedHat's major interests in the embedded sector derive from a general
corporate desire to further the success of Linux in any field, and
from its ownership of Cygnus. The company's professional services
divisions also provide support and custom embedded engineering.
The GNUPro suite is derived from Cygnus' work on the GNU toolchain;
typically sold with some extra support, and copies of the Insight
graphical debugger and Source-Navigator code browser/IDE.
RedHat's marketing materials for GNUPro list as features a number of
very common Linux tools, such as grep - while these are certainly
very helpful to embedded or other development, they are so common as
to be considered "features" only to newcomers to Linux or UNIX
eCos is an embedded OS originally developed by Cygnus before Linux was
widely used in the embedded space; it has a total footprint in tens or
hundreds of kb. It includes compatibility layers for Linux system
calls and ITRON/uITRON. It is available at no cost, and licensed
under the LGPL-like eCos Public License.
eCos is mentioned here because it forms the basis of the RedBoot
A featureful bootloader, usable with Linux amongst other OSes.
Supports downloading of images over serial links or ethernet TCP/IP,
remote debugging, etc.
A SDK for embedded systems consisting of Red Hat's Linux-based IDE
with their GNUPro tools, Source Navigator, lots of developer support,
example programs, kernels and run-time functionality for supported
Supports usermode linux (UML) as one of its development and debugging
- Kernel derived from 2.4.7
- Architectures: XScale, ARM, MIPS, PPC, SH, x86
- UI: Nano-X, MicroWindows, X/Windows, Qt/Embedded
- Toolchain: GNUPro as discussed above, gcc 3.0; gdb for
debugging. GUI confgiruation tool for package selection and
building (details sketchy).
Altera, the big programmable chip company, partnered with Microtronix
to provide a Linux development kit for the Altera Nios development
kit, a system-on-a-programmable-chip. The Linux distribution is
Microtronix ported uCLinux (which doesn't require an MMU),
to the Nios processor. Its toolchain is the GNU Pro toolset. Its C library
The Nios processor is a soft-core, programmable logic processor that
runs up to 50 MIPS and claims volume costs of $40 (since the
processor is 12% of the device, that's a $5 processor). Multiple
processors can be put on one device.
The Altera Excalibur processor is an ARM922T core, claiming up to 210
dhrystone MIPS. Linux Support for the CPU is provided by a
partnership with MontaVista.
PalmPalm, based and staffed in Seoul, is making efforts to participate
in the embedded Linux market. Their interest appears to be mainly on
the software side.
PalmPalm's site discusses a prototype SK Telecom/IMT-2000 Tynux-based
smartphone (about which more below)
- 2002: Sharp: PalmPalm worked with Sharp to produce the Korean version
of the Sharp Zaurus SL-5500.
- March 2002: Agreement with Texas Instruments to provide an
embedded Linux port to TI's OMAP platform.
A Linux distribution focused on wireless Internet appliances. Add-ons
include a port of Opera, a JVM (no details), HWR, and standard PIM
apps, email, etc. By way of demonstration, they provide an mpeg movie
of an eval board running an X session through Gtk-ish apps under icewm
and a Puzzle Bobble game under Qt/E.
- Toolchain: GNU
- UI: Qt, Qt/E, X, Tiny-X, Microwindows, GtkFB
- Browser: Opera, Access NetFront
- Connectivity: unknown, but standard Linux 2.4 seems likely
A StrongARM-based reference board intended for use with Tynux
(manufacturer unknown; if PalmPalm has the capacity to build such
things, they don't advertise it).
- Toolchain: GNU
- UI: Qt-desktop on X
- Connectivity: USB-slave, Ethernet, (optionally 802.11, Bluetooth,
A convergence PDA-cellphone unit visually resembling an iPaq with an
ear-piece and H.323 camera. The PDA portion is built with
Qt/E. StrongARM based, 32MB RAM+32MB flash. Made for the Korean market
(intended release date was November 2000). Made in a partnership with
- Toolchain: unknown (presumably GNU)
- Interface: stylus, HWR
- UI: Qt/E
- Communications: CDMA, H.323+voice, Opera, VoIP, serial, USB, Bluetooth
Most noted for producing the Kaffe JVM (a cleanroom implementation of
Java), Transvirtual is now pushing for a model in which PDA
applications are platform-independent with a standardized
communication infrastructure. They achieve this with XOE, the
eXtensible Operating Environment, which is "an extensible browser,
rendering architecture and Web services engine that provides version
control, package management and optimized online / offline integration
all in one simple package."
Transvirtual ceased operations in Fall 2002.
(XOE used to be called PocketLinux. Two names are used
interchangeably, even on Transvirtual's website.)
The XOE "distribution" runs Kaffe, a Java Virtual Machine, on
Linux. XOE is an application that plays the role of window manager,
desktop, and web browser. Add-on applications are written in XML and
Java to define their look on screen, behavior, and communication with
other applications. The application model is XML-form-centric. An XOE
server can update applications as needed (either push or pull).
The UI assembles itself at runtime through XML interface description
files. This makes it highly themeable, but it does take a performance
There is support for native plug-ins players, e.g. for MP3, Flash, and
Transvirtual states availability for the iPaq, Cassiopeia,
DoCoMo Sigmarion, IBM WorkPad Z-50, and the Clio.
The XOE distribution includes the usual set of PDA PIM apps, plus a
more conventional set of apps - Usenet reader, web browser (details
unknown), and mp3 player.
An interesting discussion of developing for PocketLinux is:
Based in Pittsburgh, PA, TimeSys' business focuses on selling their
in-house embedded Linux distributions and tools.
TimeSys provides two major Linux distributions, Linux/GPL and
Linux/Real Time; additions to the latter comprise Linux/CPU and
Linux/Net. All focus on improving resource availability and
predictability of the Linux kernel in various ways. The actual
distributions are distinguished largely by these added kernel features
and the tools to control them.
TimeSys also sells Windows-based tools for use with their Linux
distributions, including the TimeStorm IDE (based on the GNU
toolchain) and TimeTrace, a profiling and kernel/process event
logging tool for realtime Linux systems.
A GPL-only distribution adding latency reduction features to the
kernel scheduler. Provides a preemptible kernel, constant-time
scheduling, and makes interrupt handlers (top- and bottom-half)
schedulable. No realtime features are included other than those
already in the mainstream Linux kernel.
Adds several hard real-time features to the GPL release in the form of
proprietary modules. The default scheduler is augmented with one in
which applications may request either a Rate or Deadline Monotonic
fixed-priority system (256 levels, which TimeSys feels "approximately
equals infinite priority levels").
- Adds high-resolution timers/clocks, attached to
hardware-supplied clocks; implements the POSIX.4 timer API
- Adds task periodicity, and a new API for controlling it
- Implements priority inheritance within the pthreads API
A proprietary extension to the Linux kernel furnishing CPU time
reservation; provides guaranteed CPU clock time scheduling over
elapsed-time intervals. Uses the "resource kernel" mechanism
previously sold with Linux/RT.
Analogous to TimeSys Linux/CPU, uses the resource kernel to provide a
network reservation mechanism whereby applications can reserve
portions of available bandwidth over time.
A range of BSPs and toolchains based on TimeSys' Linux distributions
for specific evaluation hardware. ARM, MIPS, PPC, SH, ia32 and Sparc
are mentioned, including enhancements thereof (e.g. XScale).
A South Korean software company. They produce a desktop Linux distribution,
MIZI Linux, and an embedded distribution, Linu@.
Appears to be a typical embedded Linux distribution, based on a
pared-down standard 2.4 kernel using glibc and a standard gcc
toolchain. They say the GUI is Qt/E based, which probably means a
QTopia environment. ARM, StrongARM, MIPS, and x86 are
supported. Offered in several configurations, including Mobile, Thin, Box,
Mizi also sells a PDA for development with the Linu@ PDA distribution.
$450 gets you:
- Intel SA-1110 StrongARM CPU running at 206 MHz
- Digital FM radio
- 32MB Flash ROM, 32MB DRAM
- 240x320 TFT LCD supporting 16-bit color
- USB cradle
- Linu@ SDK
At one point, Coollogic seemed to have a Linux distribution for Internet
appliances, named Coollogic AE. However, their website no longer mentions
anything about it. Their focus seems to have shifted fairly recently; their
website now states that they have a "specific focus on systems that can
benefit the electricity industry."
The only product they list on their website is a "fully integrated
client-server networking solution", which seems to be an end-to-end
power grid management system. Details are few and vague. The company
now appears quiescent or deceased.
An out-of-the-box Linux distribution for Internet appliances. They
claim it can run out of 16Mb Flash, 32Mb RAM. There appear to be tools
for server updates and access points. Netscape is included. While this
product is marketed as providing Java on Linux, there was no
discussion of how Java is included; they may just mean
Java-as-run-within-Netscape. No longer actively marketed by Coollogic, it
may have been dropped as a product.
A Taiwan-based Linux-based Internet appliances company that came out
with a slew of press releases at the close of 2000; since then they've
been mostly quiescent.
A distribution based on a 2.4 pre-release Kernel that was modified to
reduce size and support chips without an MMU. Their GUI is based
on Tiny-X and Microwindows with a ViewML browser. They have a
screenshot of an iPAQ running their distribution.
An I/O accessory chipset intended to augment a more general-purpose
CPU; an SoC minus the CPU, more or less. This work was subsequently
incorporated into Samsung embedded RISC CPUs. The nature of the
relationship between Samsung and Esfia is unclear.
Red Flag is the largest Linux vendor in China. Redflag Linux was
originally developed by the Chinese Academy of Sciences expressly to
provide an alternative to Microsoft. Redflag is frequently referenced
in news articles concerning Linux adoption in China, though details
have frequently been contradictory.
A Redflag Linux distribution for industrial control applications,
providing a fully Chinese-language adapted environment, basic
distribution and IDE.
The featureset is essentially that of any standard embedded Linux
system, aside from the linguistic customizations - networking, remote
accessibility and debugging, and the usual set of kernel features.
- Platforms: x86/PC104; feature list mentions cross compilation
but not specific targets.
- UI: FLTK; RF has announced partnerships with TrollTech in the
past, so Qt/E is possible also.
- Toolchain: GNU-derived; customized host IDE
A Chinese embedded Linux company wholly owned by China MobileSoft.
Its strategy is not to produce a general-purpose Linux distribution,
but to partner with hardware manufacturers to supply software and
A general-purpose embedded Linux distributoon for smart phones, PDAs,
Internet Appliances, etc.
mLinux does not appear to be available for public download; available
user documentation suggests that it derives from uClinux and its
attendant libraries, though the claimed memory footprint of 200k is
low even for uClinux. MobileSoft claims realtime kernel
capabilities, but without detail on how this is accomplished.
mLinux uses the mGUI and MiniGUI libraries (depending on device
profile). MobileSoft emphasises support for simultaneous display of
Chinese and English characters, described as important for the Chinese
market. For a discussion of MiniGUI, see the MiniGUI entry in
the Windowing and Embedded GUI Projects section.
Communications features listed include USB/IR/Bluetooth connectivity
and a full WAP stack with browser.
- UI: mGUI and MiniGUI options
- Toolchain: GNU-derived
- Architectures: Dragonball, MIPS, ARM, XScale, OMAP 710, x86
- Communications: the standard driver set; Bluetooth and SyncML
support, WAP stack
A lightweight GUI toolkit implementing a Windows API. Architecturally
described as a client-server display system, display clients being
capable of running as separate users (and by inferrance, in discrete
RedSonic was founded by a group of OS researchers from the University
of California, Irvine; the company is now based in Santa Ana,
California, with another office in Taipei, Taiwan.
An embedded distribution based on the REDICE-Linux realtime kernel
(concerning which see REDICE-Linux in the Linux Kernels
section). The distribution is distributed in two forms:
- SecureSOHO: a platform distribution intended for use as a
SOHO-level router, VPN gateway, firewall and web proxy.
- RED-DVR: a distribution intended for use with networked video
monitoring, recording and retransmission.
REDSonic also markets RED-Builder, a GUI embedded build system; few
details are available.
The C library is an important component in any Linux system; it
represents the traditional interface between even the simplest
applications and the kernel API. The libc is the most visible
characteristic of a UNIX programming environment.
While most embedded Linux efforts use a libc in some form, it is a
separable function of the system; embedded Linux systems have been
made consisting entirely of the kernel and a static binary making use
only of the system-call interfaces in the libc.
Notably, much of the more visible functionality of a typical UNIX system
exists in the libc, not the kernel. For example, the kernel has almost no
role in user authentication or privelege; the kernel only understands setuid
execution of binaries and the setuid()/seteuid() system calls; all else
(collecting and comparing passwords, e.g.) is accomplished by the libc. A
device with a simple execution environment can use a substantially abbreviated
libc, or link the required parts into a monolithic executable.
Since the C library is often as big as the entire Linux Kernel,
picking the right C library is often as important a consideration for
an embedded project.
The GNU C library, glibc, is the standard C library for
Linux. It is large for two reasons: development efforts primarily
focus on speed, standards compliance and portability at the expense of
size, and glibc is in many ways the collective history of UNIX,
in many cases providing multiple interfaces for doing the same thing.
glibc contains much functionality not needed in even a mobile consumer
device, which can (with some effort) be stripped for custom
projects. It does not support MMU-less microcontrollers. Some efforts
towards modularity and size reduction (to which Blue Mug has
contributed) have been made in the SGLIBC project. Available under the LGPL
A size-reduced C Library developed alongside the uCLinux kernel,
but which can be used on any kernel as it strictly adheres to use of
the standard Linux libc APIs. It was designed from the ground up to be
a C library for embedded Linux, optimized for space. Supports standard
Linux architectures (such as x86, StrongARM, and PowerPC) and the
MMU-less architectures of uCLinux. Available under the LGPL
uClibc is for the most part source-compatible with glibc and the
Single UNIX Specification (SuS). Using uClibc requires
modification of the compiler environment (since gcc and binutils are
coupled to the target libc). Suitably adjusted toolchains are
available alongside uClibc.
Even smaller than uCLib, but accomplishes this by breaking API
compatibility with the standard C library, meaning applications may
need to be customized somewhat for it. It can be used to create small,
statically-linked binaries. Dynamic library support is available in
As of this writing, the project is still active and making releases.
Available only under the more stringent GPL license; alternative
licensing is available "for substantial contributions or project
A C library for embedded systems, managed by RedHat Software. Though
it is really a collection of several library parts. Designed more as a
bare-bones implementation than as a library for a particular OS, and
can be ported to different execution environments. Includes a libm
math library implementation.
Newlib is licensed under several licenses, all BSD-style, permitting
redistribution and linking with proprietary code.
sglibc attempts to reduce the size of GNU glibc by using patches to
discard sections of glibc source tree; as of early 2001 it compiled to
about 775k. This project has been mostly dormant since mid-2001, but
was usable at that point.
Linux desktop interfaces are the subject of frequent scorn by the
computing industry because:
- There is no standardized interface; instead, there are several that
- Therefore, they are perceived as being more difficult and
time-consuming to learn
- The interfaces aren't just like MS Windows
- The popular interfaces have grown out of open-source projects, and
many people assume that lack of corporate control means a poor quality system
- Most interfaces are works-in-progress, with much effort spent on
expansion and modernization than on usability, configurability and
Embedded and mobile devices have different user interface patterns and
requirements than desktop systems. A general-purpose desktop UI is
rarely appropriate for an embedded device. Each device usually requires
a customized interface to suit its needs and input/display facilities.
Linux's detachment from its UI and wide range of UI choices is an
asset for embedded device developers. Old UIs are easily removed and
newer or smaller ones are readily adopted.
An essential aspect of UI system design on Linux (as in other
environments) is the delegation of responsibility for graphics
operations. The general possibilities are:
- Single-process: a single app holds the graphics device and does
all drawing directly. This is simple and fast, but that process must
contain all application functionality.
- Server-drawn, client-requested: a server process holds the
graphics device and does all the drawing in response to requests
delivered from a client. This approach is taken by X/Windows and
PicoGUI - the former at a low level, the latter at a very high one.
- Client-drawn, server-arbitrated: each client accesses the graphics
device, but permission to draw, mutexing/scheduling and clipping issues
are handled by a server process. This approach is used by the Qtopia
- Client-drawn, client-arbitrated: one client draws at a time, but
drawing permission and occlusion is worked out by a peer negotiation
Historically, there have been two broad groupings of Linux UIs: those
that use the X Windowing System, and those that don't. X comes from
Linux's UNIX heritage. It is a very mature network-transparent
client-server windowing system. A single "display server" manages
client display requests through an interprocess communication
protocol; each application is a client of that display server. This
makes it remarkably crash-proof. X does not include any widgets, but
underlies many popular widget toolkits. Because it is so well
established and supported, it is an easy choice for many
users. However, it is fairly large and has an unavoidable performance
impact which limits graphics speed. Recent efforts both commercial
and independent have been made to produce smaller X servers, with some
success. Certain extensions to the X protocol permit clients direct
access to video hardware, e.g. for media playback or 3D graphics, but
little use has yet been made of them in embedded devices.
There are currently several major X-less UI offerings for embedded
Linux, including MicroWindows, Qt/Embedded, PicoGUI, and a collection
of Java-centric offerings.
At present, the most commercially popular has been Qt/E. Like Qt on
the desktop, Qt/E is available dually-licensed under the GPL or under
conventional royalty terms. Support for, or ports of Qt/E have been
announced by most of the major embedded Linux distribution vendors,
and Qt/E is the UI of choice in several major commercial
offerings. Qt/E, like Qt, is implemented in and available in C++.
UI products based on Java's AWT have also appeared recently, prompted
by the present fashionability of Java in the commercial software
sector. Java's virtual machine makes such UIs attractive inasmuch as
they may require less effort to adapt software to changing hardware,
or be perceived as doing so; mobile devices are now approaching
performance levels at which a JVM is a manageable expenditure of
potential performance. It is also becoming possible to integrate Qt/E
with Java (Qt-AWT), potentially enabling a fast UI with the
application development benefits of Java.
Gtk+ is a multi-platform GUI written in C with an object-oriented
There are two major desktops for Linux, GNOME and KDE. GNOME uses the
Gtk+ GUI toolkit, KDE uses Qt. It is difficult to say which is more
popular because it is hard to count free software installations. These
toolkits, which are independent of the desktop, can be configured for
There is a large body of software written for Gtk+. Gtk+ is a more
popular development platform than Qt. Gtk+ is developed by a large and
highly visible Open Source community, whereas Qt is a TrollTech
Gtk+ is licensed under the LGPL, which is significant because it
allows any kind of application to link against it. Qt/X11 is under
the QPL and GPL. Qt/E is GPLed. Consequently, no GPL-incompatible app
can be shipped that links against Qt without a royalty license from
There are two branches of Gtk+. Gtk+ 1.2 is the older, stable branch
that is found on most desktops. Gtk+ 2 was recently released and will
soon replace Gtk+ 1.2 on most desktops. Gtk+ 2 offers an overhauled
code base, TrueType fonts, and comprehensive internationalization, but
it is much larger than Gtk+ 1.2 (on the order of 3.5Mb). Gtk+ 1.2 may be
appropriate for embedded devices, Gtk+ 2 probably is not.
Gtk+ has several libraries:
- GLib - A well-tested low-level application library toolkit of
data structures, macros, type conversions, string utilities and a
- GDK - A wrapper for low-level windowing and drawing
functions. To move Gtk+ to a different windowing system, rewrite the
- GTK - The widget set, theme engine, and signal architecture.
- GObject (Gtk+ 2) - An extensible type system designed so other languages
can map into Gtk+'s object-oriented framework
- ATK (Gtk+ 2) - An accessability library so a library or toolkit
can support screen readers, magnifiers, and alternative input devices
- Pango (Gtk+ 2) - A library for text layout and rendering
- GdkPixbuf (Gtk+ 2) - A small extension to Gdk providing flexible bitmap
Gtk+ that renders directly to the Linux framebuffer rather than using
X as an intermediary. LGPL license. GtkFB is particularly well suited
to embedded/mobile Linux because it does not require the cost of X's
network transparency. A ballpark figure for the Gtk/FB libraries is
2MB (just Gtk, glib, and Pango).
- GtkFB requires a single-process model.
- If a GTK program makes direct X calls, they must be removed before it can work with GtkFB.
- Hardware acceleration is supported, but not implemented. This
means GtkFB can be slow, particularly on large screens.
- The following X features are not supported: Network transparency, DGA, multiple screen and visual support, Xv extension, and Xrender extension.
The other popular UI library for the Linux desktop. Qt is an
OOP-intensive C++ framework, which imposes its own structure on
applications using it. It has two flavors: a desktop version available
on many platforms (incl. *nix, MacOS and Windows), and an embedded
version running outside X. Qt employs a signal-slot event architecture
which requires preprocessor support.
Qt/E outputs to a framebuffer, or to a virtual framebuffer display
under X/Windows during debugging. Device footprint thus normally
excludes X, but adds drawing routines. TrollTech claims a typical
footprint from 1.5-3MB (for comparison, a reduced-size X server comes
to about 1.7MB, plus about 1.1MB for a reduced-size Gtk-based UI
library). Having eliminated X, Qt/E itself adopts a similar
client-server architecture among multiple processes (server-arbitrated
client drawing), and manages windows, input events, etc. By design, Qt
apps are more or less drop-in compatible with both Qt and Qt/E.
Internal dependency conflicts prevented Qt/E from compiling at any but
the largest configuration, so we cannot verify Trolltech's claims that
it can be less than 1Mb. The build process in general is not well
refined by open-source standards, presumably owing to relatively
narrow developer exposure.
Qtopia is an embedded application environment and suite of
applications (PIM apps, editors, terminals, games, MPEG player, etc.)
Supports handwriting recognition with loadable and user-customizable
stroke-sets (e.g. PalmOS Graffiti patterns, English lowercase, etc),
several soft-keyboard/pickboard implementations and Unicode input.
Behaviorally and visually, Qtopia resembles a mix of the PocketPC and
PalmOS UIs, with a number of original elements. The specific cosmetic
appearance can be adjusted with user-selected themes.
Qtopia's most visible deployment is in the Sharp Zaurus SL-5500 and
Qtopia was previously called QPE, the Qt Palmtop Environment.
Also see Opie.
- Platforms: Linux on x86 and ARM; should be trivially
portable to Linux on other architectures.
- Toolchain: GNU toolchain plus the Qt-supplied moc preprocessor.
While never marketed as a product, Trolltech developed QtAWT as a
Qt-based AWT drawing layer for Java applications. QtAWT is used for
the drawing support in Insigna Solutions' Geode JVM as shipped with
the Sharp Zaurus. Informal experimentation on that hardware indicates
TrollTech's IDE/RAD tool for building Qt and Qt/E apps. GUIs may be
drawn visually, with the corresponding code edited in Qt Designer.
- Platforms: Linux on most any architecture
- UI: Qt-X11
- Toolchain: Qt uses the GNU toolchain, augmented with its own C++ preprocessor.
Opie is a GPL-only fork of TrollTech's Qtopia embedded application
environment (see TrollTech in the Related Software Vendors
section). The name stands for Open Palmtop Integrated Environment.
Opie strives to maintain binary compatibility with Qtopia, while
adopting a more frequent and incremental release cycle and an entirely
GPL codebase. It is distributed via networked ipkg repository feeds
for the Familiar iPaq and OpenZaurus distributions.
The de facto windowing environment for UNIX on the desktop is X (its
correct names are "X," "[The] X Window System" and "X11").
X is a network-transparent client-server windowing system. A single
"server" arbitrates requests for display by many clients, who
conduct their drawing through a networked, socket or shared-memory
protocol. X underlies many of the other UI toolkits mentioned here -
X itself does not include any widgets or complex drawing code, leaving
this to client-side libraries (including the MIT Athena Widget set
(libxaw), shipped with X but not an inherent feature of it).
X is big, it's slow, it's major implementation (XFree) is incredibly
complex, and it's the universal standard. It survives on the desktop
because "big and slow" have been overcome by Moore's law. It has
percolated to embedded Linux efforts because of its ready
availability, portability and large application base.
X typically uses hardware acceleration when used on the desktop, and
framebuffer versions exist for systems preferring kernel framebuffers
(including most PDAs.) This is the approach taken by iPAQ Linux
distributions (e.g. Familiar) and the Agenda VR3.
Various projects surrounding X have sought to reduce its size and
improve its speed. Of these, Tiny-X is the most successful.
Keith Packard's small stripped-down version of X. Typical servers can
fit in less than 1MB. You have to build a server specific to your
video chip (there is no way to load alternate video drivers). Tiny X
is more robust than X in near out-of-memory situations. It has tracked
the mainstream XFree86 developments to date, including anti-aliasing
and transparency. Tiny-X was used on a Blue Mug project with
acceptable results on an ARM7 CPU.
A lightweight UI toolkit written in C++ that runs over the X window
system, released under the LGPL license. A "Hello world" program,
statically linked to the library on a 486 and stripped, is 110K. A
program containing all available widgets is 372K. Originally derived
from the interface to SGI's Forms Library (FL), the "TK" was added
to the end because (a) every UNIX GUI toolkit seems to acquire that
suffix, despite having nothing to do with Tk, and (b) "FL" is the
abbreviation for the state of Florida, making it impossible to search
for through web indices. FLTK has some association with the XForms
library in its heritage (XForms had a brief period of popularity with
the OSS community).
Like most OO UIs, FLTK emphasizes features available through object
inheritance, and unlike most OO UIs (e.g. Java/Swing, MFC and Gtk+)
does so in a way that yields a small library. FLTK claims a worst-case
static size of 372k (the cited example being its GUI designer utility,
FLUID), and a best-case of 97k on x86 ("Hello World"). Like most
every UI ever made, its widgets tend to be gray beveled rectangles.
FLTK was adopted by Agenda for the VR3, and aside from the
consequences of using both C++ and X, has been fairly effective. FLTK
is widely used in professional film graphics work, probably because of
its background with SGI and IRIX.
Microwindows is a portable Open Source windowing environment project
targeted at embedded systems. It simultaneously offers a Win32/CE API
known as Microwindows and an X-like API known as Nano-X. This
allows easy porting. MicroWindows writes directly to display hardware,
though it can run on framebuffer systems or X. It runs on
i386, PowerPC, MIPS, and StrongARM. The Microwindows site claims
it runs in less than 64Kb on a 16-bit system, 100Kb on 32-bit systems.
Microwindows lacks its own GUI. FLNX is a modified version of FTLK
that uses the Nano-X API. There are ongoing efforts to port Gtk+ to
Microwindows. The ViewML browser, which is based on the KDE (Qt) HTML
widget, uses a translation layer to convert between Qt and FLTK.
Microwindows is associated with Century Software, an embedded Linux software
The last Microwindows source release was a prerelease version, back in
November of 2001. Their web site stated that a final release of that version
would be out "after a several week comment period". Either "several" means
"more than a year", or development has stalled on the Microwindows project.
A reworking of the Linux framebuffer providing hardware acceleration,
input device abstraction and windowing, plus cosmetic features such as
alpha texturing, blending and modulation. LGPL license. Uses
anti-aliased TrueType fonts via freetype2. The DirectFB project
(http://www.directfb.org) has ported GDK, the drawing/graphics layer
underneath GTK 2.0; development appears to be active as of this
writing. Supported hardware acceleration is primarily that of desktop
video hardware - Matrox, ATI, etc. Also supports some NeoMagic
devices and the CyberPro 5xxx series, less specifically
desktop-oriented. An X server capable of rendering to DirectFB is
An event driven windowing system supporting 2D drawing primitives,
mouse and keyboard as event sources. The core graphics kernel is
implemented in assembly; Borland BGI-style and C++ OO interfaces are
provided. OpenGL integration is provided.
OpenGUI states support for MSDOS, QNX and Linux; architecture
portability is not mentioned, but given this platforms list and the
hand-coded assembly components it is probable that only x86 CPUs are
A GUI and windowing environment that offers a look-and-feel and API
analogous to WinCE. It is developed with strong Chinese language
support. MiniGUI supports two modes, 'MiniGUI-Threads' and
'MiniGUI-Lite'. The former allows one process to create windows in
different threads, the latter allows different processes to control
different windows. It can run on direct FB, SVGAlib, or QVFB.
The server is configured much like XFree86. The documentation is
somewhat difficult to use.
MiniGUI was developed by Wei Yong Ming. It was initially associated
with BluePoint Linux, a Chinese Linux distribution, before it closed
down. It is released under the LGPL. See www.minigui.org for more
MiniGUI is currently being maintained by Feynman Software Technology Co.,
Ltd., a fairly new (incorporated in September, 2002) Chinese software
development house, formed by Wei Yong Ming and the other MiniGUI developers
to develop MiniGUI commercially.
A small set of applications have been ported to MiniGUI:
Plays Macromedia Flash animations.
A multimedia player based upon Xine, capable of playing CDs, VCDs, DVDs and
A port of the Konqueror web browser. Supports HTTP, HTML, and CSS, but lacks
Small (100K stripped ELF binary) GUI built in an X-like
network-transparent client/server model, written in C. PicoGUI
approaches the issue of client-server performance by using a very
high-level interface and placing as much GUI code in the server as
possible; hence the server code defines how widgets are drawn, manages
The PicoGUI project's priorities are performance and portability; the
API is not yet fixed. While the code is of high quality, the unusual
design of PicoGUI's internals can require some extra learning if
internal modifications are called for.
The PicoGUI server has compile-time options for output to the Linux
framebuffer, SDL and X among others. Touchscreen and keyboard inputs
are supported; as of this writing, PicoGUI is the only embedded UI
known that can handle multiple independent pointer devices (that is,
two or more simultaneous mouse cursors).
Clients communicate with the server via TCP/IP or more usually via
UNIX domain sockets. PicoGUI's most interesting feature is that while
it supports multiple clients drawing to different windows, windows
cannot overlap, thus eliminating the performance impact of occlusion
computations. This comes with two exceptions - modal dialogs (whose
occlusions and clipping are easy to compute ), and multiple
"rootless" window support when run atop an X server.
The event model is straightforward; clients register callback handlers
with the server. There is extensive theme support for customizing
widget appearance, but there is no explicit support for sound or
The PicoGUI server is released under the GPL, the client library is
released under the LGPL.
"A GPL licensed small footprint C GUI toolkit for embedded
systems. It is tailored for, but not limited to, the RTEMS real time
kernel. It is not comparable feature-wise to real full blown windowing
toolkits like Nano-X or Qt/Embedded; but serves the needs for simple
memory mapped graphic presentation."
Requires Xserver and Xlib. It appears to emulate the frame buffer on
top of X.
Security/crypto researcher notable for embedded software purposes
inasmuch as by writing small, simple, secure code, he tends
inadvertently to write more embeddable code than larger-scale
- qmail: A small MTA written because DJB dislikes
sendmail. Emphasizes security (discrete executables, non-privileged
users, etc.) Manages a small memory footprint along the way. qmail is
quite demanding in terms of correctness of filesystem semantics (for
example, the fsync() system call and honoring of synchronous directory
metadata), and requires a fully implemented filesystem.
- tinydns (part of djbdns: An implemention of a DNS
server (1MB), caching dns ( 1MB plus configurable cache size), and
associated utilities. Similar precepts. djbdns also includes a
tiny, "correct" resolver library intended as an improvement over
that in POSIX/BSD.
DJB licenses his software under a compatibility-tied license; binary
source distributions are permitted if they use the same file paths and
supports the behaviors of a standard installation, and "behaves
correctly." Modified source distributions are forbidden. This has
caused friction with Linux distributions for some time, and has led to
some curious workarounds.
An OSS database engine based on the closed-source "HypersonicSQL"
package. Supports JDBC and a subset of SQL92, and cites a footprint
of 100k, with "embedded and server modes" available. Written in
Java, with a BSD license.
The project has also produced a version of hsqldb specifically for the
Sharp Zaurus, adding a QUI interface.
The Kaffe project is organized around Kaffe, an open-source JVM
originally developed by Transvirtual.
Kaffe is a clean-room reimplementation of a JVM and Java class
libraries. It is not called Java proper, because Sun does not certify
the Kaffe implementation; that said, it implements most of Java 1.2.
Kaffe supports both bytecode-interpreted and JIT-compiled execution -
interpreted mode everywhere, JIT on x86, sparc, alpha, ARM, MIPS and
m68k. It has been ported to some twenty operating systems besides
Linux, including eCos, VxWorks, pSOS, ThreadX, SMX, Nucleus and
RTEMS. AWT implementations exist for several GUI environments,
including the Linux framebuffer.
The Kaffe JVM was used in Transvirtual's Java-based XOE embedded
"Linux Embedded Appliance Firewall," a project working on "an easy to
use embedded Linux network appliance for small office, home office,
and home automation environments." Analogous to (and based on) the
LRP. Their current (May 2001) release is built on LRP, kernel 2.2.18,
and puts some extra emphasis on security (boots off a floppy, loads
runtime packages over the network, unpacks them into a ramdisk, runs
They are nearing release of their Bering 1.0 release, which upgrades to a
2.4.18 kernel, bug fixes, and general package revision updates.
The "Linux Router Project." A "networking-centric micro-distribution
of Linux." Intended to fit on a floppy; LRP has been used as a base
for quite a few subsequent distributions (LEAF, LRP-RG, Eigerstein,
Oxygen, etc.) Software goes on the floppy (sometimes pushing the
1.44MB to 1.62 or 1.72MB), gets decompressed into a ramdisk, run with
configuration stored on the floppy, etc. With a read-only floppy, it's
not subject to persistent compromise, and eliminates a moving
component (though at the expense of depending on the floppy, though
there's no particular reason it couldn't be put into a flash disk or
The LRP looks to have stagnated. Their primary FTP server is offline, as well
as most of their mirrors. The mirrors that are still up were last updated
in September of 2000. The last news posting to the LRP's website is from May
A tiny utility written by Rick Miller (a Transmeta engineer). It is
"a small spooler (an 'lpr' substitute) for printing on embedded
The last and only release was version 0.1, in March of 2001; the project
has stagnated, if it is not dead.
A GPLed embeddable nameserver and DNS cache. About 150k. Available
under more favorable terms than djbdns.
Seeking "the advancement and promotion of Linux throughout the
embedded, applied and appliance computing markets." They claim a
membership of 125, of
which about two-thirds are Linux plays. Notable lately for the "ELC
Platform Specification" initiative
(http://www.linuxdevices.com/news/NS2532595377.html). The ELC Platform
appears to have goals somewhat like the LSB (and includes part of the
LSB) - though it sounds a bit like stuff the Open Group used to say
once upon a time, too. Most of the major embedded Linux firms have
signed on, including MontaVista, LynuxWorks (whose CEO, Inder Singh,
is also heading the ELC), RedHat and Lineo. Also some big-ticket firms
like IBM and 3Com, though these may emerge more to be a source of
funding from companies that just want to have their hands in every pie
The following summarizes the major goals of the ELC Platform
Specification, based on a presentation by Singh. The specification
has been a very long time in coming; as of this writing it is promised
by the end of 2002.
- Fragmentation: claims that embedded Linux is already
very fragmented, roughly one source tree per component per vendor,
most of which are seeking the same goals in different ways; the ELC
feels this is a weakness compared to that offered by Wince, PalmOS or
- Code re-use: ELC claims a more standardized embedded Linux
platform makes for more reusable software across the board, even for
blackbox applications where everything gets tweaked somewhat
- Monopoly avoidance - outliving the vendor, escaping lock-in
manipulators, royalties, OSS, the usual.
- RT: includes POSIX 1003.13 PSE 52 & 53; this is quite important
to the ELC
- Common feature set: "current Linux practices and APIs," threads,
filesystems, with concessions for footprint
- ELC wants to be the logo - analogous to any emblematic
certification, aimed at firms developing for development houses
- GUI has substantial priority. (It's worth noting that TrollTech
is a member of the ELC, but the GNOME Foundation, Ximian, Sun and SGI
are not, which could skew the ELC focus on TrollTech's Qt/E GUI).
- Benefits of the POSIX standard in general
Also on the ELC:
- Maintains the de facto OSS view on proprietary IP, but they say
that it's not really an issue for the ELC at all.
- It's difficult to tell how much control ELC wants to have; their
verbiage suggests that they'd like to be the single most significant
thing in stating Linux' role in the embedded market.
EMBLIX promotes embedded Linux in Japan by setting standards and
providing education. It was formed on July 13, 2000 and serves a
parallel role as the ELC. EMBLIX has been present at ELC meetings.
Significantly, its advisory board includes members from Toshiba, NEC,
Red Hat, Finite State Machine Labs, and MontaVista Software.
The Japanese RTOS embedded market is interesting because it's very big
and about half of the designs use an ITRON RTOS. The EMBLIX
organization has concerned itself extensively with this, and is acting
(or attempting to act) as a facilitating body for hybridizing Linux
and ITRON, or porting the one to the other.
An organization established in June 2001, and composed of 24
technology companies. The TV Linux Alliance's stated goal is to bring
Linux to the cable set-top market, and thus facilitate the development
of new technologies in that market.
The approach taken by the Alliance, and as yet its only product, is to
produce a specification in which standardized APIs are laid out for
Linux variants offerred for use in set-top systems. The API being
standardized is that of the Linux kernel, its native drivers, and any
supplemental proprietary drivers. The specification is intended to
include a subset of the standard Linux APIs in addition to these
In October 2002 the Alliance announced its first release of the
specification; details of its contents are unclear, because the
contents of the document are declared confidential by the agreements
required by the Alliance to obtain it. Access to the specification is
subject to a licensing fee under normal conditions.
As of its inception, the TV Linux Alliance consisted of: ACTV, ATI
Technologies, Broadcom Corporation, Concurrent Computer Corporation,
Conexant, Convergence Integrated Media, DIVA, Excite@Home [now
defunct], iSurfTV, Liberate Technologies, Lineo [now part of
Motorola], MontaVista, Motorola, nCUBE, OpenTV, Pace Micro Technology,
Qpass, ReplayTV, STMicroelectronics, Sun Microsystems, TiVo, Trintech,
TV Gateway and WorldGate.
Whatever the success of the Alliance on its own hook, involvement of
the open source community is likely to be minimal; the degree of
overlap between the Alliance's foundership (membership is not
publicized) is minimal, and the restrictive distribution of the
proposed specification will be at least somewhat distasteful to most
open source developers. Concurrently with its announcement of a draft
specification, another announcement was made seeking the participation
of "vendors in the cable, satellite and telecommunications industry"
- perhaps a reflection of the degree to which the Alliance membership
consists of those on the manufacture and design side of things.
"OSK, Inc. specializes in operating systems and system software for
embedded devices and provides solutions for embedded devices in
collaboration with leading hardware and software companies." Based in
Seoul; their website appears to have been dormant since May 2000, and
no longer appears in KRNIC's domain registration records. Noted here
because they did issue a product that received some attention, though
nothing has come of it since then.
A uCLinux kernel port to the Palm; not the first such port, but
one of the only noted commercial attempts. Uses 500k ROM + 260k RAM;
built on kernel 2.0.33. The most notable feature was that it purports
binary compatibility with PalmOS apps, via WindStone PE. They provided
a ROM image, which is still available but does not appear to work on
the POSE palm emulator. WindStone KE, derived from uCLinux, has source
available; PE (the palm environment) and GE (the graphics environment)
Access is a Japanese firm specializing in embedded internet-appliance
software. They maintain a US presence as Access Systems America, but most
product development is done in Japan.
Access' flagship product, NetFront is an embeddable browser, providing
most of the features required of mainstream browsers - reasonably
and frames. NetFront supports addons, including HWR, SSL, streaming
video/audio, Flash, H.323, their own JVM, and various other
components. They cite a footprint of about 2MB for the mandatory
components, and another 70k for SSL and 512k for the JVM. A "compact"
version intended for cellphones and similar devices is also available,
supporting character-cell display, CHTML4, GIF, SSL, fitting in 512k
and reducible down to 300k ROM + 150k RAM. Versions specifically
intended for automotive applications and (Japanese) digital television
are also offered.
NetFront is more or less the standard browser for Japanese cellphones
sold under the NTT DoCoMo umbrella. The deployment list also includes
NetFront in the Sega Dreamcast, Compaq's Presario 213, three models of
Cassiopeia, and a series of other products from major Japanese
electronics manufacturers not released in the US.
NetFront has been ported to Qt/E, though early versions did not make use of
NetFront has become one of the standard browsers to include in
embedded Linux offerings; for example, it is offered as part of
MontaVista Linux, and Lineo's Embedix. In November 2002 Access
announced a partnership with MontaVista to the general effect that
NetFront v3 was included in or compatible with MontaVista Linux
An older Linux port of NetFront (v2.6) is marketed on its own as a
tool for developing Internet-related software on Linux-based network
appliances. NetFront has appeared in both GTK+ and Qt manifestations
on Linux, though both versions implemented at least some of their UI
using nonstandard widgets implmented by the application. Approximate
disk footprint for an x86 GTK-based demo of NetFront 2.5 is 1.7MB for
the browser (without libraries), plus another 1.3MB for the JV-Lite
JVM. Memory usage (also on x86) was about 11MB virtual, of which
VmLib (including GTK, libX11, etc.) accounted for 4MB.
An embedded JVM, certified by Sun. Minimal details available, but
cites compliance with the EmbeddedJava spec. Works with the NetFront
browser or standalone.
Formerly a vendor of several embedded-relevant products, including the
MicroWindows GUI,the PIXIL GUI application framework and the ViewML
reference web browser. As of this writing, Century no longer mentions
these efforts, and their website discusses only a set of
terminal-emulation and communications conduit products relevant for
The CEO of Century Software is still active as the chief maintainer of
the MicroWindows project (concerning which see the Microwindows
section of Windowing and Embedded GUI Projects.)
Founded by two guys from Massachusetts, who wrote Berkeley DB for
Possibly the most widely deployed embedded database, it's essentially
a featureful persistent hash table. Useful by way of persistent data
association. Distributed both commercially and non commercially (in
several fashions). Comes in four major flavors, all of them Open
- "Data Store"
The usual form of Berkeley DB; supports all the standard hash database
features (fast lookup, partial retrieval, large keys/values, reentrant
routines, minimum-copy, etc). Also provides rapid iteration, cursors,
logical joins, LFS, etc.
- "Concurrent Data Store"
As with Data Store, but supports concurrent access by multiple readers
& writers. Intended for databases with frequent or continuous read
access that must be allowed to run unimpeded, but on which updates are
- "Transactional Data Store"
Adds logging, finer locking, transactions and disaster
recovery. Intended for cases of substantial read/write concurrency
with frequent writes, and where transaction support is important. Via
the transactions, supports online-backup.
- "High Availability"
Adds data replication features; one DB system is delegated as the
master and coordinates writes. Should the master fail, another will
be delegated and take over the job.
A Norwegian firm noted mainly for the Qt UI framework and Qtopia embedded
application environment. TrollTech is a consulting firm of some substantial
history. Their principal community associations are through the KDE project
(which uses Qt as its widget toolkit and C++ framework), and the Sharp Zaurus
community (which uses Qtopia as its app environment).
TrollTech's relationship to the OSS community, and adoption of Qt generally
was impacted early on by its use of a GPL-incompatible license which made it
difficult to use with GPL-licensed code. TrollTech now licenses Qt under the
GPL (not the LGPL), and sells proprietary licenses under conventional terms.
It is conceivable that had this schism not occurred, Qt would now be the de
facto GUI toolkit across most all Linux desktops.
Qt, Qt/E, Qtopia, the Qt Designer, and QtAWT are discussed above in
Windowing and Embedded GUI Projects.
Trolltech has formed many partnerships with companies and consortiums
including Mizi, PalmPalm, Opera, Lineo, NEC, Ericsson, and KDE.
An Italian manufacturer of handheld POS units, ruggedized handheld
A ruggedized handheld terminal for remote data collection and
computation. Supports RS232 data transfer through a modem or
cradle. Includes a "removable data cassette" containing a battery and
SRAM. 8/16bit CPU @ 4/8/10MHz.
A palmtop intended for industrial and outdoor use. Similar to the
Dat300, but with options for an on-board card reader, barcode scanner,
a bigger display, and a 25MHz 32bit CPU (unknown type).
A further expansion along similar lines, the Dat500 runs Caldera's
OpenLinux with Microwindows. Same expansion features as that Dat400,
plus two PCMCIA slots and a "smart card reader/writer." Employs a
keypad and stylus entry, with HWR. Specifications cite three AMD Elan
UK embedded systems/electronics firm. (Blue Mug was employed by Aleph
One for some ARM-kernel work). They have three categories of
- ARM Linux Products
- LART/KSB StrongARM devel boards
Development boards for StrongARM-derived embedded devices. The LART
board is the CPU, RAM, two serial ports and flash storage. It connects
to a KSB I/O board, which adds an IDE bus, 44.1kHz/16bit audio, PS/2
connectors, IrDA, POTS, USB-slave, video and a (planned) ethernet
adapter. Sold for £495 each. The LART is 7.5x10x1.2cm, the KSB board
fits in the same footprint and increases the thickness to 2cm.
The LART hardware was designed by the Technical University of Delft, and
released under an "Open/Free Hardware License".
Aleph One states on their website that they have sold out of LART
system boards. They project availability of its successor, dubbed the
Balloon, at the end of 2002. Preliminary hardware details are similar
to the LART, but with NAND flash and a SmartMedia socket.
- Aleph ARMLinux
A Debian-ARM port with seemingly substantial documentation. Marketed
alongside the LART board, as well as on its own for the "Risc PC," and
with utilities geared towards a preexisting Acorn RISC OS
install. They sell CD sets for £40, and offer consultant
services and support as optional purchases.
- Acorn products
- PC-compatibility boards
RISC OS appears to have been the mainstay of Aleph One's business prior
to Linux. They market PC card drivers for various versions, and "PC
Cards" for RISC OS machines, which add an x86 daughterboard to a RISC
PC, with the idea of interoperating their respective software.
- Psychological and Physiological Instruments
Aleph One somewhat incongruously offers biofeedback gadgets of various
sorts. "Relaxometers," which measure such physiological stress
factors as skin conductivity/galvanic response, temperature change,
etc. The marketing materials on this topic bear mostly on the use of
such devices in personal stress-management.
A wholly-owned (and now defunct) subsidiary of Kessel International
Holdings, a Hong Kong electronics firm. Agenda Computing was the first
company to bring a Linux PDA all the way to the consumer
market. Agenda was geographically widely distributed, with a head
office near Irvine, CA, and its staff spread around the US.
Due to poor sales and internal issues, Agenda has suspended
development. They appear to have shut down US operations; the website
for their German operations states that they have no more Agenda VR3
devices left for sale. Unaffiliated community development proceeded
for several more months, but has largely stopped with the release of
the Sharp Zaurus PDA.
- VR3 PDA
A Palm-like PDA based on a fairly full-featured Linux distribution. The VR3
was the first Linux PDA to market (and the only one as of this writing). Hyped
long in advance of its release, the VR3 was released almost a year behind
schedule and was never regarded, even by its developers, as suitable for
mass-market use. That said, the VR3 packs a full Linux kernel, glibc and X
server, and is theoretically able to make use of the existing range of
applications for the Linux desktop.
Physically the VR3 is slightly smaller than a PalmV (7.5x11cm) and 17
grams heavier (144gm) than a Palm M100. Uses NEC's mobile MIPS R4000
at 66MHz (widely regarded as insufficient; Agenda had planned to
double this in subsequent revisons, and had conceded it would likely need
to move to the ARM architecture.) 8MB RAM, 8MB flash. IrDA plus one serial
port, gray-scale LCD, stylus, xscribble HWR. Able to use Richochet-style
serial wireless or other serial modems (which must supply their own
Designer and manufacturer of SBCs; includes embedded Linux in its OS
lists alongside WinCE and others. ADS' products are based on the ARM
and StrongARM. As a hardware manufacturer, their interest in Linux is
mostly that of supporting another embedded player.
ADS is hyping a yet-to-be-released XScale development board on their website;
details are scarce. Feature set includes Intel's PXA250 XScale processor,
a SA-1111 companion chip, XGA resolution video support, ethernet and USB.
ADS produces a plethora of development boards featuring StrongARM processors:
An iPaq clone targeted at industrial and further-embedded applications
(measurement devices, e.g.)
- Toolchain: not supplied, varies with OS
- UI: varies with OS
- Communications: ethernet, PCMCIA, serial
- Graphics Master
A board-and-flatpanel with emphasis on graphical capability and I/O
- Toolchain: varies with OS
- UI: varies with OS
- Communications: ethernet, PCMCIA, flash-2, 7 serial ports, USB
(both host and device)
- Graphics Client Plus: similar to the above, but without an
integral display. Less I/O (ether, 3 serial, 10 TTLs)
Also graphics-intensive, drives two flatpanels
Several applicable, including Lineo, Century Software, MontaVista and
Wind River. No details provided on what they actually do for these
A French telecom startup focused on low-cost network appliance units,
with an emphasis on telephony.
- Aplio/PRO (Net2Phone PRO)
The Aplio/PRO is an Internet phone; Aplio makes it, but it is sold by
net2phone, who sells Internet phone service. The Aplio/PRO connects
over ethernet to a broadband Internet connection, or with a PPP
connection over a POTS line. 4MB RAM, 2MB flash. $169. Intended for
market in large part to companies for conference-room use, where
adequate bandwidth is likely to be present. Compatible with MS
Netmeeting and any other voice system using H.323.
- UI: No screen; UI is an analog phone plugged into the back, and the unit adds a speakerphone.
- Communications: H.323, G723.1, G711, ethernet
- Wireless: n/a
This was an earlier version of the Aplio/PRO which used a dialup Internet
connection instead of an ethernet connection. No longer available.
One of the major PC OEMs; until recently the largest, superseded only
recently by Dell. Compaq has a history of toeing the Microsoft line,
and only diverged from that path briefly with their acquisition of
DEC, and consequently Tru64/Ultrix, VMS, and the Alpha architecture
(Microsoft then discontinued the Alpha port of WinNT, though there
were other motivations involved). As an OEM with substantial
manufacturing and fabrication capacity, Compaq has the ability to
produce embedded devices, but their major profit streams are in PC
desktops and servers.
Compaq was acquired by HP in 2001-2002, in a highly publicized and
controversial merger. Much of Compaq's relationship to the embedded
Linux realm occurred in their Cambridge Research Labs (CRL), which
appears to have survived the merger. However, they now list their
mobile and wireless computing research (grouped together as "Project
Mercury") as completed, and their current stated areas of research
have no direct embedded relevance.
Compaq's "Palm Size PC" - a 16MB/16MB 70MHz MIPS unit with a
13x8x1.25cm form factor and 4-bit gray display. Marketed as a WinCE
device. Like most every such unit, it has basic audio hardware,
pitched as an MP3 player and voice memo recorder. Largely buried in
Compaq's handheld promotional materials.
- iPAQ H3600/3660/3700
Actually the name of Compaq's entire product line, "iPaq" is
generally used to refer to their popular StrongARM-based handheld. The
unit measures 13x8.3x1.57cm, weighs 6.3oz (by comparison, a Palm m100
weighs 4.9oz), and carries 64MB RAM. At these dimensions, the iPaq
doesn't fit into a pocket, and is priced well beyond the Palm
range. The iPaq uses MS' PocketPC and ships with miniaturized version
of MS Word, Excel, IE and Media Player.
- Connectivity: USB-slave, modem/ethernet add-on cards, GSM
- Licensing: standard Microsoft licensing scheme
- UI: PocketPC, WinCE API
- Wireless: PCMCIA Bluetooth, 802.11
- Storage: Flash expandable to 80MB, possibly 144MB at the cost of
two-card expansion pack size.
- HWR: WinCE's letter-based handwriting recognition
- RT: None mentioned
Compaq acquired or licensed the Blackberry, added the iPAQ label, and
ships it under their own name. Not further discussed here since there
are no related Linux efforts.
- Independent Linux-on-iPaq efforts
Quite a bit of effort is being spent in this area, mostly by
individual and small groups of developers. By appearance the most
advanced OSS development is handhelds.org's Familiar
distribution, a miniaturized Debian with most of the architectural
aspects of a desktop distribution (X, Gtk, Python, perl, etc.) The
iPaq is frequently used as a demonstration platform by embedded Linux
firms - partly because it presents well visually, and has enough
space to demonstrate an incompletely-stripped software package, and
enough RAM that a small distribution can live mostly in buffer cache.
The automaker. As with any large, old-economy company, it's difficult
to research them adequately - they don't seem to have public CVS
repositories. Recent press activity concerning Linux use at Chrysler
concerns their adoption of Linux supercomputing clusters for crash
- Super8 Hemi:
A concept car demonstrated at the North American International Auto
show. Contains four pc104 units, each running RedHat 6.2; one hidden
control/server units, one unit in the center of the dash and one each
for rear-seat passengers. Functions are controlled by pushbuttons and
voice commands (method unknown). The on-board systems are connected via
ethernet, and the car maintains a connection to the Internet via CDPD
cellmodem, 802.11 and Ricochet. The 802.11 link is intended for
downloading from a wireless LAN while parked at home (e.g. transmit
MP3s). Most of the software is Java based, engineered by Sun.
- UI: Espial DeviceTop
- Communications: ethernet internally, 802.11, CDPD analog, proprietary browser, email.
- Partnerships: The car was built by Dodge-Chrysler, Sun assembled the computers and Java systems
Ericsson has started looking into markets related to cellphones.
- H610 "Cordless Web Screen":
A StrongARM-based web tablet device, intended for around-the-house
use. Routes through its base station via Bluetooth. It was
never commerically released because the market (in Q1/2 2001)
"is not mature enough for such devices."
The H610's lineage is intermingled with Ericsson's HS210 "Cordless
Screen Phone," a first-generation tablet device of identical
- UI: Qt/E
- Communications: Bluetooth, Opera
- Wireless: Bluetooth-to-LAN
- Storage: 32MB RAM, 32MB flash
An Italian embeddable hardware vendor supplying pc104 and CompactPCI boards.
A "complete Linux-based system designed to be run on very small
industrial computers." Cites a requirement of 2MB RAM, 2MB ROM, and a
feature list essentially identical to that of the Linux kernel's
freshmeat.net appindex entry ("multitasking, multithreading, memory
protection, fast I/O..."). The featurelist includes "embedded
cgi-capable webserver," telnetd, "an email server, with the ability to
execute commands sent by email from a remote site" (this one should
remind the sysadmin types of the bad old days of sendmail), CORBA
support (?), Tcl, etc. The current version is based on kernel 2.0.38
ETLinux appears to actually have been developed by Prosa Srl, an
Italian Linux professional services company, under the sponsorship of
Eurotech S.p.a, who needed an OS for their PC104 systems.
While not a Linux product itself, IBM has some interest in seeing
embedded Linux run on the PPC. Their offerings include PPC
system-on-chip (400-series) units. Alongside the PPC they reference
MontaVista and OnCore Systems. One marketing example provided is the
Total Impact briQ, a 20-watt LinuxPPC network appliance. Most of IBM's
embedded efforts, Linux and otherwise, involve the PPC architecture;
IBM sponsors much of the PPC kernel development.
- Enterprise Zaurus
In late 2002, IBM and Sharp announced a joint effort to produce a PDA
for enterprise users based on the Sharp Zaurus. Planned features
include roaming VPN support and interoperation with IBM's WebSphere
Everyplace Access systems.
- DB/2 Everyplace:
The embedded version of DB2, "DB2 Everyplace" is offered for
embedded Linux-x86, WinCE, PalmOS, EPOC and QNX Neutrino-x86. In each
case the footprint is around 150k, plus another 50% or so if JDBC is
enabled. DB2-Everyplace includes replication and 2-way synchronization
(e.g. with a full DB2 version), implements "a subset of SQL99," and
appears to be used in a library rather than a multiprocess fashion
(this may be a product of the PalmOS port, towards which there is some
overemphasis). Notably missing is support for the ARM series and IBM's
own PPC architecture. IBM does not readily disclose licensing costs,
but DB2 is clearly at least in part non-free - though it includes
some GNU tools in its add-on package for compilation and PalmOS
- "The Watch":
As a research project, IBM built a wristwatch-sized Linux device; the
unit is 56x48x12.25mm at 44gm, and runs Linux 2.2, X, IrDA, Bluetooth
and a touchscreen. Not intended for product development, the project
nonetheless garnered substantial community attention as a miniscule
Linux device (though IBM may well have been more interested in the
hardware development aspect than the software, in this context).
The "PowerPC Open Platform" - an open reference design of a PPC-based
ATX board intended as a working model for Linux appliance development.
- ViaVoice Mobile Device Edition:
A miniaturization of IBM's voice recognition software. Listed as
"Standard Multiplatform Edition," and described as "easily ported" and
"designed in C." Supports WinNT's RTOS, but listed as "not necessary."
Cites a requirement for 200k each RAM & ROM per vocabulary, 5-10
MIPS, and an 8kHz sample rate.
Indrema was a company attempting to build a Linux-based game
console. Historically, this was in the early stages of the buildup to
the current troika - Sony's Playstation2, Nintendo's
Dolphin/GameCube, and Microsoft's Xbox (at the time, Sega's Dreamcast
was also nearing release, but has since been discontinued). Indrema
exhibited an early prototype at LinuxWorld in 2000 before running out
of money and closing down in April 2001. It's CEO, John Gildred, moved
to "a Japanese electronics company" and intends to develop a PVR
device based on the same technology. After Indrema closed down, the
project was adopted by the TuxBox effort, a group of coders attempting
to build much the same thing through more conventional open-source
methods. This effort appears to have largely faded in favor of
Indrema's Linux distribution, intended to ship with the Indrema
console. DV/Linux was a distribution intended for media applications
and gaming - the focus lay on the latter, but PVR uses were also
- UI: unknown
- Connectivity: ether, modem, USB-host
- Toolchain: internal SDK, including the GNU toolchain
A large Taiwanese technology manufacturer. IT-product focus. At one time
they produced a low cost Linux PDA, as well as a Linux-based web-pad. They
still produce PDAs, although only for PocketPC.
Their offerings were:
- CAT PDA
A low-cost (less than $200) PDA intended first for the Taiwanese
market. Uses the Linpus Linux distribution for Asian language
support. Uses an NEC 66Mhz MIPS CPU. Very similar to a Palm device in
form factor and appearance. MP3 playback and audio recording,
BlueTooth/CF. The usual PIM apps, including a "Microsoft Word/Excel
Reader" and Outlook compatibility. Also cites PalmOS emulation, but
does not give details.
A StrongARM-based web tablet built around a stylus interface. 800x600
VGA display, USB slave (cradle provides USB host), PCMCIA, IrDA,
ether, Bluetooth. Optionally includes a camera and fingerprint
sensor. Uses Netscape 4, with standard web
support. 24.4x17x2.4cm. Runs Linux by default (unknown distribution),
WinCE is listed as an option.
As with the webpad, but uses a Geode GX1 233MHz CPU, adds miniPCI and
PCMCIA slots, and uses a larger TFT LCD, Audio. 1-2h runtime cited on
Sells the Eon, an "anything box" in the appliance computing market,
basically a box with CPU, 64MB RAM, a 16MB Flash Disk, and video,
network, sound, and other I/O support. They also distribute their own
flavor of embedded Linux, called NeoLinux, which is based on Red Hat
and ships with QT and FVWM, as well as their own, interestingly-named
apps, ezManage and ezSecure. NeoLinux's design appears to be driven by
the idea of an appliance - a generic box whose functionality is
determined by the software running on it. Thus NeoLinux is a trimmed
version of Red Hat that attempts to avoid specialization at all costs.
Formerly Seopyung System[s], based in Seoul. See www.hntek.com
- HNT ("Human And Technology")
HNT produces a line of StrongARM-based PDAs. It is unclear if these are
actually shipping products, or development prototypes. All of them list
support for Linux (specifically, the LINUETTE distribution), and optional
support for Windows CE.
The base model is the Exilen 101. Sporting a 206 MHz SA-1110 processor, it
has 32MB of SDRAM 32MB of flash. It features a 4 inch, backlit display
capable of 640x480 resolution at 16 bit color depth. The built-in lithium
ion battery has a rated life of 7 hours, and connectivity is provided through
USB and IrDA (RS-232 serial is listed as an option). Expansion capabilities
are through PCMCIA (type 1 and 2), and an MMC slot. The form factor looks
to be geared towards horizontal usage.
Also included is an application suite, which looks to be a mish-mash of
various applications including a web browser, MP3 player, email client,
and the standard set of PIM applications.
The Exilen 102 features a smaller, 3.8 inch display at 320x240 pixels, and
cuts the memory down to 16MB flash, 16MB SDRAM. The PCMCIA and MMC slots are
done away with in trade for a CompactFlash slot. The Exilen 102 looks to be
geared towards vertical usage.
The Exilen 104 has similar specifications to the 102, however it comes in
a sleeker, rounded case.
The Exilen 201 adds a video camera to the Exilen 101. A 1/7 inch CMOS
sensor provides CIF resolution (352x288) video, at 15 frames a second.
In addition to the Exilen series of PDAs, they describe a concept device
they developed for SK Telecom, the IMT-2000 Terminal. In addition to the
features of the Exilen 201, it adds a CDMA module, and a Bluetooth
HNT also offers a development board, named the "Linuette Box". It looks to
be a development board offering the features of the Exilen 102.
- Media Terminal:
The media terminal was to be a set-top box with internet (ala WebTV),
digital-tv and PVR facilities; Nokia has for some time had a degree of
participation in interactive/digitial television technologies.
Media-specific features included an alpha-blending facility (possibly
the X render extension, but X is never mentioned; Mozilla generally
uses X, though), video scaling, and "2D and 3D residential and
network games." Loki Software, a now-defunct Linux gaming company,
was reputedly involved in this latter facility.
The Media Terminal was never formally announced as a shipping product,
and Nokia no longer makes mention of it publicly.
- Toolchain: unknown
- UI: unknown, some proprietary features
- Storage: hard drive on the order of 20+GB
- Communications: television reception, [AS]DSL, ether, modem, PCMCIA, USB, IR, Firewire, ISO7816-3 smartcards
One of the more widely publicized Linux PDAs and roughly comparable to
the iPaq, with less memory. StrongARM based, 16MB RAM, 32MB/64MB
flash, quarter-VGA LCD. The Yopy is pitched as a next-generation PDA
(where the preceding generation is defined as the stuff PalmOS runs
on), and as such provides the usual PIM apps, plus MP3 playback,
and an optional digital camera add-on. While at first the Yopy was
developed for the W Windowing system (a lightweight predecessor of X
windows), it now uses X Windows with a Gtk+ GUI. The Yopy has a CF2
slot which can be used, among other possibilities, to store
an IBM microdrive or other storage gadget.
The Yopy can be purchased on G.Mate's website for $399 US. It
measures 4.0 by 2.7 by 0.6 inches and weighs 5 ounces. Originally
designed with a conventional tablet-style form factor, the consumer
version of the unit was produced with a clamshell screen-and-keyboard
design, with most of the mass on the lower half. Battery life is
longer than 12 hours. The lack of a backlight for the color screen has
been a drawback.
- UI: Gtk+/X Windows
- Toolchain: GNU
- Display: 3.5 inch 320x240 with 16 bit color support
- Communications: IrDA, USB, serial; Bluetooth and wireless modems planned for CF2 slot and/or USB.
- Storage: 64MB RAM, 16MB ROM, other by add-on
Large Japanese electronics firm. Sharp has been producing PDAs for
the Japanese market for some time.
The Zaurus PDA is one of the highest profile Linux-based consumer
projects. It's a 206Mhz StrongARM-based PDA using Linux and Java
offering a blackberry-sized QWERTY keyboard which is explosed by
sliding the bottom down. There are also 7 navigation buttons. The
screen is a quarter-VGA LCD touch display. The UI is based on Qtopia.
Insignia's Jeode Java virtual machine also serves as a second software
platform. It is based on Lineo's Embedix distribution.
A nearly identical device with 32MB RAM was originally marketed to
developers as the SL-5000D. After releasing the early devices, Sharp
conducted a cycle of community development, which likely improved the
consumer version a great deal.
A curiosity of the SL-5x00 units are their use of a portion of the
(battery-backed) system RAM as flash; the root filesystem is a
readonly cramfs filesystem stored on flash. The ramdisk survives a
reboot, but can be cleared with a hard-reset procedure, at which point
the device returns to its out-of-box state. A side effect of this
approach is a somewhat awkward arrangement where two filesystem trees
are managed by the packaging system - invisible to users, but
somewhat troublesome for developers.
- UI: Qtopia and Java
- Memory: 64MB RAM (some portion used as a static-RAM disk, 16Mb
- Toolchain: GNU, plus Qt Designer
- Communications: IR, USB, serial, CompactFlash (II) slot
(possible peripherals include 802.11, modem, etc.) Sync with desktop
provided via Qtopia's SyncML implementation.
- Browser: Opera
- Audio: 44.1kHz playback, mono voice recording via an external
1/8" connector, but no onboard speaker or microphone
A revision of the SL-5500 for the same market. This is an incremental
revision based on feedback to the -5500. It adds an onboard speaker
and microphone, adds a 1700mAh battery at the expense of a slightly
thicker form-factor, revises the keyboard slightly, and replaces
StrongARM CPU with an XScale.
Internally, the split-RAM configuration used for the SL-5500 units was
replaced with 32MB of conventionally-employed RAM, and 64MB of NAND
- CPU: 400MHz XScale
- Memory: 32MB RAM, 64MB NAND flash
- Audio: 44.1kHz stereo; onboard mono mic and speaker
- Other specifications as for the SL-5500
Source: http://www.linuxdevices.com/news/NS3449791061.html, et al
A slimmed-down PDA-style device produced for the Japanese market; in
most respects the device is a variant on the SL-5500. It is
significantly smaller (2.4x4.4x0.5", 4.2oz). This version eliminates
the hardware keyboard while adding Kana HWR. An onboard speaker is
included, in addition to the usual headphone jack. Claimed runtime is
12 hours continuous, approximately twice that of the SL-5500.
- CPU: 200MHz XScale PXA210
- Communications: SD/MMC, IrDA
- Other specifications as for the SL-5500
physical examination, et al
A palmtop-style device based in part on the SL-5500, and marketed (as
of this writing) exclusively in Japan. The SL-C700 has a reversible
clamshell form factor; it can be folded either to a laptop-style
opposing arrangement to use the QWERTY keyboard, or to a tablet-style
arrangement to use the screen alone.
- UI: Qtopia and Java; full-VGA LCD screen
- CPU: 400MHz XScale PXA250
- Memory: 32MB SDRAM, 64MB flash
- Communications: CompactFlash, SD/MMC, IrDA
- Other specifications as for the SL-5500
Sony is a large multinational computer, consumer electronics and media
company. Sony's participation in the Linux and open source
communities has historically been almost nonexistent. However, few
exceptions are worth noting.
In December 2002, Sony and Matushita (producer of the Panasonic line
of consumer electronics, among others) jointly announced a
collaborative effort to develop "an enhanced Linux platform for
digital home electronic devices." The intended product of the effort
is a Linux platform specifically suited for inclusion in home
audio/video components and other consumer electronics devices. The
effort focused on development of a platform rather than products;
following this development both firms are to evaluate the merits of
the platform for use in their actual devices.
A distinguishing factor of the announcement was the up-front
declaration that any source code produced by the effort would be
released under the GPL.
Partitipation was considered for related firms under the umbrella of a
forum group; Hitachi, IBM, NEC, Philips, Samsung and Sharp were
mentioned as potential candidates for involvement.
Sony's CoCoon, announced in September 2002, is a PVR device intended
for the Japanese market. It was described in particular as "the
first of [a]... line of products that aim to become an alternative to
the PC for accessing Internet conent." The device runs MontaVista
Linux on a 350MHz MIPS CPU, 160-320GB HDD,
Initial press-release material concerning the device described a
feature set much like that of the TiVo devices (also based on Linux)
available for some time in the US. However, PVRs have obvious
technological intersections with the Internet, so the device makes
reasonable sense in terms of a consumer Internet media-appliance
strategy. Such appliances have been tried before with poor success
rates, but Sony's background as a media megalith may help it along.
Java 2 Micro Edition. A reduced-size (and therefore reduced-feature)
Java environment (virtual machine, libraries, classes, etc.). To make
up for feature loss, Sun makes the J2ME feature set customizable. They
do this at two different levels. First, you can choose between
configurations. Currently, there are two configurations available, the
Connected Limited Device Configuration (CLDC) (which includes the K
Virtual Machine [KVM]) and the Connected Device Configuration (CDC)
(which includes the C Virtual Machine [CVM]).
The CLDC targets devices with 16 or 32 bit CPUs and less than 512K of
memory available to Java and its applications. The CDC is targeted at 32
bit CPU devices with 2MB or more for Java and apps. The distinction
between configurations might also be the line between mobile devices
and static embedded devices (which, at the very least, will have more
power). Apparently a configuration is somewhat tweakable, even after
you've shipped it on a device (the data sheet is somewhat vague on
this point, however). The second level at which you can customize J2ME
to match the needs of your device is called a profile. Profiles are
aimed at "particular device categories and industries" as determined
by industry groups in Sun's Java Community Process Program.
Sun has always had a rocky relationship with the open source community
concerning Java and its derivatives. The Java certification
requirements have histortically been incompatible with redistribution
rights considered essential for free software - hence there are as
yet no GPLed JVMs officially certified by Sun. This obstacle seems
now to be easing with recent changes in the Java Certification system,
and there have been indications that Sun is considering opening the
source to its own J2ME implementations.