0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

实时系统Preempt RT与Xenomai之争!谁更主流,谁更实时?

Tronlong创龙科技 2023-07-31 16:53 次阅读

版权声明:本文主要内容基于“北京盟通科技有限公司”授权提供的文件,由“创龙科技”进行整理得出。感谢“盟通科技”的慷慨支持,让更多人了解Linux系统的“实时拓展”选择知识。


选择争论一直存在


大家知道EtherCAT是实时现场总线技术,当我们开发一款支持EtherCAT总线的控制器时,实时操作系统的选择不仅对于产品本身是最重要的一部分,而且对产品研发的整个过程也影响深远。


根据EtherCAT主站提供商Acontis公司对全球新客户的情况统计,选择实时Linux系统的客户比重在过去10年逐年增加,Acontis公司2019年所有新客户中采用实时Linux作为控制器操作系统的比例已超过60%。


从近几年的经验中,我们注意到一些客户对实时性的理解存在偏差和误区。此外,对于实时Linux系统的选择,主要是采用Preempt RT还是Xenomai存在大量争论。结合我们在以往项目中的经验以及实时Linux系统专家Jan Altenberg 2015年在Embedded Linux会议上的讲演,我们整理出此文。希望可以帮助大家理解实时性,同时对在Preempt RT和Xenomai之间做出合适的选择提供参考。


什么是“实时性”


我们在和客户的交流中注意到,部分工程师会把实时性与执行速度或性能相混淆。Altenberg在讲演中特别强调:实时性与执行速度和性能无关!


无论是实时操作系统还是实时现场总线,实时性的含义不是越快越好,而是在规定的时间内完成任务的确定性(Determinism and Timing Guarantees)。如果我们给实时性下定义,那么实时性就是关于时间的确定性。


实时性的一个重要特点,是在规定的时间段内完成规定的任务。在技术讨论中,有时客户对EtherCAT协议不存在对错误数据自动重传的机制有疑问,很显然是忽略了实时性的这一特性。EtherCAT主站的工作原理,是按时间段(循环周期)发送数据。每个循环周期内的过程数据(Process Data),只在这个周期内到达从站才有意义,因此EtherCAT在协议层面不会自动在后续周期重新发送之前周期发送失败的过程数据。


在Embedded Linux会议讲演中,Altenberg还表述了一个很有趣的观点,他希望大家忘掉“软实时”(即Soft Real Time的提法),只存在实时和非实时的、确定性和非确定性的区别。能保证确定性,那就是“硬实时”(Hard Real Time)。


Xenomai和Preempt RT实现原理


目前,对实时Linux方案的选择主要在Xenomai和Preempt RT之间。Xenomai是在Linux Kernel外增加独立的微内核的双内核方案,而Preempt RT是标准的单内核实时方案。


Xenomai的实时应用运行在微内核中,而把Linux系统作为微内核的一个低优先级任务。与RTAI不同,Xenomai实时性在用户空间实现。当高优先级的实时应用程序不在微内核运行时,Linux才有可能获得运行时间。下图是以Xenomai为代表的双内核方案的原理图。


Altenberg认为双内核实时方案有几个明显不足。首先,维护工作量大。由于Linux不是直接在硬件上运行,因此Xenomai在维护微内核的同时还需要维护硬件抽象层HAL层,这导致Xenomai的更新速度通常会比主线Linux落后一步。其次,不能使用标准C库。Xenomai实时应用的开发需要特殊的工具和库以及单独的API


主流的实时Linux方案是基于Preempt RT的单内核方案,通过最大限度地提高Linux内核中的可抢占部分,使Linux本身具备实时性。下图为Premept RT单内核原理图。


wKgZomTtkQGAQQwbAAFK0FhGDbo953.png

图 2Preempt RT单内核方案原理图


由于大约80%的Preempt RT功能已经融合进Linux主线,因此任何Linux开发者都可以使用Preempt RT的Linux内核组件。Preempt RT不仅仅把Linux变成实时系统,同时提高了Linux的稳定性。Preempt RT被广泛接受并拥有庞大的社区,开发者不需要深入了解Preempt RT,而是使用标准C库开发实时应用。开发者不需要深入了解Preempt RT,而是使用标准C库开发实时应用。Preempt RT就是Linux系统,Preempt RT的实时应用也是Linux的应用。


