Services
x[ Home ][ Services ][ Case Studies ][ Research and Development ][ Customers ][ About Us ]


Blue Mug Research : Embedded Linux Survey

Abstract:

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 els-feedback@bluemug.com.

Contents:

1 Introduction

Updated 2002/12/27

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.

1.1 About this Survey

1.1.1 Sources and Methodology

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.

1.1.2 Feedback

Please feel free to send us corrections, additions, or any general comments to us at els-feedback@bluemug.com. We appreciate your input and would love to hear your opinion on how to improve this document.

1.1.3 About Blue Mug

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 info@bluemug.com.

1.2 What is Linux?

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 distributed.

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 security.

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.

1.3 What is Embedded Linux?

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.

1.4 The Embedded Linux Market

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 three fronts:

  • 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.

1.5 Why Embedded Linux?

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 Linux:

  • Royalty-free
  • 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 Performance Survey.

1.6 Isn't Linux Hard to Use?

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).

1.7 Considerations

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 library

    • 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 corrupt data.

  • 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.

2 Embedded Linux Kernels

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.

2.1 Linus Torvald's ("The") Linux Kernel

Updated 2002/12/27

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 other features.

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.

2.2 MontaVista Linux (Professional and Carrier Grade editions)

Updated 2002/12/17

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 kernel.

See "MontaVista" in Commercial Embedded Linux Distributions.

2.3 BlueCat Linux / BlueCat RT

Updated 2002/12/13

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.

2.4 uCLinux

Updated 2002/12/27

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:

  1. 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.

  2. 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.

  3. 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 anyway.

2.5 Embedix

Updated 2002/12/14

Lineo's Linux offering extends the kernel to support realtime features, multi-core architectures and other services. See "Lineo" under Commercial Embedded Linux Distributions.

2.6 ELKS

Updated 2002/12/27

"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.

2.7 REDICE-Linux

Updated 2002/12/27

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 research product.

2.8 TimeSys Linux

Updated 2002/12/12

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

2.9 RTLinux

Updated 2002/12/27

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.

2.9.1 MiniRTL

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).

2.9.2 RTiC-Lab

A GUI interface intended for controlling/monitoring the realtime side of RTLinux, built on Gtk+.

2.9.3 RTLinux/Pro, RTLinux/BSD

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.

2.10 RTAI

Updated 2002/12/27

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 userspace.

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

Sources:

http://www.linuxdevices.com/articles/AT6605918741.html

http://www.aero.polimi.it/rtai/

http://www.aero.polimi.it/projects/rtai/history.htm

2.11 QLinux

Updated 2002/12/17

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."

3 Non-commercial Embedded Linux Distributions

3.1 Embedded Debian Project (EmDebian)

Updated 2002/12/27

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.

3.2 Handhelds.org

Updated 2002/10/28

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.

3.2.1 Familiar

Familiar is a Linux distribution for the Compaq iPAQ h3600-series of handheld computers.

  • Based on Debian's ARM distribution
  • ipkg and dpkg (Debian) package support
  • Tiny-X
  • Supports either Gtk+ or Qtopia
  • JFFS2 support (read/write flash)

3.3 PeeWeeLinux

Updated 2002/08/09

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

Aimed at:

  • Rescue floppy disks
  • Routers
  • Firewalls
  • Thin-Clients
  • Etc.

3.4 OpenZaurus

Updated 2002/12/27

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

4 Commercial Embedded Linux Distributions

Updated 2002/12/14

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.

4.1 MontaVista

Updated 2002/12/17

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 kernel.

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.

  • Partnerships

    As frequently happens, MontaVista does not clearly distinguish its partnerships from customer relationships. Recent partnerships include:

    • November 20, 2002: Partnership with InterVideo, Inc. co-offerring LinDVD, a software DVD decoder for embedded Linux devices.
    • November 19, 2002: Partnership with ACCESS (See Access Systems Co., Ltd) to support Access' NetFront 3.0 browser on embedded Linux systems.
    • October 15, 2002: Partnership with Hughes Software Systems to produce GPRS, VoIP and SS7 stacks for embedded Linux. Pitched under the auspices of "carrier grade linux."

  • Notes:
    • A chunk of their funding comes from Intel Capital.

4.1.1 MontaVista Linux

(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.

  • Tools:
    • 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 also)
    • Real-time tracing and tools adapted from the Linux Trace Toolkit (LTT).

  • Licensing

    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.

  • Platforms

    x86, StrongARM, XScale, PPC, MIPS, superH. Huge range of support packages for lots of embedded platform boards.

  • Toolchain

    GNU toolset and supplementary tools mentioned above.

  • UI

    MicroWindows, Qt/E, "squashed Gtk," TinyX. Pushing for QTopia.

  • Storage

    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

