RT-Linux :RT-Linux

更新时间:2024-09-21 01:09

RT linux就是realtime linux的简写,RT-Linux是一个嵌入式硬实时操作系统,它部分支持POSIX.1b标准。

简介

RT linux 是由美国墨西哥理工学院开发的linux嵌入式应用操作系统。到目前为止,RT-Linux已经 成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像处理等广泛领域。RT-Linux开发者并没有针对实时操作系统的特性而重写Linux 的内核,因为这样做的工作量非常大,而且要保证兼容性也非常困难。为此,RT-Linux提出了精巧的内核,并把标准的Linux核心作为实时核心的一个 进程,同用户的实时进程一起调度。这样对Linux内核的改动非常小,并且充分利用了Linux下现有的丰富的软件资源。

设计思想

RTLinux的设计思想是:应用硬件的实时约束将实时程序分割成短小简单的部分,较大部分承担较复杂的任务。根据这一原则,将应用程序分为硬实时和程序 2个部分。硬件实时部分被作为实时任务来执行,并从外部设备拷贝数据到一个叫做实时有名管道(RTFIFO)的特殊I/O端口;程序主要部分作为标准 Linux进程来执行。它将从RTFIFO中读取数据,然后显示并存储到文件中,实时部分将被写入内核。设计实时有名管道是为了使实时任务在读和写数据时不被阻塞。图2所示的是实时有名管道结构图。

RTLinux通过对标准Linux内核进行改造,将Linux内核工作环境作了一些变化。如图2所示,在Linux进程和硬件中断之间,本来由 Linux内核完全控制,在Linux内核和硬件中断的地方加上了一个RTLinux内核的控制。Linux的控制信号都要先交给RTLinux内核进行处理。在RTLinux内核中实现了一个虚拟中断机制,Linux本身永远不能屏蔽中断,它发出的中断屏蔽信号和打开中断信号都修改成向 RTLinux发送一个信号。如在Linux里面使用“SI”和“CLI”宏指令,让RTLinux里面的某些标记做了修改。也就是说将所有的中断分成 Linux中断和实时中断两类。如果RTLinux内核接收到的中断信号是普通Linux中断,那就设置一个标志位;如果是实时中断,就继续向硬件发出中断。在RTLinux中执行STI将中断打开之后,那些设置了标志位表示的Linux中断就继续执行,因此,CLI并不能禁止RTLinux内核的运行, 却可以用来中断Linux。Linux不能中断自己,而RTLinux可以。

这里体现了RTLinux设计过程中的原则:在实时模块中的工作量尽量少,如果能在Linux中完成而不影响实时性能的话,就尽量在Linux中完成,因此,RTLinux内核可以尽量做得简单。在RTLinux内核中,不应该等待资源,也不需要使用共享旋转锁。实时任务和Linux进程之间的通信也是非阻塞的,从来不用等待进队列和出队列的数据。RTLinux将系统和设备的初始化交给了Linux 完成,对动态资源的申请和分配也交给了Linux。

RTLinux使用静态分配的内存来完成硬件实时任务,因为在没有内存资源的时候,被阻塞的线程是不可能具有实时能力的。

特点

RTlinux是源代码开放的具有硬实时特性的多任务操作系统,它是通过底层对Linux实施改造的产物。通过在L inux内核与硬件中断之间增加一个精巧的可抢先的实时内核,把标准的Linux内核作为实时内核的一个进程与用户进程一起调度,标准的L inux内核的优先级最低,可以被实时进程抢断。正常的Linux进程仍可以在Linux内核上运行,这样既可以使用标准分时操作系统即Linux的各种服务, 又能提供低延时的实时环境。

参考资料

嵌入实时操作系统 RT-Linux.开源社区网.2012-09-08

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}
友情链接: