基于Linux 系统的内核编译及实时RTAI 架构①
2012-07-09张静,宋珂,章桐
张 静, 宋 珂, 章 桐
(同济大学中德学院,上海201804)
0 引言
所谓实时系统(real-time system)是指其在计算和动作方面具有性能期限、对于外界的刺激都能由计算机给出及时响应的系统[1].全球许多科技公司和研究机构都对Linux的实时性进行了研究和改进.在众多改进方案中,实时应用接口(Real-TimeApplication Interface,RTAI)和实时 Linux(Real-time-Linux,RT-Linux)以其出色的性能,成为了目前主流Linux实时性改进方案.RTAI与RT-Linux相比,其结构更加灵活,代码修改量更小,研发周期更短[2].
RTAI项目是由意大利米兰理工学院航天工程系发起开发的遵循GPL的开源项目,RTAI在ARM平台上的移植,是从 3.2版本开始的,是基于Adeos实现的,它的硬件抽象层HAL使用Adeos提供的服务.也就是说,RTAI实现了Adeos中的一个域,通过Adeos实现RTAI域的初始化、中断的申请、中断服务程序的注册等[3].
RTAI在Adoes系统中的域优先级高于Linux域(也就是根域),每当中断到来之后,Adeos先调度RTAI对该中断进行处理、执行中断相关的实时任务,只有当RTAI没有实时任务和中断需要处理的时候,Adeos才会调度Linux运行,这就保证了RTAI的中断响应速度和实时任务不受Linux的影响,从而提供了实时系统的可确定性[4].
1 Linux操作系统的编译与实现
1.1 Linux系统的安装、内核及RTAI选型
我采用的是 Ubuntu 8.04.4 的 Wubi安装,8.04.4是Ubuntu系统的稳定版本,这样成功性较高.首先查看一下默认的内核版本,在终端内输入指令zj@zj-desktop:~$uname–r显示默认的内核版本是 2.6.24.26 - generic.那么接下来就要选择一款RTAI的版本,我选择了RTAI-3.7,进入RTAI-3.7 的/rtai-3.7/base/arch/i386/patches,可以查看此版本RTAI支持的内核版本.如图1所示.

图1 支持的内核版本
由此我们选择了 Linux -2.6.20.21.登录已安装完成的Ubuntu系统,在终端……