论文部分内容阅读
随着嵌入式应用的复杂性的提高和对实时性要求越来越苛刻,作为其核心的嵌入式实时操作系统就显得尤为重要。现有的大部分嵌入式RTOS一开始的设计就着眼于系统的实时性,其应用功能也相对比较单一,因此它们天生就缺乏支持丰富的复杂应用的功能,同时系统本身的可扩展和可移植性也相对较差。而且,不少商业化RTOS既不开放源代码,也价格过于昂贵,缺少一个开放的、统一的、有广泛支持且高效的嵌入式RTOS。为此,不少研究机构和开源社区开始研究将功能丰富的通用操作系统改造成实时操作系统。Linux以其开放性、低成本性和对多种体系架构的支持使得它在嵌入式系统中得到了广泛的应用,因此自然地成为了实时化的首选。对Linux进行实时性改造,通常可以从两个大的方向来着手。一个方向是从Linux内核内部开始,直接修改其内核源代码,其典型代表是Preempt-RT实时补丁;另一个方向则是从Linux内核的外围开始,实现一个与Linux内核共存的实时内核,即采用双内核方法,其典型实现有RTAI/Linux。然而,由于嵌入式实时Linux的技术复杂性和相关资源的匮乏,要想很好地利用它们进行实时多核应用开发必须对其实现改进技术进行深入的理解和剖析,并对其应用编程方法进行总结归纳。基于上述认识,本文首先在剖析标准Linux 2.6内核的实时特性和缺陷的基础上,深入研究了Preempt-RT实时补丁的实现,如何进行实时性改进。然后,详细地剖析了基于Linux实现的ADEOS/IPIPE超微内核的工作原理和具体实现。最终对最新基于ADEOS/IPIPE方式的RTAI实时内核的设计和实现也进行了详细的讲解。在此过程中,我们从不同的方面对标准Linux 2.6与Preempt-RT实时补丁进行了对比测试,同时对RTAI/Linux也进行了相关的测试分析,以验证其实时性能。最后,本文针对具有双核的“嵌入之星”嵌入式平台和标准PC机上构建了上述两种开源实时Linux,分别实现了相应的实时应用实例并进行对比研究,为后续实时应用开发提供指导和借鉴。