分类: LINUX
2015-08-17 13:11:51
1. NMT RT-Linux
NMT是新墨西哥科技大学(New Mexico Technology)的缩写。这一套系统可以说是最早的获得成功的Real-Time Linux,它目前已发展到3.0版。这个系统是由Victor Yodaiken和它的学生Michael Barabanov所完成。这个系统的概念是“架空”Linux内核,使得Real-Time进程得以尽快的被执行。
事实上,RT-Linux中的实时任务(Real-Time Task) 其实并不是 一个Linux的进程,而是一个 Linux 的可加载式核心模块(Loadable Kernel Module)。NMT RT-Linux采用一个比较简单的做法,它不使用Linux的任何功能,把需要高度时间精确度的工作写成一个驱动程序,然后直接用PC时序芯片 (Timer Chip) 所产生的中断调用这个驱动程序。这样,它就可以绕开Linux的中断机制,从而使系统响应时间大缩短。
从这个角度看,NMT RT-Linux 其实是一个实时驱动程序,算不上是真正的 Real-Time Linux。但由于它出现得早,且其架构很符合自动控制的需求,使用者非常的多,且多半是有关自动控制的应用。
2.RTAI
RTAI是 Real-Time Application Interface 的缩写。顾名思义知道它是一套可以用来写实时应用程序的接口。大致而言,RTAI和NMT RT-Linux是相同的东西。它同样的“架空”了Linux,而直接用可加载式核心模块( Loadable Kernel Module)实现实时进程。每一个实时进程实际上就是一个可加载式核心模块。
RTAI和NMT RT-Linux 最大的不同地方在于它非常小心的在Linux上定义了 一组实时硬件抽象层(Real-Time Hardware Abstraction Layer)。RTHAL将RTAI 需要在Linux中修改的部份定义成一组程序接口,RTAI只使用这组接口和Linux沟通。这样做的好处在于我们可以将直接修改Linux核心的程序代码减至最小,这使得将 RTHAL 移植到新版 Linux 的工作量减至最低。
RTAI 采取这种途径最大的原因在于NMT RT-Linux在由2.0版移植至2.2版的过程中遇到问题,使得基于2.2版核心的NMT RT-Linux一直无法完成。所以在Dipartimento di Ingegneria Aerospaziale Politecnico di Milano的Paolo Mantegazza和他的同事们就决定自行做移植的工作,由于NMT RT-Linux的困境他们认识到必须采取上述的途径以解决将来可能再度面临的兼容性问题。
于是 RTAI 便诞生了,它是一个比 NMT RT-Linux 更好的 NMT RT-Linux,虽然后来NMT RT-Linux也随后完成移植的工作,但那已经是RTAI诞生半年以后的事了。