现在的位置: 首页 > 综合 > 正文

嵌入式实时Hypervisor:XtratuM (4)

2018年01月17日 ⁄ 综合 ⁄ 共 2937字 ⁄ 字号 评论关闭

1.3           研究内容

XtratuM Hypervisor是超微内核技术与准虚拟化技术结合的产物,它是典型的IHypervisor系统。超微内核技术是一种操作系统内核结构,它类似于微内核技术,与微内核系统相比,它将一些“冗余”的功能模块从内核中移除,系统内核负责底层最基本的中断管理、物理时钟管理、以及实时任务调度(用于调度上层应用任务或操作系统)。因此,也有人将XtratuM视作硬件抽象层(HALHardware Abstraction Layer)。通常,超微内核系统用于支持多个任务并行运行,由于结合了虚拟化技术,可以将超微内核看成一种虚拟系统,它将底层中断与物理时钟进行封装、虚拟化处理,为上层简单任务,通用操作系统(LinuxFreeBSDMac OS)或实时操作系统(PaRTiKleRTLinux)提供统一接口[29]

XtratuM Hypervisor作为HAL(Hardware Abstraction Layer)运行于客户操作系统和硬件平台之间,采用虚拟化技术将底层中断和时钟进行封装,为上层客户操作系统提供服务。在XtratuM系统中,LinuxRTOS分别作为独立的运行域(Domain:具有一定硬件资源的任务单位,比进程范围更大)被XtratuM调度和执行。Linux作为通用操作系统,运行任务具有较低的实时性,但是作为硬实时操作系统的RTOS,如果XtratuM系统提供的服务性能较低,将无法满足实时任务的需求,从而使RTOS的运行失去意义。另外,由于RTOS系统应用于特殊的行业和环境中,对软件的可靠性和安全性有较高要求,为此,XtratuM Hypervisor系统应尽可能的保证RTOS的安全性,避免RTOS受到其它操作系统或域的影响和威胁。为了提高XtratuM的性能和安全性,本文主要涉及中断管理、域间通信、驱动模型、系统移植、可信应用、以及关键组件的性能测试和分析等几个方面的研究[31]

系统运行时XtratuM接管中断管理研究。通常,实时操作系统由事件驱动,外界设备发生状态改变时,将会引起事件并告知操作系统,然后由操作系统做出响应,而中断则是设备通知操作系统的途径,因此,中断是实时操作系统中的关键资源。另外,操作系统对中断的响应速度,直接决定系统对事件或设备的反映速度,从而影响着外接设备的服务和内部异常的处理(本文中,如无特别解释,CPU内部异常也被作为中断事件)。因此,对于如何管理设备中断,处理中断服务是操作系统,尤其是实时操作系统要考虑的方面。另外,由于XtratuM操作系统基于Linux平台,为了提高系统的实时性能,中断必须由XtratuM系统管理。但是,XtratuM系统是作为Linux Kernel Module加载的,即XtratuM系统的运行在Linux系统运行之后。因此,这部分的研究内容就是针对系统运行时XtratuM接管中断管理。

域间通信工具的研究。为了提高操作系统内部多任务之间的协作能力和通信能力,操作系统被创建了多种IPC(Inter-Process Communication)工具,例如信号、命名管道、共享内存、Socket等。同样,在XtratuM Hypervisor中,为了达到同样的目的,使系统中的域进行协调工作,尤其是设备驱动域和任务域之间,域间通信(IDC: Inter-Domain Communication)工具需要设计和实现。针对Xtratum Hypervisor系统,命名管道(Named FIFO)和共享内存被设计和实现。在XtratuM系统中,命名管道和共享内存的实现有多个关键问题。首先,普通的操作系统中,命名管道或共享内存可以通过open()close()或类似函数调用进行访问,但是XtratuM系统提供了很少的几个Hypercalls,从而给设备访问带来困难。文章详细介绍了高效访问命名管道和共享内存等设备资源的方法,以及如何解决这些共享资源的竞争访问问题。

驱动模型的研究。驱动模型问题是Hypervisor系统研究中一个重要内容。在Hypervisor系统中,多个客户操作系统作为单位域(Domain)被调度执行。通常,由于资源的有限性,它们往往需要共享一些硬件设备,为了有效地在Hypervisor中添加或移植新的设备驱动,构建合适的驱动模型成为Hypervisor研究的一个方面。另外,在XtratuM系统中存在两种不同的操作系统,一种是通用操作系统,另外一种是实时操作系统,并且系统中可以并存多个系统域,从而为系统驱动模型的构建又提供了难度系数。在XtratuM系统的模型构建中,主要涉及到1)驱动的存在形式,例如,是选用类似于Linux系统中模块驱动还是类似于特殊实时操作系统的任务驱动;2)驱动程序的可调度性,或者说驱动按照怎样的一个策略分配将设备分配给上层客户操作系统域使用;3)驱动程序的可复用性,当前存在一定的设备驱动,为了降低新驱动程序的开发周期和开发难道系数,如何在保证驱动程序安全的前提下最大可能的复用驱动程序也是一项研究内容。文章将上述三点做为研究内容,对XtratuM设备驱动模型展开了论述。

系统移植的研究。XtratuM Hypervisor系统是基于Linux存在,由于早期开发时系统是基于2.6.17.4 版本的Linux内核,经过几年的发展,当前Linux内核已经发展到2.6.27或更高。较之早期的版本,新版本的Linux内核具有更多的特点和属性,为了能够让XtratuM HypervisorLinux 内核的发展同步,必须要将Xtratum进行移植。通过移植手段,然XtratuM Hypervisor可以支持更多更新的Linux内核版本。但是,由于不同版本之间的差异,尤其是在有些Linux内核版本之间,中断、系统调用或寄存器使用等方面发生改变,为XtratuM Hypervisor这一基于底层属性的系统的移植带来了困难[32]

应用实例的开发。无论在任何领域和行业,技术研究永远是一种手段,实现只是一种过程,而使用才是它的结果。同样,针对XtratuM Hypervisor这种采用新技术的实时系统运行平台,能否带来其独特的使用方式是研究最终的期望。XtratuM采用了Hypervisor技术,可以让多个客户操作系统独立安全的运行,这是XtratuM与其它实时操作系统的最大区别,为此,为了验证该技术可以提高系统的安全性和可靠性,在项目的研究过程中,一种基于软件冗余机制的冗余实时控制系统作为演示实例被开发。

性能测试和分析的相关研究。做为硬实时系统,为了提高系统的可确定性和可预测性,关键组件的性能和响应时间必须清晰明确。为此,文章针对XtratuM Hypervisor系统的中断延迟、调度延迟、Hypercall延迟、FIFO通信速率、串口通信速率进行了测试和分析。

XtratuM Hypervisor系统研究过程中,所涉及的研究内容并不仅仅局限于上面所述。虽然Hypervisor不同于通用操作系统,但是其涉及到的很多概念和技术源于操作系统领域,并且具有本身的特点和难点,具体内容和解决方案将会在第二章介绍。

 

抱歉!评论已关闭.