论文部分内容阅读
目前台式仪器采用的操作系统主要有两类:桌面计算机使用的操作系统和嵌入式操作系统。桌面使用的操作系统主要以Windows系列为主;嵌入操作系统主要以商业嵌入操作系统为主。目前,国外生产的一些高端测试仪器产品采用Windows为操作系统,国内在过去一段时间内生产的产品还主要以DOS为操作系统,现在正在研发的产品采用了一些商业嵌入式操作系统,例如Vxworks,WindowCE等,它们都有较高的许可证使用费用,极大地增加了产品的成本。Linux作为操作系统的后起之秀,以其开放源代码、免费、支持多种硬件平台、模块化设计、对网络支持好等优点,逐渐受到开发者的重视,已被广泛地使用在嵌入式系统中,现已成为开发的热点。
本文针对台式仪器的特点,对Linux作为仪器操作系统的主要方面进行了研究,提出了相应的解决方案,主要内容有:Linux内核和根文件系统的裁减、内核实时性的增强、虚拟调度系统机制的实现、有限优先级条件下可调度性分析、可控内核审计的实现、Linux在AVl486信号发生器和CDMA基带信号发生器上的实现等等。研究成果包括:
(1)研究了Linux内核和在Linux上运行的根文件系统的裁减方法。仪器系统的存储空间是有限的,且硬件配置也是相对固定的。根据这些特点,在编译配置的基础上,提出了细粒度的定制方法。采取粗粒度和细粒度相结合的方法,实现内核的定制。介绍了根文件系统定制的方法,给出了它们的配置方法和过程,对结果进行了比较和分析。
(2)研究了增强Linux实时性的方法。仪器的测试程序具有较强的实时性要求,本文分析了Linux在实时方面的不足,提出了增强Linux实时性的方案,主要在时钟粒度、内核可剥夺性和优先级反转等方面进行了分析,实现了时钟粒度的细化,通过双内核和在原内核中增加抢占点相结合,实现了具有可剥夺性的新内核,通过优先级继承协议的实现,避免了优先级翻转。进行了实验测试,实验结果表明,有效地增强了实时性,拓宽了内核的适用范围,可以满足仪器的需要。
(3)提出了基于Linux的一种新的调度机制:虚拟调度系统。为了使Linux更好地满足嵌入式系统的要求,近年来人们提出了各种调度机制改造方案,但是这些方案不能实现由用户来选择调度算法和多算法集成,不能给用户提供统一的用户使用界面。本文提出了一种基于Linux的新的调度机制:虚拟调度系统。它能够给用户提供统一的使用界面,能够支持所有提出的调度算法,能够隐含实现的细节,使用户更方便的使用各种调度算法,能够同时支持单层和双层调度。描述了实现过程,给出了在Linux下与实现过程相关的数据结构和函数,对调度机制的复杂性进行了分析,最后进行了实验测试。
(4)推出了基于有限优先级的动态调度的判定条件。实时任务调度是实时系统中的关键问题,实时调度在理论分析时,都假设系统能够识别任意多的优先级,在实际的操作系统中,仅能使用有限的优先级数量。现有文献提出了在静态调度条件下使用有限优先级数量的判定方法,本文推出了在动态调度条件下使用有限优先级数量的判定方法,给出了一个任务系统动态调度所需的最小优先级的数量的判断条件,并对算法的复杂性进行了分析,提出了任务分组的算法。
(5)针对仪器系统的特殊性,提出了基于Linux操作系统的可控内核审计机制,给出了实现过程。Linux系统现行的审计机制是应用级审计,不能满足操作系统的安全要求,为此许多文献提出了Linux内核级的审计,增强了Linux的审计能力。但是在审计能力增加的同时,审计容量和程序运行时间增加。根据仪器系统的特点,本文提出了可控内核审计的机制。内核级审计能够被应用程序控制,这样在实现安全性提高的同时,可控制内核审计范围,保证实时测试程序的实时性。内核审计功能的控制通过Linux的proc文件系统实现,本文详细地描述了实现过程。
(6)在上述研究内容的基础上,给出了改造的Linux在AVl486信号发生器和CDMA2000基带信号发生器上的实现过程。本文选择两种典型的实验对象为实现目标,以改造的Linux为新的内核,Qt/Embedded作为GUI,进行了实现,并对运行结果进行了分析。