RTAI

Z Wikipedii, wolnej encyklopedii

RTAI ang. real time application interface – interfejs dla aplikacji czasu rzeczywistego. Jest to pakiet modułów do jądra Linuksa umożliwiający tworzenie aplikacji zdolnych do pracy w reżimie ograniczeniach czasowych. Nie jest to jednak system operacyjny czasu rzeczywistego taki jak VxWorks i QNX. Linux był projektowany z myślą o pracy na serwerach i bazach danych, a wobec takich maszyn są inne oczekiwania. Jednak moduły RTAI ładowane do jądra Linuksa udostępniają kilka cech typowych dla systemów czasu rzeczywistego. Na przykład pełną wywłaszczalność aplikacji, czyli każda aplikacja może zostać przerwana przez inną, o wyższym priorytecie. Tak więc RTAI to rodzaj nakładki na Linuksa, która zmienia sposób obsługi przerwań i schedulera oraz udostępnia kilka innych cech typowych dla systemów RTOS takich jak kolejki fifo, semafory, sygnały, komunikaty. Pozwala to na wykorzystanie Linuksa do zastosowań militarnych, przemysłowych, laboratoryjnych. Przykładowo w projekcie LinuxCNC.org wykorzystuje się Linuksa do sterowania maszynami CNC.

Zasada działania[edytuj | edytuj kod]

Jego zasada działania polega na stworzeniu nowego schedulera, w którym pierwszeństwo do zasobów procesora mają procesy czasu rzeczywistego, a standardowe procesy Linuksa są wykonywane z wykorzystaniem wolnych zasobów procesora. Taka budowa oznacza, że niewiele zmian zostało wprowadzonych do zasadniczego jądra Linuksa. Dzięki temu można korzystać zarówno z typowych aplikacji linuksowych, jak na przykład pakiety biurowe, przeglądarka internetowa, a mając tak naprawdę system czasu rzeczywistego. Aby wprowadzić taką funkcjonalność Linux w swoim funkcjonowaniu opiera się na HAL (ang. Hardware Abstraction Layer).

Autorzy[edytuj | edytuj kod]

RTAI jest pisana przez społeczność open-source, finansowana przez Wydział Inżynierii Aeronautyki Politechniki w Mediolanie (DIAPM), a kluczową osobą projektu jest Paolo Mantegazza. W styczniu 2003 projekt RTAI połączył siły z projektem Xenomai[1], który także udostępnia możliwości czasu rzeczywistego w oparciu o tradycyjne jądro Linuksa.

Wspierane architektury[edytuj | edytuj kod]

  • x86 (razem lub bez FPU i TSC)
  • x86-64
  • PowerPC
  • ARM (StrongARM, ARM7: clps711x-family, Cirrus Logic EP7xxx, CS89712, PXA25x)
  • m68k (wspiera zarówno MMU i NOMMU)

Projekty opierające się na RTAI[edytuj | edytuj kod]

Podobne systemy[edytuj | edytuj kod]

Omawiając systemy czasu rzeczywistego oparte na Linuksie należy wspomnieć o RT-Linux. Był to pierwszy pakiet łat (ang. patch) do jądra Linuksa udostępniający możliwości systemu czasu rzeczywistego. Projekt był prowadzony przez Victora Yodaiken i Michaela Barabanova na Instytucie Górnictwa i Techniki w Nowym Meksyku. Victor Yodaiken, profesor tego instytutu, utworzył następnie firmę FSMLabs, która próbowała komercyjnie wykorzystać RT-Linuksa, jednak ostatecznie firma została przejęta przez Wind River Systems, co ostatecznie przyczyniło się do zamknięcia projektu RT-Linuksa.

Przypisy[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]