随着剩下的20%功能逐渐融入Linux主线,未来有可能不需要在Linux安装补丁程序而直接使用Preempt RT。


Xenomai和Preempt RT性能对比


实时性能最重要的指标是延时的大小。网上有不少流传很广的文章,表示Xenomai在延迟方面有优势。Altenberg并不认同这种观点,他认为之所以得出这样的结论,是对Preempt RT的错误配置造成的。


为了确切证实,他们的团队分别找了Xenomai和Preempt RT专家,在相同的硬件平台上进行了测试。测试对象是高负载下Xenomai和Preempt RT在延时Latency和抖动Jitter两个方面的表现情况。


Altenberg强调了两点,第一是测试的最坏结果才有意义。另外一点是系统拿到中断后,在用户空间的应用响应延时是对应用最有意义的。


在用户空间的测试结果,Xenomai和Preempt RT最坏延时都在90-95微秒左右。当在Linux系统中只使用单核测试时,Preempt RT最坏的延时只有大约80微秒,结果优于Xenomai。


在Kernel空间延时的测试结果,Xenomai最高延时在30微秒,单核运行Preempt RT的最高延时60微秒。如果使用FIQ快速中断的话,Preempt RT的最坏延时也可达到30微秒,平均延时甚至到达10微秒。


专家观点


盟通指出:测试表明,对于开发人员最有意义的用户空间内最坏延时方面,两种实时方案在该性能指标上展示出近乎相同的数据。


但是Preempt RT几乎已经和Linux内核主线合并,从系统的开发和维护角度,Preempt RT的工作量与标准Linux相同。这使Preempt RT与Xenomai相比具备更多优势,例如工程师开发更简单、产品生命周期更长、系统维护工作更容易等。


实时系统工业平台,尽在创龙科技


创龙科技很多ARM嵌入式处理器平台已支持Preempt RT与Xenomai实时拓展,主要平台如下。更多型号或细节内容,欢迎与我们联系。


wKgaomTtkQCAQN7KAAEuB5Vh9IA036.jpg

图 3创龙科技Linux实时系统平台支持列举


关于盟通


北京盟通科技有限公司成立于2013年,是工业自动化领域的高新技术企业,公司专注于实时现场总线技术及工业通讯技术的研发、推广及技术支持服务。依托于核心团队多年的海外和行业经验,与欧洲多家自动化领域的佼佼者战略合作,为客户提供EtherCAT主站协议栈、OPC UA SDK软件开发包、CANopen协议栈、FSoE协议软件、DINA功能安全模块及现场总线设备等标准和定制化产品,也可提供工业4.0框架内完整的通讯解决方案。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206738
  • 实时系统
    +关注

    关注

    0

    文章

    31

    浏览量

    14141
  • Xenomai
    +关注

    关注

    0

    文章

    10

    浏览量

    7939
  • preempt-rt
    +关注

    关注

    0

    文章

    4

    浏览量

    1664
