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