4.1.2 MontaVista Linux, Carrier Grade Edition

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.

4.2 LynuxWorks

Updated 2002/12/27

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.

  • Partnerships

    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.

  • Communications

    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.

  • Support

    Ranging from 30 day installation (included with purchase) to "long-term development and deployment support available, designed to meet the lifecycle of embedded products."

4.2.1 BlueCat Linux

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 http://www.linuxdevices.com/articles/AT9197473298.html.

  • Toolchain

    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 descriptions.

    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.

  • Licensing

    Mostly OSS without royalties, "enhanced with the LynuxWorks cross-development and embedding tools."

  • Platforms

    x86, PPC, powerquicc, ARM7, ARM9, StrongARM, superH, MIPS , XScale.

  • UI

    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.

4.2.2 BlueCat RT

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.

4.3 Lineo

Updated 2002/12/27

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.

4.3.1 Embedix

Lineo markets their Embedix distribution in three major flavors: one for PDAs, one for residential networking devices and another for set-top boxes.

  • 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

4.3.2 Embedix SDK

  • 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
  • CodeWarrrior
  • Qt/E and other UI options

4.3.3 Embedix BDK

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."

Supported Boards:

  • PowerPC
  • MCP750 Compact PCI
  • MCPN750 CompactPCI
  • MVME2700 Sandpoint
  • 7410 RPX Lite 823
  • x86
  • Megatel (PC/II + dx) PC104
  • CPV5300 Compact PCI
  • CPV5350 Compact PCI
  • CPN5360 Compact PCI
  • MIPS
  • IDT 79S334 (release 2) Malta
  • ARM
  • LinkUp L7205

4.4 Red Hat

Updated 2002/12/27

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.

4.4.1 GNUPro Developer Tools

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 development.

4.4.2 eCos

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 bootloader.

4.4.3 RedBoot

A featureful bootloader, usable with Linux amongst other OSes. Supports downloading of images over serial links or ethernet TCP/IP, remote debugging, etc.

4.4.4 Embedded Linux Developer Suite

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 platforms.

Supports usermode linux (UML) as one of its development and debugging options.

  • 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).

4.5 Altera / Microtronix

Updated 2002/12/27

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 uCLinux.

4.5.1 uCLinux

Microtronix ported uCLinux (which doesn't require an MMU), to the Nios processor. Its toolchain is the GNU Pro toolset. Its C library is uClibc.

4.5.2 Nios Processors

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.

4.5.3 Excalibur Processors

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.

4.6 PalmPalm

Updated 2002/12/27

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)

  • Partnerships
    • 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.

4.6.1 Tynux

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

4.6.2 Tynux Box I, II

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, USB-host, CDMA)

4.6.3 IMT2000

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 SK Telecom.

  • Toolchain: unknown (presumably GNU)
  • Interface: stylus, HWR
  • UI: Qt/E
  • Communications: CDMA, H.323+voice, Opera, VoIP, serial, USB, Bluetooth

Source: http://www.linuxdevices.com/articles/AT3334419107.html

4.7 Transvirtual

Updated 2002/12/27

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.

4.7.1 XOE (PocketLinux)

(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 hit.

There is support for native plug-ins players, e.g. for MP3, Flash, and movies.

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: http://www.linuxdevices.com/articles/AT7639810648.html

4.8 TimeSys

Updated 2002/12/12

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.

4.8.1 TimeSys Linux/GPL

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.

4.8.2 TimeSys Linux/Real Time

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

4.8.3 TimeSys Linux/CPU

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.

4.8.4 TimeSys Linux/Net

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.

4.8.5 TimeSys SDKs

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).

4.9 Mizi Research, Inc

Updated 2002/12/12

A South Korean software company. They produce a desktop Linux distribution, MIZI Linux, and an embedded distribution, Linu@.

4.9.1 Linu@ (Linuette)

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, and PDA.

4.9.2 EnDA C3224

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

4.10 Coollogic

Updated 2002/12/14

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.

4.10.1 Coollinux

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.

4.11 Esfia

Updated 2002/12/27

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.

4.11.1 RedBlue Linux

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.

4.11.2 AESF901PWD Companion Chip

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.

4.12 Red Flag

Updated 2002/12/17

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.

4.12.1 ControLinux

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

4.13 MobileSoft Technology

Updated 2002/12/27

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 support.