收藏 人收藏

    评论

    相关推荐

    实时级嵌入式系统半实物仿真测试平台ETest

    产品简介** ETest_RT是一款具有高实时性的嵌入式系统半实物仿真测试平台(Embedded System Real Time Test Studio RT,简称:ETest_
    发表于 04-25 17:01

    实测14us,Linux-RT实时性能及开发案例分享—基于全志T507-H国产平台

    ,Linux系统延迟最低,可有效提高系统实时性。故推荐对实时性要求较高的程序(功能)指定至T507-H隔离的CPU核心运行。 Linux-RT
    发表于 04-18 10:21

    使用 PREEMPT_RT 在 Ubuntu 中构建实时 Linux 内核

    盟通技术干货构建实时Linux内核简介盟通技术干货Motrotech如果需要在Linux中实现实时计算性能,进而有效地将Linux转变为RTOS,那么大多数发行版都可以打上名为PREEMPT_RT
    的头像 发表于 04-12 08:36 134次阅读
    使用 <b class='flag-5'>PREEMPT_RT</b> 在 Ubuntu 中构建<b class='flag-5'>实时</b> Linux 内核

    【飞凌 OK113i-C 全志T113-i开发板】测试实时系统

    延时更加稳定,平均延时、最大延时更低,系统实时性更佳PREEMPT-RTxenomai在buildroot里面,大家可以选择xenomai
    发表于 12-25 09:50

    实时系统Preempt-RTXenomai之争!谁更主流,谁更实时

    版权声明: 本文主要内容基于“北京盟通科技有限公司”授权提供的文件,由“创龙科技”进行整理得出。感谢“盟通科技”的慷慨支持,让更多人了解Linux系统的“ 实时拓展 ”选择知识。 选择争论一直存在
    的头像 发表于 12-08 16:33 311次阅读
    <b class='flag-5'>实时</b><b class='flag-5'>系统</b><b class='flag-5'>Preempt-RT</b>与<b class='flag-5'>Xenomai</b><b class='flag-5'>之争</b>!谁更<b class='flag-5'>主流</b>,谁更<b class='flag-5'>实时</b>

    到底啥是实时操作系统呢?它到底实时实时呢?

    到底啥是实时操作系统呢?它到底实时实时呢? 实时操作系统(Real Time Operatin
    的头像 发表于 10-29 16:33 727次阅读

    如何判断自己的应用需要上实时操作系统

    无线,WIFI无线。主要是数据采集,多种通信规约转换。 请问怎么判断自己的设备需要上实时操作系统实时操作系统中,ucos、freertos、rt
    发表于 10-28 08:12

    基于NXP微控制器i.MX RT1170的多人体实时检测算法和系统

    基于NXP微控制器i.MX RT1170的多人体实时检测算法和系统
    的头像 发表于 10-26 16:27 705次阅读
    基于NXP微控制器i.MX <b class='flag-5'>RT</b>1170的多人体<b class='flag-5'>实时</b>检测算法和<b class='flag-5'>系统</b>

    实时操作系统在应用上有什么区别?

    实时操作系统应该就是FreeRTOS、UCOS、RT-T这些吧。 这些系统有没有级别区分,就是哪个功能丰富、
    发表于 10-24 07:01

    Easygo实时仿真丨微网仿真测试系统应用

    能够真实地观察和理解微电网系统的运行特性。2、在实时仿真中,微电网的各个组件和子系统的状态和行为都以接近实时的速度更新和计算。这包括发电设
    发表于 09-26 10:22

    专用R5F+双核A53,异构多核AM64x让工控“实时

    Cortex-A53主核心运行Linux-RT实时性无法达到10us以内的棘手问题,从而使AM64x处理器平台友好支持实时性要求更高的产品应用。 Cortex-R5F实时核心介绍
    发表于 08-23 15:34

    【新书上架】RT-Thread第10本相关书籍!物联网实时操作系统原理与实战

    新书上架,本书以RT-Thread操作系统为例,系统地阐述了物联网项目开发中,实时操作系统的作用、内核原理、组件技术以及如何利用其组件化开发
    的头像 发表于 06-28 19:25 594次阅读
    【新书上架】<b class='flag-5'>RT</b>-Thread第10本相关书籍!物联网<b class='flag-5'>实时</b>操作<b class='flag-5'>系统</b>原理与实战

    RT-Thread操作系统有哪些优势?

    RT-thread是一个轻量级的操作系统,很小,但是也是一个操作系统。主要优势有这些: 跨芯片平台:支持所有主流微控制器,解决设备碎片化问题。 实时
    发表于 06-28 08:16

    实时系统Preempt RTXenomai之争主流实时

    、产品生命周期更长、系统维护工作容易等。 实时系统工业平台,尽在创龙科技 创龙科技很多ARM嵌入式处理器平台已支持Preempt
    发表于 06-15 16:42

    99元国产ARM平台+实时系统,给工业带来何种意义?

    基于普通Linux内核打上了RT PREEMPT补丁,使用Linux内核成为硬实时操作系统PREEMPT_RT补丁的关键是最小化不可抢占的
    发表于 05-03 23:39