实时(hard realtime)操作系统RTLinux的出现,“弥补”了Linux在实时应用领域的缺陷。RTLinux是美国新墨西哥州的FSMLabs(Finite State Machine labs, 有限状态机实验室)公司利用Linux开发的面向实时和嵌入式应用的操作系统。在RTLinux宣言(The RTLinux Manifesto)中,这样描述RTLinux[24]:
RTLinux is the hard realtime variant of Linux that makes it possible to control robots, data acquisition systems, manufacturing plants, and other time-sensitive instruments and machines.
Rtlinux原理是将Linux的内核代码做一些修改,将Linux本身的任务以及Linux内核本身作为一个优先级很低的任务,而实时任务作为优先级最高的任务。即在实时任务存在的情况下运行实时任务,否则才运行Linux本身的任务
RTLinux本身是一个很小的实时操作系统,把Linux操作系统内核作为一个执行的任务看待。实际上,Linux是作为实时操作系统一个空闲(idle)任务存在的,只在没有实时任务时执行,并且永远不能阻止中断或者阻止本身被实时任务抢占。其技术关键在于对硬件中断的软件模拟。当Linux通知硬件禁止中断时,实时系统截取(intercept)该请求,并记录,然后返回给Linux。其实Linux并未真正关中断,因此,不管Linux处在什么状态,都不会引起实时系统中断响应时间的延时。当中断到来时,RTLinux截取中断,如果存在实时处理句柄,则调用该句柄。若不存在实时句柄,或者实时句柄想和Linux共享该中断,则该中断被标志为“即将发生的”(pending)。当Linux请求中断被恢复时,RTLinux模拟这些中断的产生,引发Linux的中断处理。因此,不论Linux处在什么状态,正在运行什么程序,实时系统都能够对中断做出很快的响应