开源的嵌入式实时Linux: XtimesLinux

开源的嵌入式实时Linux: XtimesLinux,第1张

  Linux实时化研究是业界一个很老的话题,自从RTLinux在1999年采用独创的双内核方式实现Linux实时化以后,采用双内核方式一直是Linux实时研究的一个重要方向。在2005年左右,MontaVista公司在Linux2.6内核上使用抢占补丁的方式实现了linux的软实时,使得Linux内核的实时响应性能大为提升。目前桌面版本的Linux内核大多使用了抢占功能。

  采用抢占补丁的方式比双内核方式的一个最大优点在于其编程接口的统一性。在抢占补丁方式中,实时应用与非实时使用可以使用统一的Linux API接口,他们之间的通信方式仍然采用传统的进程间通信方式即可。抢占补丁方式可以实现软实时,在硬实时方面仍然能力不足。MontaVista公司为了实现硬实时,在抢占补丁的基础上使用较为复杂的技术比如将自旋锁改成互斥量、高精度定时器、中断线程化等机制,这些机制的修改涉及到驱动程序已有的运行机理,因此会影响到Linux内核的稳定性,这对于稳定性要求高的场合,比如无线通信以及电信级应用,并不合适。经过业界测试表明,MontavistaLinux对于硬实时系统并不合适。

  RTLinux引领的双内核方式通过中断虚拟化的方式能够很好地实现硬实时,虽然其需要为实时任务专门设计一套编程接口,而且实时任务与非实时任务的通信也要使用的专门通信机制,但由于其硬实时性,在一些工业控制等实时要求高地领域有重要的应用之地。在双内核方式中,实时内核接管中断,而非实时内核(即Linux)使用一个软件标志位作为其虚拟中断,虚拟中断的方式把中断控制器完全交给了实时内核,因而能达到很好地实时响应性能。双内核方式除了编程接口的不统一之外,也还有其他不足之处,比如实时内核没有自己的内存管理功能,在内存的分配仍然依赖于Linux; 实时内核虽然接管了中断,但中断的现场仍然是Linux来保存和恢复的。可以说实时内核和非实时内核是紧密耦合的,这对于系统的维护以及稳定性非常不利。

  RTLinux在07年被WindRiver收购后,在开源社区就变得不活跃了。不过RTLinux的变种RTAI仍然活跃于开源社区。RTAI是完全免费,开放的,不受RTLinux专利的限制。RTAI代表“Real-TIme ApplicaTIon Interface”,它必须与Adeos补丁一起工作。Adeos实现了一个硬件抽象层,其最重要的功能仍然是中断虚拟化,不过它比RTlinux时代的中断虚拟化功能更加完善。硬件抽象层的存在以及其功能完善,使得实时内核和非实时内核之间由紧耦合关系变为松耦合关系,这对于系统的稳定性以及代码维护是非常重要的。硬件抽象层使得Linux所需的物理资源或者从硬件抽象层获得,或者直接访问硬件(针对于Linux专属设备),套用虚拟化术语,Linux已作为实时内核的客户 *** 作系统被调度运行。

  RTAI/ADEOS 将Linux作为客户 *** 作系统运行于实时内核之上的方式实际上是嵌入式虚拟化的内容。嵌入式虚拟化(embedded virtualizaTIon,又名Hypervisor)是最近几年热门的研究内容,它是为了弥补传统 *** 作系统在实时性、安全性、多核扩展方面的不足而提出的。针对系统实时性的Hypervisor的方案目前主要有WindRiver hypervisor,OKL4,Lynx OS,Xenomai等。嵌入式虚拟化代表了解决Linux实时问题的目前最为先进的方法,但目前正处于推广阶段,开源的方案也比较少,上述方案中只有Xenomai是开源的,但Xenomai一般这针对某个芯片平台提供一个参考的源代码版本,如果要应用到具体平台中,还需要深入的源代码阅读才能完成移植工作,这对于一些设备厂商而言,无疑是一项高的门槛。

  针对Xeonmai在平台支持方面的欠缺,笔者所在团队用了近2年半时间开发了XTImesLinux,专门针对ARM平台,而且针对特定开发板提供板级的实时方案,降低使用门槛,而且代码完全开放,希望能被工业控制,信号处理、通信等领域试用,以图在国外厂商所占据的实时基础软件市场中取得立足之地。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2714486.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存