写点什么

xenomai 内核解析 -- 实时 linux 概述

作者:沐多
  • 2023-06-19
    广东
  • 本文字数:1719 字

    阅读完需:约 6 分钟

xenomai内核解析--实时linux概述

Linux 系统作为一个 GPOS(通用操作系统)发展至今已经非常成熟可靠了,并且由于遵循 GPL 协议,开放所有系统源代码,非常易于裁剪。更重要的是,与其他开源的 GPOS 或 RTOS 相比,Linux 系统支持多种处理器、开发板,提供多种软件开发工具,同时 Linux 系统对网络和图形界面的支持非常出色。显然,选择 Linux 操作系统在产品的开发周期和成本控制方面都有巨大优势。


虽然 Linux 系统功能强大、实用性强、易于软件的二次开发,并且提供编程人员熟悉的标准 API。但是由于 Linux 系统一开始就被设计成 GPOS(通用操作系统),它的目的是构建一个完整、稳定的开源操作系统,尽量缩短系统的平均响应时间,提高吞吐量,注重操作系统的整体功能需求,达到更好地平均性能。所以标准 Linux 并不提供硬实时性。


为解决 linux 不具有硬实时的问题,诞生了几种基于 Linux 的硬实时解决方案,分为两类:


1)直接修改 Linux 内核源代码。对 Linux 内核代码进行细微修改并不对内核作大规模的变动,在遵循 GPL 协议的情况下,直接修改内核源代码将 Linux 改造成一个完全可抢占的实时系统。其缺点是:通过修改 Linux 内核,难以保证实时进程的执行不会遭到非实时进程所进行的不可预测活动的干扰。该方法的代表是 RT-patch(Real Preemption Patch)。


2)双内核法。添加一个实时内核,在内核空间与 linux 内核并存,把标准的 Linux 内核作为一个普通进程在实时内核上调度。其优点是可以做到硬实时,并且能很方便地实现一种新的调度策略。常用的双内核法有 RT-Linux、RTAI(Real-Time Application Interface)和 Xenomai,


双核法具有较好的实时性。RT-Linux 最早出现,开创了双核法的先河,是双核法的代表。基于一种成为实时硬件抽象的层技术 RTHAL(Real Time Hardware Abstraction Layer),且为该技术申请了专利,后 RT-Linux 被 WindRiver 收购并商业化,WindRiver 于 2011 年 8 月彻底停止对其更新和维护,现在 RT-linux 已经不再更新。



xenomai 和 RTAL 同样借鉴 RT-Linux,Xenomai 项目始于 2001 年 8 月,Philippe Gerum 是 Adeos 和 Xenomai 项目的创始人和维护者。2003 年它和RTAI项目合并推出了 RTAI/fusion。RTAI/fusion 是Linux平台上的具有工业生产级别的实时自由软件开发平台,它基于 Xenomai 的抽象实时操作系统内核。2005 年的时候 RTAI/fusion 项目又从RTAI中独立出来作为 Xenomai 项目。


虽然 xenomai 和 RTAL 这两个项目基于同一本质的实时硬件抽象层技术 ADEOS(Adoptive Domain Environment for Operating System),但是实际上他们有很多不同之处。这些不同之处主要是由他们不同的目标和各自不同的实现方式造成的。RTAI 项目致力于技术上可行的最低延迟;Xenomai 除此之外还很看重扩展性,可移植性以及可维护性。Xenoami 项目不仅提供双核还对PREEMPT RT实时抢占补丁提供支持,这又是与 RTAI 项目的一个显著的不同。


另外 RT-Linux 只允许以内核模块的形式提供实时应用;xenomai 更注重用户空间应用的实时性。


几种 linux 实时方案对比如下表--Linux 实时性改造优缺点对比。


| 性能 | 直接修改内核 | 直接修改内核 | 双内核 | 双内核 | 双内核 |

| -------------- | ------------ | ------------ | -------- | ------ | ---------- |

| | RT-patch | 其他 | RT-Linux | RTAI | xenomai |

| 实时性 | 好 | 差 | 好 | 较好 | 较好 |

| 硬件支持 | 较好 | 好 | 一般 | 一般 | 较好 |

| API | 丰富 | 一般 | 一般 | 一般 | 丰富 |

| 维护难度 | 易 | 易 | 难 | 难 | 难 |

| 社区活跃度 | 较好 | 差 | 较差 | 一般 | 良好 |

| 用户态实时任务 | 支持 | 支持 | 不支持 | 支持 | 支持 |

| 内核实时任务 | 不支持 | 不支持 | 支持 | 支持 | 支持 |


综上,从实时性、硬件支持、社区活跃度、API 和商业版权等方面综合考虑,xenomai 无疑是 Linux 实时操作系统最好的选择。


参考:


刘剑, 仲宇, 王琦. 嵌入式 Linux 实时性改造技术综述[J]. 航天控制, 2018, 36(2): 93-97.


Xenomai - 维基百科,自由的百科全书


Xenomai History


发布于: 刚刚阅读数: 5
用户头像

沐多

关注

还未添加个人签名 2018-09-17 加入

嵌入式开发者

评论

发布
暂无评论
xenomai内核解析--实时linux概述_RTOS_沐多_InfoQ写作社区