Srovnání RTOS + Linux

V současnosti jsou využity různé techniky pro dosažení real-time OS v kombinaci s Linuxem. Základní techniky jsou:

  1. Aplikace patche na Linuxové jádro se sníží latence ve volání jádra a zároveň je garantovány omezené latence místo neomezených. Výhodou je možnost využití stejných aplikací bez změny zdrojového kódu. Tuto cestu využívá PREEMPT_RT patch.
  2. Na HW je spuštěno nano jádro, které pouze přesměrovává interrupty od HW k OS s vyšší prioritou a případně k dalšímu OS s nižší prioritou. Nad tímto jádrem jsou spuštěny dva OS jeden RT a jeden non RT, které mezi sebou mohou komunikovat a přímo využívat HW. Toto řešení využívá Xenomai.
  3. RTOS je spuštěn na HW a v rámci RTOS je spuštěn Linux jako jeden proces s nejnižší prioritou takže lze kdykoliv přerušit zpracování na Linuxu a zpracovávat RT procesy s vyšší prioritou. Lze mezi Linuxem a RTOS komunikovat a sdílet paměť. Tento přístup využívá RTLinux.
Linux PREEMPT_RT patch
  • Pouze tak 95% hard real-time (snaží se aby Linux byl co nejvíc hard real-time).
  • Lze použít pro libovolnou větev Linuxu.
  • Fungují všechny programy, které fungují i na normálním Linuxu. Nemusí se dělat žádné úpravy tasku pro komunikaci s mikro jádrem.
  • Upravuje jádro linuxu nikoliv extra micro kernel v kterém linux beží jako jeden task.
  • Rychlejší odezva jádra.
  • Fully preemptible kernel
  • Odstranění neomezených latencí (viz. příklad férové R/W zámky [1] ).
  • Interrupty spouštěny jako vlákna lze jim měnit prioritu zpracování.
  • Testováno na x86, ARM, a PowerPc.
  • Více informací na RT wiki [2].
Xenomai
  • Real-time subsystém využívá ADEOS [3]
  • Systém Xenomai má větší prioritu než Linux
  • Dva kernely Xenomai a Linux pod nimi nano jádro ADEOS
  • Chyba v Xenomai kernelu nenaruší běh Linuxu
  • Interrupty jsou nanojádrem podle priorit OS směřovány pokud OS s vyšší prioritou pošle dál tak interrupt je předán OS s nižší prioritou atd.
  • Real-time framework pro Linux
  • Podporuje běžné RTOS API
  • Možnost migrace vláken mezi non-real-time Linuxem a real-time Xenomai
Wind River Linux
  • Využívá yocto project [4] pro tvorbu vlastního systému založeného na Linuxu pro embedded zařízení.
  • Firemní standart pro embedded Linux systém
  • Není zdarma pouze live evaluation verze volně k stažení
RTLinux
  • Využívá RTOS microjádro v kterém běží Linux jako samostatný proces jenž je plně přerušitelný.
  • Snadné sdílení dat mezi RT a non RT systémem
  • Možnost sdílet pamět mezi RT a non RT systémem
  • Možnost načítání kernelových modulů jenž umožňují další služby a vrstvy abstrakce.
  • Vypadá dle přesměrování na Wind River, že už není aktivní vývoj.

Zajímavé odkazy