分类: LINUX
2009-04-16 09:53:11
也许在嵌入式领域,不选择Linux的原因主要有两点吧:
1、不容易上手,不容易开发,维护成本高,工作量大....
2、实时性差
这里暂且不说第一点。现在,很多人都在讨论Linux实时化的问题。做工程的人,能选择的可能就是RTLinux、RTAI也或者是其他实时Linux等
东西。这里,我把我今年年初,用了3个月的时间,在香港理工做的一些研究拿出来和大家分享吧。我也很希望这些工作能实际用在我们的产品上,创造出实际的价
值,而不仅仅是为了发paper。
论文()是2007.12.3,发表在RTSS'07()上的文章。有幸可以在RTSS上发表论文,可以说是2007年我最大的收获(这里,我还是忍不住感谢香港理工邵老师对我的指导)。
这里大体说一下思路。Linux的实时性差主要因为两个问题:
1、调度算法————这个在2.6内核下加入的抢占,还能好一点
2、中断响应速度太慢————主要是因为某些情况下,关闭中断时间太长
RTAI(或者RTLinux)采用的方法是,用软件接管了中断的控制。让实时中断可以得到及时的响应。在此基础上,在Linux内核之外,又加了一层实
时调度的内核。Linux内核是运行在这个实时系统上的优先级最低的任务。因此,实时任务和中断就得到了保证。不过,在非x86的体系下,RTAI有很多
问题需要解决。按照我在ARM上移植的经验,确实遇到不少麻烦。而且,中断程序入口的复杂,给中断响应本身也带来了更多的不确定性。