Real Time Application Interface

Published on Nov 21, 2015


A real time system can be defined as a "system capable of guaranteeing timing requirements of the processes under its control".

The RTAI plug-in should help Linux to fulfill some real time constraints (few milliseconds deadline, no event loss). It is based on a RTHAL: Real Time Hardware Abstraction Layer. This concept is also known in Windows NT.

The HAL exports some Linux data & functions close related to HW. RTAI modifies them to get control over the HW platform. That allows RTAI real time tasks to run concurrently with Linux processes. The HAL defines a clear I/F between RTAI & Linux.

1.1 OS requirements summary

Generally speaking, we would like Software components to rely on a platform offering both real time support and "standard" general purpose API.

The Platform needs a real-time executive (small footprint, deadline fulfillment, ... ) and a comprehensive OS for Applications ( NT, UNIX, Linux, ... ).

The market place already offers products for:

" NT OS: real time extensions like Radisys' Intime or VenturCom's RTX

" UNIX : micro kernel based technologies natively supporting real time and rich UNIX like API's.

The Linux OS exports the same application service level but suffers from a lack of real time support. Fortunately some options are foreseen:

" Native real time support in Linux : does not seem the Main stream of Linux.

" Linux Modifications for real time constraints (KURT): no outstanding background.

" Linux and real time sharing resources ( L4Linux) : experimental project.

" Linux as a task of a real time executive: RTLinux, RTAI, eCos, Nucleus, ...

"Linux as a task of a real time executive" is maturing today. RTLinux is a better known solution. RTAI , now requires a closer look and justifies this presentation.

1.2 A little bit of ... Linux kernel core

Linux, like other OS, offers to the Applications at least the following services:

" HW management layer dealing with event polling or Processor/peripheral Interrupts

" Scheduler classes dealing with process activation, priorities, time slice, soft real-time

Communications means among Applications (at least FIFO).

" Hardware Interrupts are served by handlers. On Intel machine the handler addresses are store in the Interrupt Descriptor Table (IDT)...but it is still possible to pool interrupt peripherals.

The Linux current releases offer some soft-real time capabilities, but neither guaranties hard deadline nor prevents event loss.

1.3 A little bit of ... RTAI

RTAI is such a small proprietary (see note 1) executive, still under development at DIAMP (Dipartimento di Ingegneria Aerospaziale del Politecnico di Milano) by Paolo Mantegazza's team . It offers some services related to:

" HW management layer dealing with peripherals

" Scheduler classes dealing with tasks, priorities, hard real-time

" Communications means among tasks & processes (at least FIFO).

RTAI real time entities are simple mono-thread tasks whereas Linux applications are full features (mono or multi threads) processes. RTAI is basically an Interrupt dispatcher. The Intel processor interrupts (0..31) are still managed by Linux. RTAI mainly traps the peripherals ISA IT's and if necessary re-routes them to Linux (e.g.: disk IT). It is also able to manage other kind of ITs.

It supports, like Linux, both SMP (Symmetric Multi Processor) and UP (Uni-Processor) Architecture. From a real time point of view, it is quite similar to RTLinux.

Whereas RTLinux is an intrusive modification of the kernel, RTAI uses the concept of HAL to get information from Linux and to trap some fundamental functions.
This HAL provides few dependencies to Linux Kernel. This leads to:

" Simple adaptation in Linux Kernel

" Easy RTAI port from version to version of Linux

" Easier use of other Oses instead of RTAI

Related Seminar Topics