![]()
KaeilOS : Real Time
Il kernel di Linux non è stato progettato pensando ad un
sistema Real Time e pertanto se si desidera vere prestazioni deterministiche
è necessario utilizzare delle estensioni Real Time come
a esempio RTAI e Xenomai, o
in alternativa una RT Preemption patch.
I tempi di latenza ottenibili da un sistema Real Time variano in funzione del tipo di architettura su cui sono operativi, e non è generalmente possibile fornire dei valori di tempo assoluti.
Xenomai
The realtime framework for linux.

UVM support is a unique Xenomai feature, which
allows running a nearly complete realtime system embodied into
a single multithreaded Linux process in userspace, hence the name,
standing for "Userspace Virtual Machine".
Running a realtime application inside a UVM offers a straighforward
approach for porting from other RTOS environments to Xenomai.
For this reason, all emulators of traditional RTOS available with
Xenomai (e.g. VxWorks, pSOS+, VRTX, and uITRON) can be hosted
by UVMs, although they were initially intended to run as kernel
modules.
RTAI
The RealTime Application Interface for Linux from DIAPM (Politecnico di Milano - Dipartimento di Ingegneria Aerospaziale)

RTAI offers the same services of the Linux kernel core, adding the features of an industrial real time operating system. It consists basically of an interrupt dispatcher: RTAI mainly traps the peripherals interrupts and if necessary re-routes them to Linux. It is not an intrusive modification of the kernel; it uses the concept of HAL (hardware abstraction layer) to get information from Linux and to trap some fundamental functions. This HAL provides few dependencies to Linux Kernel. This leads to a simple adaptation in the Linux kernel, an easy RTAI port from version to version of Linux and an easier use of other operating systems instead of RTAI. RTAI considers Linux as a background task running when no real time activity occurs.
Low Latency Patch & RT Preemption Patch
La RT-Preemption patch di Ingo Molnar ha come obiettivo di ridurre le latenze dello scheduler del kernel Linux (50-60 microseconds come tempo di esecuzione peggiore).