4.13.1 mLinux

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

4.13.2 mGUI

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 processes).

4.14 REDSonic

Updated 2002/12/27

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.

4.14.1 REDICE-Linux

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.

5 Embedded C Library Projects

Updated 2002/12/27

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.

5.1 GNU C Library

Updated 2002/10/28

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 license.

5.2 uCLibc

Updated 2002/12/27

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 license.

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.

5.3 Diet libc

Updated 2002/12/27

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 experimental form.

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 sponsors."

5.4 newlib

Updated 2002/12/17

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.

5.5 sglibc

Updated 2002/12/18

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.

6 Windowing and Embedded GUI Projects

Updated 2002/12/27

Linux desktop interfaces are the subject of frequent scorn by the computing industry because:

  • There is no standardized interface; instead, there are several that vary widely
  • 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 documentation

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 environment.
  • Client-drawn, client-arbitrated: one client draws at a time, but drawing permission and occlusion is worked out by a peer negotiation system.

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.

6.1 Gtk+

Updated 2002/12/27

Gtk+ is a multi-platform GUI written in C with an object-oriented architecture.

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 embedded devices.

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 product.

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 TrollTech.

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 lexical scanner.
  • GDK - A wrapper for low-level windowing and drawing functions. To move Gtk+ to a different windowing system, rewrite the Gdk layer.
  • 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 manipulations

6.1.1 Gtk/FB

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).

Problems:

  • 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.

Source: http://www.linuxdevices.com/articles/AT9024868021.html

6.2 Qt

Updated 2002/12/27

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.

6.2.1 Qt/Embedded

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.

6.2.2 Qtopia

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 related PDAs.

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.

6.2.3 QtAWT

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 excellent performance.

6.2.4 Qt Designer

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.

6.3 Opie

Updated 2002/12/27

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.

Source: http://opie.handhelds.org

6.4 XFree86 / The X Window System

Updated 2002/12/18

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.

6.5 Tiny-X

Updated 2002/12/18

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.

6.6 FLTK

Updated 2002/12/14

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.

6.7 MicroWindows / Nano-X

Updated 2002/11/09

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 services company.

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.

6.8 DirectFB

Updated 2002/12/27

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 also available.

6.9 OpenGUI

Updated 2002/12/17

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 supported.

6.10 MiniGUI

Updated 2002/11/09

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 details.

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:

  • FlashPlayer

    Plays Macromedia Flash animations.

  • MGXine

    A multimedia player based upon Xine, capable of playing CDs, VCDs, DVDs and MP3 files.

  • Monqueror

    A port of the Konqueror web browser. Supports HTTP, HTML, and CSS, but lacks FTP, SSL and JavaScript support.

6.11 PicoGUI

Updated 2002/12/27

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 events, etc.

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 animation.

The PicoGUI server is released under the GPL, the client library is released under the LGPL.

6.12 PicoTK

Updated 2002/12/17

"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.

7 Other Relevant Projects

7.1 Daniel J Bernstein

Updated 2002/12/13

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 projects.

  • 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.

7.2 hsqldb

Updated 2002/12/14

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.

7.3 Kaffe

Updated 2002/12/27

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 application platform.

7.4 LEAF

Updated 2002/12/27

"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 from there).

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.

7.5 LRP

Updated 2002/11/05

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 some such).

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 of 2001.

7.6 Mlspool

Updated 2002/11/09

A tiny utility written by Rick Miller (a Transmeta engineer). It is "a small spooler (an 'lpr' substitute) for printing on embedded systems."

The last and only release was version 0.1, in March of 2001; the project has stagnated, if it is not dead.

7.7 Yaku-NS

Updated 2002/12/18

A GPLed embeddable nameserver and DNS cache. About 150k. Available under more favorable terms than djbdns.

8 Embedded Linux Organizations

8.1 Embedded Linux Consortium

Updated 2002/12/27

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 Specification 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 around.

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.

(http://www.linuxdevices.com/files/article012/index.html)

  • 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 VxWorks

  • 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.

8.2 Japan Embedded Linux Consortium (EMBLIX)

Updated 2002/12/27

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.

8.3 TV Linux Alliance

Updated 2002/12/27

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 additions.

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.

9 Related Software Vendors

9.1 OSK, Inc.

Updated 2002/12/27

"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.

9.1.1 WindStone KE/PE/GE

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) do not.

9.2 Access Systems Co., Ltd.

Updated 2002/12/13

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.

9.2.1 NetFront

