嵌入式实时Hypervisor:XtratuM

  

本论文是作者对XtratuM Hypervisor进行学习和研究的工作总结,涵盖了作者为XtratuM Hypervisor所做的研究内容:中断管理、Hypercall、任务管理、虚拟内存管理等模块向不同Linux内核上的移植,域间通信工具、设备驱动模型的设计和实现,基于XtratuM Hypervisor的应用实例(冗余实时控制系统)开发,XtratuM Hypervisor系统的重要功能模块的评测和分析。

在XtratuM Hypervisor系统的研究过程中,文章实现了两种域间通信工具:命名管道(FIFO)和共享内存(SHM:Share Memory)。在命名管道和共享内存设计和实现中,文章采用了Hypercall,Lock-Free,内存映射等多种技术,从而保证任务之间可以进行可靠有效的实时通信。为了提高系统的可用性,使XtratuM能够支持外接设备,文章构建了一种适合XtratuM系统的设备驱动模型:XMDEV,基于该设备驱动模型,作者实现了实时串口设备驱动。另外,为了提高XtratuM对不同Linux内核的支持,文章对XtratuM系统相关中断管理、Hypervall、任务管理等重要模块进行了优化和功能扩展,目前为止,XtratuM运行的最高Linux版本是2.6.24.4。针对XtratuM Hypervisor的特点,作者设计和实现了冗余实时控制系统。该冗余实时控制系统采用软备份冗余技术,当主模块发生异常退出时,备份模块将会被调度并恢复主模块的运行环境。最后,为了直观的评估系统,文章对反映系统整体性能的中断延迟、调度延迟、Hypercall延迟、FIFO通信以及串口通信进行了测试和分析。

 

 

 

 

关键字: Hypervisor,准虚拟化,实时系统,XtratuM Hypervisor,准虚拟化,实时系统,XtratuM

 

 

ABSTRACT

This thesis is the summary by the author for the study and research of XtratuM Hypervisor. It covers all work contributed by the author to XtratuM Hypervisor, porting the interrupt management, hypercall, task management, virtual memory to kinds of linux kernels, designing and implementing inter-domain communication tools, device driver model, building a case study based on XtratuM Hypervisor: RRTCS(Redundant Real-Time Control System), as well as benchmarking main system components.

In the thesis, FIFO and SHM(SHare Memory) are built for XtratuM Hypervisor. FIFO and SHM are the effective inter-domain communication tools, playing important roles in data transmission and task synchronization. The hypercall, lock-free and memory mapping technologies are adopted to implement the FIFO and SHM. A device driver model is designed for XtratuM in the thesis. In order to make XtratuM support more real-time device drivers, XMDEV(XtratuM DEVice Driver Model) is designed and built. Based on XMDEV, the thesis interprets how to implement UART device driver. Moreover, to make XtratuM run on more and more Linux kernel, the interrupt management, hypercall, domain management modules are refined or updated. Meanwhile, in order to evaluate the system, the thesis did many benchmaarks and analysis, including interrupt latency, scheduler latency, hypercall latency, translation speed of FIFO and UART driver. RRTCS(Redundant Real-Time Control System) based on XtratuM Hypervisor is designed and implemented in the thesis to introduce the usage area for XtratuM Hypervisor system.

 

 

 

Keywords: Hypervisor, Paravirtualization, real-time system, XtratuM

 

 

 

  

  

ABSTRACT

  

1      

1.1       研究现状

1.2       研究意义

1.3       研究内容

1.4       文章结构

2     XtratuM Hypervisor

2.1       系统结构

2.2       中断管理

2.3       Hypercall

2.4       任务管理

2.4.1        域任务

2.4.2        调度器

2.5       内存管理

2.6       域间通信工具

2.6.1        命名管道

2.6.2        共享内存

2.7       设备驱动模型

2.7.1        模型架构

2.7.2     UART驱动

2.8       系统移植

2.8.1        中断管理

2.8.2        系统调用

2.8.3        任务切换

3     性能测试与分析

3.1       中断延迟

3.2       Hypercall调用延迟

3.3       任务调度延迟

3.4       FIFO传输速度

3.5       串口设备通信速率

4     实例设计和实现

4.1       技术背景

4.2       系统设计

4.3       系统实现

5     总结与展望

参考文献

 

第1章   

1.1           研究现状

