一种改进嵌入Linux实时性的新型方案
现 有的嵌入式操作系统大致可分为商用型和免费型两类:商用型操作系统由于功能稳定、可靠,有完善的技术支持和售后服务,在嵌入式市场占有一定的份额。但它同 时也存在价格昂贵、需要版权、源代码不公开等一系列问题;免费型操作系统(如Linux)源码公开,有价格方面的优势,但在严格满足嵌入式实时应用需求方 面还有欠缺。

图2 实时内核实现机理
RTAI对Linux的实时性改进
现有几种针对Linux的实时系统解决方案,实现方法主要包括两种:
1)直接修改Linux内核、增加实时性,如:Montavista;
2)在普通Linux内核之上增加实时模块、双内核结构,如:RTLinux或RTAI。
Montavista 可以满足用户的软实时要求,RTLinux或RTAI着重增强Linux的硬实时特性。软实时系统的时限是柔性灵活的,它可以容忍偶然的超时错误。失败造 成的后果并不严重,仅仅是轻微地降低了系统的吞吐量。硬实时系统有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误。超时错误会带来损害甚至 导致系统失败、或者导致系统不能实现它的预期目标。
RTAI采用双内核方法,不直接使用Linux的任何功能,而是把需要高度时间精度的 工作写成一个驱动程序的形式,然后直接用PC时序芯片所产生的中断调用这个驱动程序。RTAI与NMT RT-Linux的最大不同之处在于,它在Linux上定义了一组实时硬件抽象层(RTHAL)。RTHAL将RTAI需要在Linux中修改的部分定义 成一组程序界面,RTAI只使用这组界面和Linux沟通。这样做的好处在于,用户可以将直接修改的Linux核心程序代码减至最小,这有可能使得将 RTHAL移植到新版Linux的工作量减至最低。
但是,RTAI虽然满足了硬实时性要求,却没有被裁减为足够小且适用于嵌入式系统。
RTAI+uClinux的实时方案
uClinux 是为嵌入式应用设计的,它本身并没有更多地关注实时问题。uClinux经过小型化改造,形成了一个高度优化、代码紧凑的嵌入式Linux,并保留了 Linux大多数的优点。它专门针对无MMU的CPU,去除了普通Linux内核中的虚拟内存管理部分。更重要的是,uClinux提供了完整的 TCP/IP协议栈,并支持大量其他的网络协议,为嵌入式系统提供了强大的网络支持。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论