Access' flagship product, NetFront is an embeddable browser, providing most of the features required of mainstream browsers - reasonably modern HTML (HTML4, XHTML1, CSS1, partial CSS2, DOM1 & 2), JavaScript 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 native widgets.

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 Professional Edition.

9.2.2 NetFront SDK for 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.

9.2.3 JV-Lite

An embedded JVM, certified by Sun. Minimal details available, but cites compliance with the EmbeddedJava spec. Works with the NetFront browser or standalone.

9.3 Century Software

Updated 2002/12/14

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 server interaction.

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.)

9.4 Sleepycat Software

Updated 2002/12/18

Founded by two guys from Massachusetts, who wrote Berkeley DB for 4BSD.

9.4.1 Berkeley DB

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 Source:

  • "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 also required.

  • "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.

9.5 TrollTech

Updated 2002/12/27

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.

10 Hardware / Device Manufacturers

10.1 4P Mobile Data Processing

Updated 2002/12/27

An Italian manufacturer of handheld POS units, ruggedized handheld terminals, etc.

  • Dat300

    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.

  • Dat400

    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).

  • Dat500

    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 SC300 CPUs.

Source: http://www.linuxdevices.com/articles/AT4520490885.html

10.2 Aleph One

Updated 2002/12/27

UK embedded systems/electronics firm. (Blue Mug was employed by Aleph One for some ARM-kernel work). They have three categories of specialization:

  • 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.

10.3 Agenda

Updated 2002/12/27

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 power).

10.4 Applied Data Systems

Updated 2002/12/13

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.

  • XScale

    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.

  • StrongARM

    ADS produces a plethora of development boards featuring StrongARM processors:

    • Bitsy

      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)

    • Tandem

      Also graphics-intensive, drives two flatpanels

  • Partnerships

    Several applicable, including Lineo, Century Software, MontaVista and Wind River. No details provided on what they actually do for these folks, though.

10.5 Aplio

Updated 2002/12/13

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

  • Aplio/Phone

    This was an earlier version of the Aplio/PRO which used a dialup Internet connection instead of an ethernet connection. No longer available.

10.6 Compaq/Hewlett-Packard

Updated 2002/12/27

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.

  • Aero

    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 add-on card.
    • 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

  • BlackBerry

    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.

10.7 Daimler-Chrysler

Updated 2002/12/27

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 test simulation.

  • 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

10.8 Ericsson

Updated 2002/12/14

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 specifications.

    • UI: Qt/E
    • Communications: Bluetooth, Opera
    • Wireless: Bluetooth-to-LAN
    • Storage: 32MB RAM, 32MB flash

10.9 Eurotech S.p.a

Updated 2002/12/27

An Italian embeddable hardware vendor supplying pc104 and CompactPCI boards.

  • ETLinux:

    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 and glibc2.0.

    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.

10.10 IBM

Updated 2002/12/27

  • PowerPC:

    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 resource support.

  • "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).

  • POP:

    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.

10.11 Indrema / TuxBox

Updated 2002/12/14

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 Linux-on-Xbox projects.

  • DV/Linux:

    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 intended.

    • UI: unknown
    • Connectivity: ether, modem, USB-host
    • Toolchain: internal SDK, including the GNU toolchain

10.12 Mitac

Updated 2002/11/09

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.

  • webPAD

    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.

  • webPAD+

    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 the battery.

10.13 NeoWare

Updated 2002/12/17

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.

10.14 HNT

Updated 2002/12/27

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 communications module.

    HNT also offers a development board, named the "Linuette Box". It looks to be a development board offering the features of the Exilen 102.

10.15 Nokia

Updated 2002/12/27

  • 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

    See:

    http://www.nokia.com/multimedia/mediaterminal.html

10.16 G.Mate

Updated 2002/12/17

10.16.1 Yopy

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

10.17 Sharp

Updated 2002/12/27

Large Japanese electronics firm. Sharp has been producing PDAs for the Japanese market for some time.

10.17.1 Zaurus SL-5500

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 Flash
  • 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

10.17.2 Zaurus SL-5600

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 flash.

  • 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

10.17.3 Zaurus SL-A300

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

Source: http://www.linuxdevices.com/articles/AT5915008901.html, physical examination, et al

10.17.4 Zaurus SL-C700

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

Source: http://www.linuxdevices.com/articles/AT5295837592.html

10.18 Sony

Updated 2002/12/27

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.

10.18.1 Partnerships

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.

10.18.2 CoCoon PVR

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.

Sources:

http://www.linuxdevices.com/news/NS6759493037.html

10.19 Sun

Updated 2002/12/18

10.19.1 J2ME

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.