Hypervisor也被称作虚拟机监控器(VMMVirtual Machine Monitor),它是一个基于计算机硬件平台的软件(可以是系统软件也可以是应用软件),允许多个操作系统在一个硬件平台上并行运行。Hypervisor系统被分为两类:I型和II[1]

I型中,Hypervisor作为系统软件直接运行于主机硬件之上,可以直接控制物理设备和管理客户操作系统(Guest OS:所有运行在Hypervisor上的操作系统),通过接口为客户操作系统提供服务,类I具有很好的性能保障。属于I型的典型Hypervisor包含CM/CMSVirtualLogixVLX, TRANGO, IBMPOWER Hypervisor (PowerVM), IBMPR/SM, MicrosoftHyper-V等。IIHypervisor做为一个应用软件运行于普通操作系统之上。IIHypervisor作为一个的软件应用层,而客户操作系统运行于硬件以上第三层(普通操作系统->Hypervisor->客户操作系统)。由于软件层次复杂,从而导致IIHypervisor支持的客户操作系统性能较低。属于II型的HypervisorVMware Server (GSX), VMware Workstation, SunVirtualBox, 以及开源虚拟机软件QEMU等。

Hypervisor的概念最早由IBM在三十多年前提出。当时,IBM使用Hypervisor目的是为了保证IBM旧的操作系统可以运行在新的硬件平台上,以及加速操作系统的开发和测试。虽然Hypervisor使用给软件或硬件的开发、测试、系统健壮性等方面带来很多优点,但是Hypervisor技术的使用始终没有与大型主机的应用环境脱离。直到1999年,VMware在个人计算机上成功的演示了VMware Workstation,并获得理想性能,Hypervisor技术开始在个人桌面领域应用和推广[2]。从此,个人桌面领域的Hypervisor主要由VMware+WINDOWS占领。

近年来,一些新型的个人桌面Hypervisor系统开始陆续出现。2003年,Xen Hypervisor系统开始正式公开发布,当前Xen的发布已经被包含在FreeBSDLinuxNetBSD、以及Plan 9等多种操作系统中。另外,基于OpenSolaris操作系统重新实现的Xen被称作Sun xVM Server也已经发布[3]2005年,Parallels公司发布了Parallels Workstation,它是基于MAC OS X个人计算机的Hypervisor系统[4]2008年六月,微软发布了IHypervisor Hyper-V,从Windows Vista开始的新版本的微软操作系统运行在Hyper-V上有较好性能[5]。另外,基于LinuxKVM(for Kernel-based Virtual Machine)以及QEMU也是当前开源领域比较流行的Hypervisor。尤其是KVM,已经被Linux内核所接受,QEMU作为虚拟机运行在KVM构建的Hypervisor环境中[5678]

软件架构是区别I型和IIHypervisor系统的决定因素,而Hypervisor技术则是影响Hypervisor系统性能和推动Hypervisor应用的关键原因。Hypervisor技术可以从软件或硬件的角度被区别为软件虚拟化技术和硬件虚拟化技术。

硬件虚拟化技术的采用在于硬件平台的设计上,因此,硬件平台特点是制约Hypervisor技术使用的重要因素。Hypervisor技术在大型服务器系统较早使用的因素就在于系统性能高,具有特殊的支持虚拟技术的硬件模块和指令集。例如在X86环境中,虽然X86平台拥有众多的个人计算机用户,但是由于系统本身的设计性质,缺乏针对虚拟化技术的支持功能,从而导致Hypervisorx86平台上应用较晚。伴随着市场对Hypervisor系统的重视,X86供应商开始在其设备中添加了硬件虚拟辅助部件。例如Intel 发布的Intel VT[9]以及AMDAMD-V[10]等。这些扩展主要是通过提供特殊的功能以解决X86平台上建立Hypervisor存在复杂度高、性能低的问题。

 

