Difference between revisions of "Xenomai"
Line 22: | Line 22: | ||
It provides a means of migrating from a proprietary RTOS to a Linux based system. | It provides a means of migrating from a proprietary RTOS to a Linux based system. | ||
This also allows for native Linux applications to be run side-by-side with real-time | This also allows for native Linux applications to be run side-by-side with real-time | ||
− | applications on the same target. | + | applications on the same target. |
+ | |||
+ | Xenomai provides a generic real-time core scheduler called the nucleus. Different RTOS APIs are provided via skinsabstracting the nucleus. | ||
Xenomai is designed to run on many different target architectures | Xenomai is designed to run on many different target architectures |
Revision as of 14:25, 6 October 2015
Xenomai
Contents
Background
Xenomai is a real-time operating system (RTOS) API designed to work alongside Linux. It provides a means of migrating from a proprietary RTOS to a Linux based system. This also allows for native Linux applications to be run side-by-side with real-time applications on the same target.
Xenomai provides a generic real-time core scheduler called the nucleus. Different RTOS APIs are provided via skinsabstracting the nucleus.
Xenomai is designed to run on many different target architectures including x86, ARM, Blackfin and NIOS2.
General Information
As of Xenomai 3, there are two possible kernel configurations available: Cobalt and Mercury.
The Cobalt core configuration is the traditional co-kernel configuration and is the evolution of the Xenomai 2 architecture. The Linux kernel is patched to allow the Cobalt core to deal with real-time activities including interrupts and scheduling. The RTOS APIs provide an interface to the Cobalt core from user-space.
The Mercury core is a single kernel configuration that relies on the Linux kernel for the real-time capabilities. Typically this requires PREEMPT-RT support to be enabled in the kernel to meet timing requirements. The non-POSIX real-times APIs are emulated over a native threading library preferably NPTL.