Real-time Linux Software Quick Reference Guide
Jan 19, 2001 — by Rick Lehrbaum — from the LinuxDevices Archive — 21 viewsYou'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.
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
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.
- Official announcement from the ADEOS project
- Whitepaper: Adeos nanokernel for Linux kernel
- AEOS — a resource sharing multi-OS enviornment — an interview with the founder of the ADEOS project
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 . . .
- KURT: The KU Real-Time Linux — a brief introduction to KURT
- KURT: The KU Real-Time Linux — a whitepaper about KURT including background, goals, and architecture
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 . . .
- DIAPM-RTAI: Real-time Linux API — a brief introduction to RTAI
- RTAI: Real-Time Application Interface — a comprehensive whitepaper, by members of the RTAI project team, that defines RTAI in detail, explains its architecture, and indicates how to use RTAI to support real-time applications in a Linux-based system
- DIAPM-RTAI Hard Real Time Support for Linux — a whitepaper by the creators of RTAI which provides its history, motivations, and an overview
- AtomicRTAI — RTAI on a Floppy — a bootable, open source, single-floppy installation demonstrating real-time Linux based on RTAI (includes Linux)
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 . . .
- RTLinux.com — a brief introduction to RTLinux
- Victor Yodaiken on the past, present, and future of RTLinux — a comprehensive interview with the chief maintainer of RTLinux
- The miniRTL project — a miniature real-time Linux — a brief introduction to miniRTL, which fits a full RTLinux-based standalone system within the storage capacity of a single floppy
- An independent RTLinux support website — an independent resource for users of RTLinux, “not affiliated with FSMLabs”
- Real Time Linux for Embedded Systems in the Internet Era — a copy of the presentation given by Victor Yodaiken at the Embedded Linux Expo & Conference, June 2000
- An Introduction to RTLinux — one of the early whitepapers by Victor Yodaiken describing RTLinux, its architecture, and how it is used
- The RTLinux Manifesto — whitepaper by Victor Yodaiken which discusses the requirements of hard real-time systems and how RTLinux meets those needs
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
A Linux kernel preemptability enhancement — an open source project to add full preemptability to the Linux kernel; sponsored by MontaVista . . .
- Initial MontaVista announcement about the kernel preemptability enhancement
- Design of a Fully preemptible Linux Kernel — a whitepaper by the MontaVista developers
- Preemptible Linux — a reality check — this guest editorial by MontaVista's Kevin Morgan makes the case for obtaining hard real-time performance from Linux through a kernel preemptibility enhancement, rather than by using the approach of adding a second kernel such as RTLinux or RTAI.
- Preemptible kernel patch makes it into Linux kernel v2.5.4-pre6 — The preemptible Linux kernel patch that was originally introduced by MontaVista Software and subsequently championed by Robert Love was merged by Linus Torvalds into the main linux development-kernel tree, beginning version v2.5.4-pre6, thus adding a far greater degree of real-time responsiveness to the standard Linux kernel.
- An interview with preemptible kernel patch maintainer, Robert Love — In this interview, Robert Love describes his role in the preemtible kernel project, explains why the preemption enhancement is important to a broad range of Linux applications beyond just embedded/real-time (including end-users' desktops), and shares his vision of the future of Linux in the embedded and desktop markets.
- Which is better — the preempt patch, or the low-latency patch? Both! — this whitepaper on Linux Scheduler Latency compares the performance of two popular ways to improve kernel Linux preemption latency — the preemption patch pioneered by MontaVista and the low-latency patch pioneered by Ingo Molnar — and discovers that the best approach might be a combination of both.
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 . . .
- The EL/IX Real-Time API Initiative — general overview of the purpose of the EL/IX real-time API project
- EL/IX: Unifying APIs for Linux and Post-PC Computing — a detailed technical whitepaper by Michael Tiemann about the purpose, architecture, structure, and future of the EL/IX API
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
- 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 . . .
- Embedded Linux Introduction and Overview (start here)
- Embedded Linux Distributions
- Embedded Linux GUI/Windowing Software
- Linux-friendly System-on-Chip Processors
- Linux-friendly Embedded Single Board Computers
- Linux-based “Cool Devices”
- Linux-based PDAs and Linux Distributions for PDAs
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.
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.