A Survey of Embedded Linux Packages

Brief looks at the various embedded Linux projects and applications.
“Commercial” Embedded and Real-Time Linux Distributions

Coollogic: Coollinux—Coollinux AE (Appliance Edition) combines the power of embedded Linux and Java technology to deliver an operating system for the next generation of Internet appliances. http://www.coollogic.com/.

Coventive: XLinux—fully featured embedded Linux kernel that can be configured to as little as 143KB for information appliances and embedded devices. Support: 586, 686, MediaGX, STPC, StrongARM, SH3/SH4, PA-RISC, ARM-7 and more. http://www.coventive.com/.

Esfia: RedBlue Linux—an embedded Linux distribution for wireless communication solutions, derived from the prerelease Linux 2.4 kernel. It has a typical kernel, footprint is 400K bytes and it supports processors with or without an MMU. http://www.esfia.com/.

FSMLabs: RTLinux—FSMLabs provides a real-time Linux distribution based on RTLinux technology in conjunction with a Linux kernel and associated software. MiniRTL is a small-footprint (fits on one floppy) implementation for resource-constrained embedded applications. http://www.fsmlabs.com/.

KYZO: PizzaBox Linux—a Linux- and Samba-based file, print and CD server designed to run from 6MB of Flash ROM on a 486 (or higher) CPU. http://www.jrcs.co.uk/.

Lineo: Embedix—an embedded Linux-based software solution that is engineered specifically for the unique speed, memory and storage requirements of embedded devices. Supports a wide range of CPUs with and without MMUs, including X86, PowerPC, ARM, MIPS and more. Includes support for small-footprint, real-time (based on a choice of RTAI or RTLinux) and high-availability solutions. http://www.lineo.com/.

LynuxWorks: BlueCat—a distribution of open-source Linux, enhanced to meet the requirements of embedded developers, engineered to allow configuration to accurately match the requirements of embedded development from small devices to large-scale multi-CPU systems, and high-availability applications. Supports a wide range of CPUs including X86, PowerPC, ARM, MIPS and more. http://www.lynuxworks.com/.

Mizi: Linuette—a Mobile Linux OS that provides components, development tools and a specialized kernel for mobile devices, designed to satisfy the small size requirements of the SmartPhone market. The target hardware environment is an 18MHz ARM7 processor, 240x120 pixel LCD display, touch screen and serial interface. The OS requires just 2MB of DRAM and 4MB of Flash memory. http://www.mizi.com/en/.

MontaVista: Hard Hat Linux—the MontaVista Software Hard Hat Linux Cross Development Kit targets a broad array of embedded CPU architecture boards and system-level platforms for Internet appliances, portable devices, networking equipment, telephony interfaces, or other embedded and pervasive applications. http://www.mvista.com/.

PalmPalm: Tynux—an embedded Linux solution optimized for Internet appliances including MP3 players, video players, Internet TVs, PDA/cell phones, Internet phones, video conferencing equipment, video phones, etc. http://www.palmpalm.com/.

REDSonic: RedIce-Linux—a real-time Linux distribution that provides several enhancements to real-time performance including RTAI as well as enhancements to the Linux kernel's scheduler and preemption algorithms. http://www.redsonic.com/.

TimeSys: Linux/RT—a real-time Linux distribution that offers multiple means to improve real-time performance, including a resource kernel, RTAI, Linux kernel scheduler, preemption and quality-of-service enhancements. http://www.timesys.com/.

“Noncommercial” Embedded and Real-Time Linux Implementations

ART Linux—a real-time extension to Linux (developed by Youichi Ishiwata) which was inspired by RTLinux but which, according to its developer, “offers certain advantages.” http://www.etl.go.jp/etl/robotics/Projects/ART-Linux/.

Embedded Debian Project—the goal of the Embedded Debian Project is to make Debian GNU/Linux a natural choice for embedded Linux. http://www.emdebian.org/.

