Difference between revisions of "Xenomai"

From wiki.emacinc.com
Jump to: navigation, search
Line 10: Line 10:
 
<!-- /****************************************  Page Description Text  ****************************************/ -->
 
<!-- /****************************************  Page Description Text  ****************************************/ -->
 
<!-- /*********************************************************************************************************/ -->
 
<!-- /*********************************************************************************************************/ -->
<span style="font-size:300%">'''''Xenomai'''''</span>
 
  
 
__TOC__
 
__TOC__
Line 19: Line 18:
 
{{:Templateimpl:bg | initials=MW | title=Xenomai | desc=About Xenomai | project=OE 5.0 }}
 
{{:Templateimpl:bg | initials=MW | title=Xenomai | desc=About Xenomai | project=OE 5.0 }}
  
Xenomai is a real-time operating system (RTOS) API designed to work alongside Linux.
+
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.
 
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 provides a generic real-time core scheduler called the nucleus.
 +
Different RTOS APIs are provided via skins abstracting the nucleus.
  
 
Xenomai is designed to run on many different target architectures
 
Xenomai is designed to run on many different target architectures
Line 38: Line 38:
 
The Cobalt core configuration is the traditional co-kernel configuration and is the evolution of the Xenomai 2 architecture.
 
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 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 RTOS APIs provide an interface to the Cobalt core from user-space. The co-kernel configuration relies on the Adeos I-pipe
 +
patch for the sharing hardware resources between the kernels. 
  
 
The Mercury core is a single kernel configuration that relies on the Linux kernel for the real-time capabilities.
 
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.
 
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.
+
The non-POSIX real-times APIs are emulated over a native threading library preferably NPTL. The Mercury configuration
 +
currently requires no Xenomai-specific kernel features but the kernel should provide CONFIG_HIGH_RES_TIMERS and
 +
PREEMPT-RT for bounded latencies.
  
 
<!-- /*********************************************************************************************************/ -->
 
<!-- /*********************************************************************************************************/ -->
Line 49: Line 52:
 
{{:Templateimpl:using | initials=MW | title=Xenomai | desc=About Xenomai | project=OE 5.0 }}
 
{{:Templateimpl:using | initials=MW | title=Xenomai | desc=About Xenomai | project=OE 5.0 }}
  
<!-- /*********************************************************************************************************/ -->
 
<!-- /*****************************************      Examples        *****************************************/ -->
 
<!-- /*********************************************************************************************************/ -->
 
{{:Templateimpl:examples | initials=MW | title=Xenomai | desc=About Xenomai | project=OE 5.0 }}
 
 
<!-- /*********************************************************************************************************/ -->
 
<!-- /******************************************    Conclusion      ******************************************/ -->
 
<!-- /*********************************************************************************************************/ -->
 
{{:Templateimpl:conclusion | initials=MW | title=Xenomai | desc=About Xenomai | project=OE 5.0 }}
 
  
 
<!-- /*********************************************************************************************************/ -->
 
<!-- /*********************************************************************************************************/ -->
Line 64: Line 58:
 
{{:Templateimpl:moreinfo | initials=MW | title=Xenomai | desc=About Xenomai | project=OE 5.0 }}
 
{{:Templateimpl:moreinfo | initials=MW | title=Xenomai | desc=About Xenomai | project=OE 5.0 }}
  
https://xenomai.org/start-here/
+
* https://xenomai.org/start-here/
 
+
* https://xenomai.org/introducing-xenomai-3/
https://en.wikipedia.org/wiki/Native_POSIX_Thread_Library
+
* https://en.wikipedia.org/wiki/Adaptive_Domain_Environment_for_Operating_Systems
 +
* https://en.wikipedia.org/wiki/Native_POSIX_Thread_Library

Revision as of 10:06, 7 October 2015

TODO: {{#todo: InProgress (10.06.2015-13:07->MW+)|Michael Welling|OE 5.0,MW}}


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 skins abstracting 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 co-kernel configuration relies on the Adeos I-pipe patch for the sharing hardware resources between the kernels.

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. The Mercury configuration currently requires no Xenomai-specific kernel features but the kernel should provide CONFIG_HIGH_RES_TIMERS and PREEMPT-RT for bounded latencies.

Xenomai

Further Information

Where to Go Next