Hello to real-time for Linux: ADEOS leaves RTLinux behind

by Andy Oram

Related link: http://www.freesoftware.fsf.org/adeos/pr-2002-06-03.en.txt




Embedded systems are widely seen as the greatest area of opportunity
for Linux (and the more broadly one defines the term "embedded
system," the more appropriate it seems for Linux). Furthermore,
real-time performance is a make-or-break requirement for many embedded
systems. So there's good reason for anyone interested in Open Source
or free software to care about the state of real-time on Linux.



Linux is not in itself a real-time system, but it can be effectively
run with real-time tasks by inserting a layer beneath it to trap
interrupts and favor the desired tasks. The
software announced today,
ADEOS (Adaptive
Domain Environment for Operating Systems)
,
provides a way to accomplish this task that, its creators hope, will
spark a Renaissance for embedded and real-time Linux. ADEOS was
proposed in a
paper by Karim Yaghmour
(in PostScript)

as a general-purpose host for virtual operating systems.
(This paper and another are available as PDF files in the ADEOS
distribution.)
ADEOS was implemented for the Linux kernel on the i386 in a 1400-line,
GPL'd patch by Philippe Gerum.



Purely in the abstract, ADEOS is an interesting addition to the
tradition of abstraction layers like VMWare, and even the chips built
by Amdahl Corporation many decades ago to let its emulated 360
mainframes keep up with IBM's changes.



ADEOS dictates that a fundamental hardware abstraction layer serves a
number of operating systems. The idle process on each operating system
calls the fundamental hardware abstraction layer to inform its
operating system does not need the CPU anymore. This abstraction layer
can now catch all interrupts and pass them to each of the operating
systems in turn. To enable real-time, the administrator places tasks
in a real-time operating system and makes it the first to be invoked by the
abstraction layer after each interrupt; all other tasks run on a
regular Linux system that is less favored.



The idea of a hardware abstraction layer already exists in the two
real-time projects that are available for Linux: RTLinux and RTAI.
In the current implementations, a conventional operating system hosting
non-real-time processes runs as the idle task of the real-time
operating system.



Unfortunately, a patent on the concept by the creator of RTLinux,
Victor Yodaiken, has at best confused the status of real-time on
Linux. Many critics of the patent, including Yaghmour and Gerum,
believe it chills development on alternatives (notably RTAI) and forms
a basic roadblock that keeps Linux from being widely adopted by
embedded systems developers. Others do not oppose this particular
software patent, because it makes special accommodations for
GPL'd development.



In any case, developers now have a choice. RTAI is going to use the
new ADEOS in order to be free of the RTLinux patent. The next couple
years will show whether ADEOS makes a difference.


Is real-time important to the future of Linux?