为了满足Hypervisor系统对客户操作系统的支持,Hypervisor主要采用两种软件虚拟化技术:全虚拟化(Full-Virtualization)和准虚拟化(Paravirtualization) [111213]。全虚拟化一般是通过软件对所有的硬件进行模拟,构建虚拟设备,从而可以保证客户操作系统不用修改就可以直接在相应虚拟机平台上面运行。IIHypervisor通常采用全虚拟化技术。准虚拟化(Paravirtualization)也被称为泛虚拟化、半虚拟化,该词的使用最早源于Denali Hypervisor系统的相关文章中[14]。采用准虚拟化技术,Hypervisor不需要模拟所有的硬件设备,为了提高Hypervisor环境的性能,系统通过实现针对Hypervisor的系统调用来执行服务请求,直接访问物理设备,例如I/O访问,而不是通过虚拟设备间接的访问物理设备。这种技术在Xen中被叫做准虚拟化技术,Parallels Workstation中称为Hypercall,而IBM发布的VM系统中,被叫做“DIAGNOSE code”。基于该类技术的Hypervisor可以保障运行于其上的客户操作系统能够获取接近于直接运行于硬件上的系统性能,但是运行于该类Hypervisor的客户操作系统必须经过移植修改。IHypervisor通常采用这种技术。当前,准虚拟化技术被广泛应用于Hypervisor中。

Hypervisor系统的设计中,并不是每一个Hypervisor只能采用一种虚拟化策略,有些可能兼具二者,例如XenXen是一个纯软件的Hypervisor,它依赖于一个通用操作系统,例如Linux,通过硬件提供的虚拟扩展附件,Xen可以支持准虚拟化和全虚拟化技术。

如前所述,诸如XENVMwareKVMHyper-VVMwareHypervisor系统几乎都应用于大型主机服务器或个人桌面计算机市场,而针对嵌入式领域的Hypervisor系统或研究还相当薄弱。嵌入式领域中,为了降低系统的开发周期和成本,越来越多的开发商期望可以直接使用通用操作系统的应用软件,因此,研究人员开始将通用操作系统向嵌入式系统领域移植。另外,嵌入式系统通常被用于实时应用环境中,但是通用操作系统通常并不具有实时功能,为此,研究人员不得不在移植过程中改善通用操作系统的实时功能,但是由此带来的工作量和技术难度相当惊人,实时性能还不好。

为此,伴随着硬件平台性能的提升,Hypervisor系统被引入到嵌入式系统中。通过构建Hypervisor,可以保证通用操作系统和实时操作系统的并行运行,从而使嵌入式系统即能提供应用程序的通用操作系统接口,例如LinuxWindows,又能支持的实时操作系统(RTOSReal-Time Operating Systems)APIs(Application Program Interface)。除了具有支持多种应用软件以外,采用Hypervisor系统还可以保证整个嵌入式系统的可靠性、稳定性、有效性等。嵌入式系统一般资源稀少、性能较低,因此,Hypervisor系统在嵌入式领域中的应用问题就是性能的问题,尤其是在实时环境中,性能问题更为重要。由Hypervisor在其它行业的应用经验可以清晰的认识到,基于准虚拟化技术的IHypervisor具有明显的性能优势,因此,构建IHypervisor是嵌入式系统的不二选择。

创建有效的嵌入式实时Hypervisor系统,主要是针对问题开展研究。性能是Hypervisor解决的首要问题,如上所述,该问题可以通过建立基于准虚拟化的IHypervisor系统解决。另外,Hypervisor还有解决一定的功能问题,即满足嵌入式软件程序的需求,嵌入式Hypervisor必须提供对多种操作系统应用软件的支持,提供相应的函数接口,支持实时任务和非实时任务的同台并行运行和计算。此外,嵌入式实时Hypervisor还应该解决系统的整体可靠性问题,保证运行于客户操作系统上层的实时应用软件具有确定性、可预测性。

现在,已经有一些组织和研究机构从解决嵌入式系统中Hypervisor的主要问题着手,设计和构建不同的嵌入式Hypervisor系统。为了解决Hypervisor系统的性能和可靠性,通过将微内核或小型内核与虚拟技术的进行结合构建高性能的Hypervisor,例如OKL4(微内核)[16]LynxSecure(小型分离内核)系统[17]OKL4是早的嵌入式商用Hypervisor,它于2005年在移动电话设备中发布。OKL4LynxSecure都是开源软件。近两年来,伴随着开源嵌入式Hypervisor系统的发布,商用嵌入式Hypervisor系统开始相继发布,LynuxWorks2007发布LynxSecure2009年二月发布最新的LynxSecure 2.0版本。Green Hill20072月发布基于INTEGRITY RTOSPadded Cell hypervisorPadded Cell是一套提供嵌入式和企业领域应用高安全Hypervisor系统,当前已经支持Windows XP[18]20077月,Trango发布TRANGO Hypervisor,并且与20089月低获得CSPN(Certification de Sécurité de Premier Niveau - First Level Security Certification)安全认证[19]

