Real-time Linux Software Quick Reference Guide
By Rick Lehrbaum
2001-01-19
You've probably realized by now that there are many ways to add real-time capabilities to Linux based systems. Certainly, one method is to throw hardware at the problem, by running faster processors or employing specialized hardware. For example, specialized peripheral controllers and digital signal processors (DSPs) can offload critical real-time tasks from the main system CPU.
However, assuming you want to use the main system processor to manage real-time system events, there are a great many options from which to choose.
Given the somewhat bewildering variety of alternatives, we've assembled the LinuxDevices.com "Real-time Linux Quick Reference Guide" which we hope will assist you in locating Linux-based solutions that match your system requirements. Included within this guide is information about . . .
- Real-time Linux Commercial Distributions
- Open-source real-time Linux implementations
- Open source real-time performance enhancements & tools
- Articles and whitepapers about real-time Linux and related topics
This guide will be updated frequently, so check back periodically for the latest info. Be sure to also take advantage of the tremendous amount of information available via the LinuxDevices.com search engine, by searching with "real-time" as the keyword. Try searching through our
news
,
articles
,
links
, and
products
databases.
Real-time Linux Commercial Distributions
FSMLabs: RTLinuxPro
-- the RTCore OS provides a POSIX hard real-time environment that runs Linux (or BSD UNIX) as an idle thread. Real-time applications run essentially at the limits of the hardware (worst case interrupt plus scheduling is sub-20 microsecond range on most platforms), while the full features of Linux (or BSD) are available as an integration platform. --
info
Koan Klinux
-- Koan Software Engineering is based in Italy. It sells and supports real-time Linux and development tools for industrial applications, based on the RTAI real-time Linux extensions (see below). --
info
Lineo Solutions: uLinux
-- Lineo Solutions is based in Japan, and is a spin-off of the former Lineo/Embedix company of the U.S. With a very small footprint, fast boot and shutdown times, and support for hard real-time in Linux kernel space, Lineo Solutions's uLinux targets consumer electronics devices. --
info
LynuxWorks: BlueCat RT
-- ensures time-critical handling of interrupts and other low level hardware operations by implementing a full Linux kernel as a thread of a smaller and highly responsive real-time operating system. This miniature RTOS traps interrupts and other low level functions for preliminary processing before passing them on to the thread running Linux. --
info
MontaVista Software: Real-Time Solutions for Linux
-- MontaVista's real-time Linux solutions are based on adding specific additions to MontaVista Linux, a robust Linux operating system for embedded and real-time applications. Available enhancements currently include: Preemptible Linux Kernel; Real-Time Scheduler; High Resolution POSIX Timers; and a High Availability Framework --
info
Concurrent: RedHawk
-- Concurrent Computer Corp. is primarily a hardware vendor that also markets RedHawk, a Linux based single kernel real-time OS for multi-processor Xeon and Opteron systems. --
info
REDSonic: REDICE-Linux
-- a real-time Linux kernel, designed to support mission and time critical applications and provide quality of service enhancements. Includes a high precision microsecond timer, a short preemption time kernel, powerful and predictable system schedulers, and mechanisms to provide task performance guarantees. --
info
TimeSys: TimeSys Reservations
-- Dynamically installed kernel modules that extend the power and performance of a TimeSys Linux RTOS SDK, TimeSys Reservations retain a fixed amount of CPU & network bandwidth for a specific process or set of processes. You can always be confident your system and the critical applications that run on it will continue to run as required. --
info
Open-source real-time Linux implementations
ADEOS
-- The ADEOS project has created what is described as a GPL hardware abstraction layer that allows a real-time kernel and a general purpose kernel to co-exist, which will support the kinds of dual-kernel hard real-time Linux environments that have been previously using RTLinux or RTAI (both of which are covered below), but without making use of the technology that is the subject of a patent held by the originator of RTLinux.
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." --
info
KURT -- The KU Real-Time Linux
-- a real-time Linux implementation that allows scheduling of events with a resolution of 10's of microseconds. Based at the University of Kansas . . .
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 . . .
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. --
info
RealTimeLinux.org
-- a "vendor neutral" website dedicated to various forms of real-time Linux. Primarily oriented towards RTAI and RTLinux. --
info
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. --
info
RTAI
-- a comprehensive Real Time Application Interface that is usable both for uniprocessors (UPs) and symmetric multi processors (SMPs), that allows the use 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 (fits on one floppy) implementation for resource-constrained embedded applications . . .
RTLinux
-- a "hard real-time" mini operating system that runs Linux as its lowest priority execution thread. The Linux thread is made completely preemptible so that realtime 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 . . .
Xenomai
-- a real-time development framework that provides pervasive, interface-agnostic, hard real-time support to user-space applications, integrated into GNU/Linux. Based on Adeos (see above), Xenomai was launched by Philippe Gerum, the implementor of the Adeos hardware abstraction layer. Xenomai provides real-time interfaces either to kernel-space modules or to user-space applications. Interfaces include RTOS interfaces (pSOS+, VRTX, VxWorks, and RTAI), standardized interfaces (POSIX, uITRON), or new interfaces designed with the help of RTAI (native interface). --
info
Open source real-time performance enhancements & tools
A Linux kernel preemptability enhancement
-- an open source project to add full preemptability to the Linux kernel; sponsored by MontaVista . . .
A configurable Linux Real-time scheduler
-- a Linux scheduler enhancement open source project sponsored by MontaVista --
info
Real-time Linux common API
-- an open source real-time common API that allows programmers to code to a common API when using either RTLinux or RTAI; sponsored by Lineo --
info
EL/IX
-- EL/IX is a proposed API (derived from ISO 9945-1 POSIX.1 or IEEE 1003.1) for the purpose of adding real-time functionality to Linux; sponsored by Red Hat . . .
Linux Trace Toolkit
-- an open source real-time trace support toolkit for Linux; sponsored by Lineo --
info
Linux real-time characterization project
-- an open source real-time characterization project; sponsored by MontaVista --
info
CarbonKernel RTOS simulator
-- CarbonKernel is an open source RTOS API simulator that can emulate RTLinux --
info
Articles and whitepapers about real-time Linux and related topics
- A comparison of hard real-time Linux alternatives -- This study compares the real-time capabilities of various Linux kernels. It was part of a project to upgrade the control software in water-wave generators at research institutions around the world. The results of the study were used by Akamina for the selection of a new RTOS for the control system upgrade of Canada's largest hydraulics and coastal engineering laboratory, the National Research Council Canadian Hydraulics Centre in Ottawa.
- Basic concepts of real-time operating systems -- This article by veteran real-time trainer David Kalinsky provides an introduction to real-time operating system (RTOS) kernel services. The paper is of particular interest to developers new to real-time concepts and vocabulary.
- Introducing MediaLinux -- a new real-time Linux approach -- In this article, Softier CTO Eatamar Drory and Senior Programmer Or Sagi discuss the unique approach to real-time processing that enables MediaLinux to run existing TI DSP algorithms untouched within the context of real time processes. Added benefits to this design include predictable scheduling and short interrupt latency. The article discusses key architectural points of the MediaLinux approach in comparison with two well-known alternatives.
- Three-part ELJonline series on Real Time in Linux by Kevin Dankwardt -- the series examines the fundamental concepts of real time, efforts to make the Linux kernel itself more responsive, and two approaches to real time that involve the introduction of a separate, small, real-time kernel between the hardware and Linux. Also included are some benchmarks and a comparison of a desktop/server Linux kernel to modified kernels.
- Update: Real-time Linux sub-kernels, benchmarks, and . . . contention -- Following publication of Dankwardt's 3-part series on Real Time and Linux, there was a flurry of 'responses', 'clarifications', and 'reactions' from other participants in the real-time Linux market. This special report describes them all and provides links for further reading.
- Comparing real-time Linux alternatives -- this technical whitepaper goes into considerable detail on some of the alternative approaches to adding real-time capabilities to Linux. Dankwardt covers both "internal" Linux enhancements (such as scheduling improvements) and external enhancements (such as RTLinux and RTAI), and provides a comparison summary that indicates that no single product offers an all-inclusive set of real-time capabilities.
- Fundamentals of Real-time Linux Software Design -- this technical whitepaper explains the fundamentals of real-time Linux system programming, creates a simple model that illustrates many of the key aspects of real-time system behavior, and explores important issues that impact real-time performance, including task scheduling, preemption in the kernel, interrupt disabling, priority inversion, use of existing kernel facilities, and real-time device drivers.
- Real-time Linux -- what is it, why do you want it, how do you do it? -- this article draws on inputs from seven "real-time experts" to put together a comprehensive definition of real-time, probe the issues associated with obtaining adequate real-time performance in Linux systems, and understand some of the alternative real-time Linux approaches.
- 28 talks on real-time Linux -- this article contains the abstracts of 28 talks on real-time Linux that were given at the second annual Real-time Linux Workshop, held in Orlando, Florida on November 27-28, 2000. Links to the associated papers (PDF files), if available, are also provided.
- Comparing two approaches to real-time Linux -- this guest column offers a "non-neutral" perspective on two popular alternatives for providing real-time services within Linux -- the RTLinux/RTAI "Interrupt Abstraction" approach, and the approach of "Preemption Improvement" by modifying the Linux kernel.
- Which is it: -ible, or -able? -- how do you spell the word that describes something (like software) which is able to be preempted? Is it "preemptable" . . . or "preemptible"?
- When hard real-time goes soft -- this article by Lineo's Jeff Dionne demystifies the issues of real-time, and clarifies the distinctions between hard and soft real-time operating systems.
- Embedded Linux Market Survey -- this online slide presentation reviews the market opportunity for embedded and real-time Linux, and profiles developer preferences.
- Using Linux in Embedded and Real-time Systems -- this whitepaper explores the requirements of a wide range of embedded systems -- from factory automation to handheld internet appliances -- and points the way to Linux based solutions.
- Real-time computing FAQ -- the purpose of this FAQ is to give sufficient knowledge to new users in the real-time field and to serve as a reference for engineers already working in the field.
Consult the other Quick Reference Guides in this series, for information on additional aspects of your Embedded Linux system requirements . . .
Please note that these guides are updated frequently, so be sure to check back periodically for the latest info. We certainly hope you find these guides worthwhile! Please send us your suggestions for additions, or any other comments you may have. Contact us
here
.