1.1 I-pipe与Xenomai

Interrupt Pipeline系列文章大纲-CSDN博客

        如何提高Linux的实时性?有两种思路。

       第一种,对Linux内核的内部进行实时改造,尽可能减少内核不可抢占的代码。最知名的是PREEMPT_RT补丁集,在2015年成为Linux Foundation的正式项目“Real Time Linux Collaborative Project”。

       第二种,采用双内核的办法,在硬件之上运行一个实时内核,把Linux内核当成的实时内核的一个普通的进程,其代表有RTLinux、RTAI和Xenomai。

       Xenomai由Philippe Gerum在2001年发起。RTLinux既有商业版RTLinux/Pro也有社区版RTLinux/Free,申请了双内核相关专利。为了绕过RTLinux的专利,Philippe选择ADEOS作为解决方案。ADEOS来自于卡里姆Karim Yaghmour的论文《Adaptive Domain Environment for Operating Systems》。Philippe Gerum和Karim Yaghmour是《构建嵌入式LINUX系统》的共同作者。Xenomai曾在2003~2004与RTAI一起合作,开发了RTAI/fusion项目,后来在2005年Xenomai独立发展。Xenomai和RTAI分开后,二者对ADEOS的使用有所不同。Xenomai让ADEOS完全控制中断,然后分发给实时内核和Linux内核;而RTAI直接处理感兴趣的中断,把不感兴趣的中断透过ADEOS传给Linux。理论上RTAI实时性更强。但是RTAI更新速度比较慢,最新的版本是2021/5/19发布的RTAI 5.3,适配Linux 4.19,主页上宣称支持的硬件是x86和x86_64,对ARM的支持处于rework中。反观Xenomai,支持x86、x86_64、PowerPC/32、ARM、ARM64等硬件,社区活跃,版本从Xenomai2迭代到了Xenomai4。

       Xenomai2目前已经EOL,Xenomai4比较新,而Xenomai3比较稳定,处于长期维护中,应该是当前使用比较广泛的版本。这里重点学习Xenomai3.2.1版本。

       Xenomai3由两大部分构成:ADEOS和实时内核Cobalt。

       ADEOS的设计目标,是为了让多个操作系统可以共享同一套系统硬件。每个操作系统在自身的操作系统域中运行,分为两类。第一类操作系统,感知不到ADEOS的存在,只接收来自ADEOS的中断;第二类操作系统,知道ADEOS的存在,不仅接收来自ADEOS的中断,还主动与ADEOS交互。

2379232e346c4b81956eefa1204ce7e7.png

        ADEOS提出了Interrupt pipeline中断流水线的方法,可以让硬件中断在多个操作系统域中传递。先拿到中断的操作系统域,意味着有更高的优先级运行。操作系统必须找到一种方式,实现对中断的关闭与打开操作,也称为stall/unstall操做。

c70d753e9865425db810966516290fe8.png

       Xenomai3中实现的ADEOS与原论文中的有不同点:

  • Xenomai3 ADEOS仅支持2个操作系统域:Linux域(root域)和Cobalt域(head域)。
  • Linux域和Cobalt域都属于第一类操作系统,感知不到ADEOS的存在,只接收来自ADEOS的中断。Cobalt域优先接收并处理中断。
  • 原论文中,以x86架构为例,通过把Linux内核从Ring0移动到Ring1,来完成Linux对中断的关闭(stall)/打开(unstall)操作。Xenomai 3 ADEOS采取了另一篇论文《Fast Interrupt Priority Management in OS Kernels》的思想,通过virtual interrupt flag来完成Linux对中断的关闭(stall)/打开(unstall)操作。

        也许正是因为这些不同点,Xenomai3 ADEOS的项目名称并不是ADEOS,而是ipipe。以ARM64架构为例,代码仓库为:xenomai / ipipe-arm64 · GitLab。在代码仓中,Documentation/ipipe.rst描述了设计思想和基本框架。

点击查看系列文章 =》 Interrupt Pipeline系列文章大纲-CSDN博客

原创不易,需要大家多多鼓励!您的关注、点赞、收藏就是我的创作动力!

资料:

Adaptive Domain Environment for Operating Systems

Fast Interrupt Priority Management in OS Kernels

[开源名人访谈录] Philippe Gerum

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值