文章相关研究是基于XtratuM Hypervisor系统。XtratuM系统是由西班牙瓦伦西亚理工大学工业信息和实时系统研究组和兰州大学DSLab实验室共同开发的基于Linux的嵌入式实时虚拟机管理器。2005年,XtratuM 0.1版本在GPL协议下发布,当前XtratuM的最高版本是XtratuM 2.1.0,已经支持x86PowerPCMIPSLEN2等多种处理器[20]XtratuM系统采用超微内核(nano-kernel)技术与虚拟化技术相结合的设计模式。与微内核技术相比,超微内核要求内核更小,更简单。在XtratuM系统中,Hypervisor内核仅仅负责中断、时钟等硬件资源的管理,以及提供基于优先级的虚拟机实时调度器。在XtratuM Hypervisor系统中,客户操作系统通过Hypercalls访问底层硬件。XtratuM Hypervisor的目标就是精小、安全、可靠、高效、稳定。

 

1.2           研究意义

Hypervisor出现的早期是被应用到大型服务器中,伴随着Hypervisor技术的发展和推广以及硬件设备的发展,Hypervisor逐渐被应用于个人桌面计算机环境中,近几年,Hypervisor又逐渐在嵌入式环境中蔓延。显然,Hypervisor具有一定的价值或优点,才得以在这三种环境中生存和发展。下面列出了Hypervisor技术的优点以及可以解决的问题[22,23,24]1)通过Hypervisor技术,可以对新架构平台和特权指令的进行调试和测试;2)利用Hypervisor,在平台移植前对软件的调试和测试;3)基于Hypervisor,在同种平台上运行特殊和早期的操作系统;4)作为非可信软件的沙箱;5)提高计算机的使用率;6)提高操作系统的可移植性。硬件的变动,不会引起操作系统和应用程序的修改;7)简化系统的迁移、备份和恢复。这些优点具有一定的通用性,针对嵌入式领域,Hypervisor系通在某些方面的优势更加突出。

Hypervisor系统可以支持多种不同种类的应用软件(例如实时任务和非实时任务)在同一平台并行运行。传统的嵌入式系统是封闭的,所有的软件栈是由设备供应商提供,并且在销售前加载,后期不会被修改,尤其是固件系统,相应升级更是稀少。另外,商用实时操作系统与开源实时嵌入式系统多种多样,并且都具有固定的实时应用软件,由于对操作系统的依赖性强,由于单个操作系统独立运行于硬件系统上,相应实时应用软件也只能运行于该操作系统,当操作系统发生变化时,实时应用软件必须更新,以适应底层平台的改变,从而给整个嵌入式系统开发和应用带来直接负面影响,增加了系统开发成本,延长了系统开发周期。在Hypervisor中,一个系统可以同时支持多种操作系统,可以是实时操作系统,也可以是非实时操作系统,从而可以保证系统最上层可以支持实时和非实时应用软件的并行运行。例如,在XtratuM Hypervisor系统中,Linux系统上的浏览器和PaRTiKle(Particular Real-Time Kernel)实时操作系统中的实时数字控制系统(CNCComputer Numerical Controlled)可以在一个平台上同时运行。

此外,嵌入式系统功能逐渐增多,相应软件数量和系统复杂度也迅速增加。例如,当前在手机系统中的软件协议栈大小就是5-7M,这一数值还在增加。顶级汽车的软件系统的大小已经达到GB数量级,甚至“下载软件的时间比构建物理车辆的时间还要长”。嵌入式软件存在封闭性强、软件需求繁多的现象,封闭性强给软件的复用和移植带来不便,软件需求繁多直接导致开发难度大,开发周期长,整体效率差等问题。另外,针对PC平台开发的软件系统在嵌入式平台上使用的现象已非常明显,这种现象被称之为软件通用化现象,并且很多新嵌入式应用软件的开发者并非懂得嵌入式开发技术。在这种情况下,一种支持多种操作系统APIs的高层面向应用的操作系统需要建立。也就是说,在应用软件通用化的趋势下,需要有一种能够满足多种应用软件在同一个硬件平台上运行的机制或架构,用以解决当前软件复用和开发的问题。而Hypervisor恰好可以满足这种需要,可以很好的解决该类问题。

