现阶段的RTOS分成两个阵营:非Linux阵营和Linux阵营。
非Linux阵营:
Linux阵营:
RT-Thread;
RT-Linux;
PREEMPT-RT;
WindRiver Linux;
RTAI;
Xenomai。
常用的双内核法实时补丁有 RT-Linux、RTAI 和 Xenomai,其中RTLinux只允许以内核模块的形式提供实时应用;而RTAI和Xenomai支持在具有MMU保护的用户空间中执行实时程序。
Xenomai(从资料完备,社区活跃度,兼容性,实时性方面考虑)
2001 年 8 月由 Philippe Gerum 发起,其思想是来源于 Karim 的 ADEOS(Adoptive Domain Environment for Operating System)。发布后即被 RTAI 采用,并一度合并为 RTAI/Fusion。后于2005年独立。Xenomai 的实时性能比RTAI略差,因为其完全由 ADEOS 控制中断,而 RTAI 是由其内核对中断进行了截断,非实时的中断才交给 ADEOS,这就减少了一部分实时开销。
官方资料:https://source.denx.de/Xenomai/xenomai/-/wikis/home
网上资料:https://blog.csdn.net/pwl999/article/details/109412539 (介绍的很详细,推荐)
http://wiki.csie.ncku.edu.tw/embedded/xenomai
https://www.cnblogs.com/wsg1100/p/12864199.html
PREEMPT-RT(实时性逊于Xenomai,之前OAI使用的就是这个方案)
单内核版本的实时Linux,需要打patch。但是也有已经集成了PREEMPT-RT feature的版本,例如 Ubuntu LowLatency、rt-centos等
官方资料:https://rt.wiki.kernel.org/index.php/Main_Page
网上资料:https://blog.csdn.net/fightingskyer/article/details/118877564
https://lwn.net/Articles/146861/
RT-Thread(国产,资料丰富,而且社区活跃,但是是一个IoT OS)
RT-Thread 就是一个 IoT OS。物联网操作系统是指以操作系统内核(可以是 RTOS、Linux 等)为基础,包括如文件系统、图形库等较为完整的中间件组件,具备低功耗、安全、通信协议支持和云端连接能力的软件平台。同样的 uC/OS,FreeRTOS也是IoT OS,不适用于我们的情况。
官方资料:https://www.rt-thread.org/
WindRiver Linux(商业平台,网上资料很少)
Wind River Linux是商业级Linux,网上资料很少,不是开源版本。
官方资料:https://www.windriver.com/products/linux
RTAI(ARM兼容差,更新慢)
RTAI最初使用RT-Linux的方法,但后来转向在Adeos内核下运行。Adeos本质上是一个“管理程序”系统,它作为辅助任务运行Linux和实时系统,并允许两者通信。它允许在次要操作系统之间建立优先顺序,以便实时组件可以首先响应硬件事件。这种方法被认为更加灵活,并且避免了RT-Linux专利。使用RTAI仍然需要编写内核模式代码来处理任务的硬实时部分。
官方资料:https://www.rtai.org/
RT-Linux(已停更,成为历史)
RT-Linux方法是将硬件置于一个小型的硬实时系统的控制之下,并将整个Linux作为一个单一的、低优先级的任务在实时系统下运行。对实时模式的访问是通过编写一个内核模块获得的,该模块使用一组高度受限的原语。为实时模块和普通Linux用户空间之间的通信提供了通道。由于系统的实时端控制硬件并首先获得其资源,因此可以保证最大的响应时间。
RT-Linux是第一批实时性linux,可以提供硬实时,有两个版本,免费版和收费版,收费版最初由 FSMLabs(Finite State Machine Labs)公司开发,在2007年卖给了 WindRiver。之后 WindRiver 将其作为自己的产品 WindRiver Linux 的一个实时核心(real-time core)象征性的维护了一段时间,与2011年8月彻底停止更新和维护。RT-linux 的性能应该很好,WindRiver 应该是出于竞争的目的对其进行了收购,现在 RT-linux 已经不再更新,因此对于我们也只能当做了解一段历史了。