Difference between revisions of "Xenomai"

From wiki.emacinc.com
Jump to: navigation, search
Line 1: Line 1:
{{todo| InProgress (10.06.2015-13:07->MW+)|Michael Welling| project=OE 5.0,MW }}
+
{{todo| InProgress (10.06.2015-13:07->MW+)|Michael Welling| project=OE 5.0,MW }}{{#seo:|title=Xenomai|titlemode=append|keywords=|description=About Xenomai}}<!-- /*********************************************************************************************************/ --><!-- /****************************************  Page Description Text  ****************************************/ --><!-- /*********************************************************************************************************/ -->__TOC__<!-- /*********************************************************************************************************/ --><!-- /***************************************** Background Information ****************************************/ --><!-- /*********************************************************************************************************/ -->{{: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. 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-timeapplications 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 architecturesincluding x86, ARM, Blackfin and NIOS2.<!-- /*********************************************************************************************************/ --><!-- /*****************************************  General Information  *****************************************/ --><!-- /*********************************************************************************************************/ -->{{:Templateimpl:geninfo | initials=MW | title=Xenomai | desc=About Xenomai | project=OE 5.0 }}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-pipepatch 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 configurationcurrently requires no Xenomai-specific kernel features but the kernel should provide CONFIG_HIGH_RES_TIMERS andPREEMPT-RT for bounded latencies.<!-- /*********************************************************************************************************/ --><!-- /*****************************************  Using/Working With  ******************************************/ --><!-- /*********************************************************************************************************/ -->{{:Templateimpl:using | initials=MW | title=Xenomai | desc=About Xenomai | project=OE 5.0 }}Xenomai provides several device drivers and userspace utilities in it's distribution.The device drivers rely on the Real Time Driver Model (RTDM) skin. Xenomai provides real-time drivers forCAN, serial, IPC, networking, data acquisition, and testing using the RTDM. These drivers provided canused as a reference when creating drivers for new devices.The userspace utilities and examples are used to benchmark the target system and demonstrate theAPI for the RTDM drivers.<!-- /*********************************************************************************************************/ --><!-- /******************************************  More Information  *****************************************/ --><!-- /*********************************************************************************************************/ -->{{:Templateimpl:moreinfo | initials=MW | title=Xenomai | desc=About Xenomai | project=OE 5.0 }}* https://xenomai.org/start-here/* https://xenomai.org/introducing-xenomai-3/* https://xenomai.org//documentation/xenomai-3/html/xeno3prm/* https://en.wikipedia.org/wiki/Adaptive_Domain_Environment_for_Operating_Systems* https://en.wikipedia.org/wiki/Native_POSIX_Thread_Library
{{#seo:
 
|title=Xenomai
 
|titlemode=append
 
|keywords=
 
|description=About Xenomai
 
}}
 
 
 
<!-- /*********************************************************************************************************/ -->
 
<!-- /****************************************  Page Description Text  ****************************************/ -->
 
<!-- /*********************************************************************************************************/ -->
 
 
 
__TOC__
 
 
 
<!-- /*********************************************************************************************************/ -->
 
<!-- /***************************************** Background Information ****************************************/ -->
 
<!-- /*********************************************************************************************************/ -->
 
{{: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.  
 
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  *****************************************/ -->
 
<!-- /*********************************************************************************************************/ -->
 
{{:Templateimpl:geninfo | initials=MW | title=Xenomai | desc=About Xenomai | project=OE 5.0 }}
 
 
 
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.
 
 
 
<!-- /*********************************************************************************************************/ -->
 
<!-- /*****************************************  Using/Working With  ******************************************/ -->
 
<!-- /*********************************************************************************************************/ -->
 
{{:Templateimpl:using | initials=MW | title=Xenomai | desc=About Xenomai | project=OE 5.0 }}
 
 
 
 
 
<!-- /*********************************************************************************************************/ -->
 
<!-- /******************************************  More Information  *****************************************/ -->
 
<!-- /*********************************************************************************************************/ -->
 
{{:Templateimpl:moreinfo | initials=MW | title=Xenomai | desc=About Xenomai | project=OE 5.0 }}
 
 
 
* https://xenomai.org/start-here/
 
* https://xenomai.org/introducing-xenomai-3/
 
* https://en.wikipedia.org/wiki/Adaptive_Domain_Environment_for_Operating_Systems
 
* https://en.wikipedia.org/wiki/Native_POSIX_Thread_Library
 

Revision as of 11:13, 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-timeapplications 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 architecturesincluding 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-pipepatch 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 configurationcurrently requires no Xenomai-specific kernel features but the kernel should provide CONFIG_HIGH_RES_TIMERS andPREEMPT-RT for bounded latencies.== Xenomai ==Xenomai provides several device drivers and userspace utilities in it's distribution.The device drivers rely on the Real Time Driver Model (RTDM) skin. Xenomai provides real-time drivers forCAN, serial, IPC, networking, data acquisition, and testing using the RTDM. These drivers provided canused as a reference when creating drivers for new devices.The userspace utilities and examples are used to benchmark the target system and demonstrate theAPI for the RTDM drivers.== Further Information ==

===== Where to Go Next =====* https://xenomai.org/start-here/* https://xenomai.org/introducing-xenomai-3/* https://xenomai.org//documentation/xenomai-3/html/xeno3prm/* https://en.wikipedia.org/wiki/Adaptive_Domain_Environment_for_Operating_Systems* https://en.wikipedia.org/wiki/Native_POSIX_Thread_Library