Hypervisor可以提高嵌入式系统的可靠性、安全性、稳定性、有效性。嵌入式系统是普遍存在的,并且逐渐成为日常生活的一部分,无法想想离开嵌入式系统人类如何生活,尤其是关系到个人生命安全和财产安全的领域,例如航空航天、医疗、火车、汽车、国防等。在这些特殊领域中,直接使用通用操作系统的应用软件作为嵌入式软件显然不太适宜。嵌入式系统不仅仅需要满足实时需求,而且还应该具有较高的安全性(Safety)、可靠性(Reliability)、有效性(Availability)。但是,在这些关键领域中,由于历史的原因,多种实时操作系统的封闭性,限制了不同实时软件的并行运行,例如VxWorksLynxOSRTLinuxRTAI等。类似于普通嵌入式系统,在这些关键领域,一种高安全性、高稳定性、支持多种实时系统APIs的面向应用操作系统的被迫切期待[25262728]。通过提供可靠的隔离和冗余机制,将临界组件与不可信任操作系统进行隔离,保证临界组件的安全性、可靠性、和有效性,Hypervisor可以改善以上需求。

Hypervisor技术可以加速操作系统的移植。Hypervisor的目的是在物理硬件和操作系统之间建立一层硬件抽象层(HALHardware Abstraction Layer),它将底层的物理硬件结构进行封装,例如寄存器、端口等,为操作系统提供相应的软件接口,在操作系统移植过程中,操作系统就不需要了解繁缛的底层物理信息,直接调用相应的软件接口就可以完成相应的服务请求或设备配置。但是,由于当前存在系统管理层的多样化,并且各自为政,每种Hypervisor都有自己的一套抽象接口,没有统一标准和规定,从而导致操作系统在Hypervisor上面的移植工作不尽相同,但是这依然可以降低操作系统向不同平台移植的工作量和工作周期。

总之,Hypervisor系统的研究在嵌入式实时系统领域具有重要意义:1)可以为现今嵌入式系统具有的功能多、平台开放、软件复杂等问题提供解决方案;2Hypervisor可以在同一物理设备上并行运行多种操作系统,典型的应用就是在系统底层运行提供实时任务的实时操作系统,同时,执行客户操作系统并提供相应的应用任务,例如LinuxWindows3)可以保护具有高安全需求的子系统,例如通信协议栈,各户系统无法对其进行直接访问或攻击;4)物理内存的分离,可以阻止系统直接的相互干扰;5)解决License问题。另外,该技术的研究在国内外还处于起步阶段,尽早展开对相关技术的研究,可以在未来嵌入式领域竞争中取得主动。

XtratuM Hypervisor的研究具有独特的意义。嵌入式系统领域中,Hypervisor的应用根据系统的实时能力,可以被区分为三种:硬实时,软实时和非实时。三种实时能力的划分是根据系统没有在指定的时刻完成任务所造成的后果严重性上。硬实时将会造成严重的后果,甚至是财产损失或危机人身安全,例如火车或汽车抱死系统。软实时影响较轻,几乎不会造成财产损失,对人可能是感官影响,例如音乐系统或电影播放系统。非实时将不会造成任何影响。

XtratuM系统是一种硬实时Hypervisor。它主要是解决实时系统与非实时操作系统并行运行而引起的安全问题。二十世纪九十年代中期,基于Linux系统的第一款硬实时操作系统RTLinux发布,它是采用双核共存的机制使Linux具有实时能力。在RTLinux系统,具有实时能力的RTLinux系统与普通Linux内核共存,同时运行于系统内核态(具有最高优先级,可以直接访问底层硬件)。但是,在RTLinux系统中,实时系统与Linux内核运行于同一个地址空间,即Linux内核可以不加保护的非法访问RTLinux内核空间,这必然会影响系统的安全性(Safety)和可靠性。另外,RTLinux系统还存在相应软件专利保护:实时系统运行于底层硬件与Linux系统之间,Linux作为具有最低优先级的任务被调度和执行。因此,通过Hypervisor技术,可以避免这两个问题:1)实时系统与Linux内核在同一个地址空间;2RTLinux相关软件结构专利。在这种情况下,XtratuM Hypervisor应运而生,取代RTLinux实时结构系统,构建新型Hypervisor实时环境。

 

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不同于通用操作系统,但是其涉及到的很多概念和技术源于操作系统领域,并且具有本身的特点和难点,具体内容和解决方案将会在第二章介绍。

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值