ETLinux—a complete Linux distribution designed to run on small industrial computers, especially PC/104 modules. http://www.etlinux.org/.

KURT—a real-time Linux implementation that allows scheduling of events with a resolution of tens of microseconds. Based at the University of Kansas. http://www.ittc.ukans.edu/kurt/.

Linux Router Project—a “networking-centric micro-distribution” of Linux that makes it easy to build/maintain routers, access servers, thin servers, thin clients, network appliances and embedded systems. LRP can fit on a single floppy. http://www.linuxrouter.org/.

Linux/RK—a “resource kernel” enhancement to Linux based on a loadable kernel module that provides timely, guaranteed and enforced access to system resources for applications. Based at Carnegie Mellon University. www.cs.cmu.edu/~rajkumar/linux-rk.html.

LOAF—“Linux on a Floppy” distribution that runs on 386s and is an implementation of Linux consisting of the kernel and a bunch of free utilities. LOAF supports various network protocols including the lynx browser, ftp, Telnet and ssh. http://loaf.ecks.org/.

Linux-SRT—an extension to the Linux kernel that improves the performance of “soft real-time” applications such as multimedia but not suitable for the critical timing requirements of hard real-time apps, like controlling space shuttles or nuclear reactors. http://www.uk.research.att.com/~dmi/linux-srt/.

Linux-VR—the goal of this project is to support Linux on NEC VR series devices, most of which were originally designed to run Windows CE-based handheld computers. http://www.linux-vr.org/.

uClinux—a derivative of the Linux 2.0 kernel intended for microcontrollers without Memory Management Units (MMUs). Supports a growing list of processors including Motorola DragonBall (M68EZ328), M68328, M68EN322, ColdFire, QUICC; ARM7TDMI; MC68EN302; Axis ETRAX; Intel i960; PRISMA; Atari 68K; and more all the time! http://www.uclinux.org/.

uLinux (a.k.a. muLinux)—a “full-configured, minimalistic, almost complete, application-centric tiny distribution” of Linux, made in Italy, that fits on a single floppy. http://sunsite.auc.dk/mulinux/.

PeeWeeLinux—a small Linux distribution aimed at embedded devices. The distribution attempts to make the configuration and installation of a Linux operating system on an embedded platform as painless as possible. http://www.peeweelinux.com/.

QLinux—a Linux kernel implementation that provides Quality of Service (QoS) guarantees for soft real-time Linux performance in applications such as multimedia, data collection, etc. Based at the University of Massachusetts. http://www.cs.umass.edu/~lass/software/qlinux/.

RED-Linux—a real-time version of Linux that implements short kernel blocking time, quick task response time, a modularized and runtime replaceable CPU scheduler and a general scheduling framework. Based at the University of California, Irvine. http://linux.ece.uci.edu/RED-Linux/.

RTAI—a comprehensive Real-Time Application Interface usable both for uniprocessors (UPs) and symmetric multiprocessors (SMPs) that allows the use of Linux in many hard real-time applications. As an option, RTAI's “LXRT” allows the control of real-time tasks, using all of RTAI's hard real-time system calls from within Linux memory-protected user space, resulting in soft real time combined with fine-grained task scheduling. The RTAI project is based at the Dipartimento di Ingegneria Aerospaziale Politecnico di Milano (DIAPM). AtomicRTAI is a small-footprint implementation for resource-constrained embedded applications. http://www.rtai.org/.

RTLinux—a hard real-time mini operating system that runs Linux as its lowest priority execution thread. The Linux thread is made completely preemptive so that real-time threads and interrupt handlers are never delayed by non-real-time operations. The latest version of RTLinux supports user-level real-time programming. MiniRTL is a small-footprint (fits on one floppy) implementation for resource-constrained embedded applications. http://www.rtlinux.com/.

ThinLinux—a Linux distribution for embedded and dedicated applications, designed to be run on minimal Intel and PC-compatible hardware. http://www.thinlinux.org/.