Difference between revisions of "Xenomai"
| 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- | ||
| − | |||
| − | |||
| − | 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 | ||
| − | |||
| − | |||
| − | <!-- /*********************************************************************************************************/ --> | ||
| − | <!-- /***************************************** 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- | ||
| − | |||
| − | |||
| − | 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 | ||
| − | |||
| − | |||
| − | |||
| − | <!-- /*********************************************************************************************************/ --> | ||
| − | <!-- /***************************************** 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 10:13, 7 October 2015
== 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