The state of RTAI
First, we learned that there are actually two ongoing projects, the first is the original RTAI project, funded by the Dipartimento di Ingegneria Aerospaziale, Politecnico di Milano (DIAPM). The other project is RTAI/Fusion, which is a different approach that merges the RTAI interfaces with the Xenomai development framework.
The RTAI project with Linux RealTime (LXRT) uses several kernel modules to gain the realtime functionality that one may need. RTAI makes changes in the Linux interrupt and scheduling policies to provide real time capabilities within the non-real time Linux environment. According to the RTAI website:
The original RTAI project was designed specifically for DIAPM projects, says Mantegazza:
On the other hand, Xenomai was designed to allow developers to port
applications from other realtime systems, and therefore it takes a different
approach. Gerum describes Xenomai as a "kind of generic RTOS (Real
Time Operating System) core
" that enable a developer to plug in
their own real-time APIs. Gerum says the idea was that most RTOS vendors
offer the same functionality, but with "different API window
dressings
". Xenomai was designed to "provide one generic core
running side-by-side with the Linux kernel
" that would allow for
different APIs.
The RTAI/Fusion project that is now under development works with a
"vanilla" Linux kernel running on top of the Adeos (Adaptive Domain Environment
for Operating Systems) nanokernel. By running the Linux kernel and Fusion
under the Adeos nanokernel, Fusion cooperates with Linux and allows
developers to use "
Given that there are a number of real time projects for Linux, not to
mention the other various RTOSes, we asked whether it would be possible to
come up with a "one size fits all" solution for real time operating
systems. Mantegazza says yes, but Gerum is not so sure:
Simple design and straightforward code layers make the above possible. For
instance, DSP-like applications do not necessarily need a full-fledged
multi-tasking infrastructure; basic interrupt handlers with predictable
preemption time are often enough here. On the other hand, you are not going
to run a complete telecom software stack over interrupt service routines,
so you need a complete RTOS core and rich utility libraries.
It's important to note that RTAI/Fusion would not replace RTAI/LXRT so much
as envelope it, if successful. According to Gerum, the plan is to
"
What's left to implement in Fusion? Gerum says there are several things
left to be done:
Fusion already provides a full-fledged event-driven simulator with a nifty
GUI for debugging applications on the host system; GDB can also be used to
debug the real-time threads in user-space on the target. However, LTT
(Linux Trace Toolkit) support is missing, for instance.
Users that are interested in trying RTAI/Fusion can get a jump-start with
Debian, which has RTAI
packages in testing and unstable.
Though the Real Time market is a small niche of the Linux community, it's
good to see healthy projects like RTAI/LXRT and RTAI/Fusion that will give
Linux the opportunity to achieve the goal of world domination.any number of real-time APIs at the same
time."
refactor the original RTAI 3.x interfaces over Fusion, if this
technology is successful.
"
Index entries for this article GuestArticles Brockmeier, Joe