一种基于Xen安全计算机显示优化的方法

文档序号:6334946阅读:197来源:国知局
专利名称:一种基于Xen安全计算机显示优化的方法
技术领域
本发明属于虚拟化技术应用领域,特别是涉及Xen安全计算机的显示模块优化的 领域。
背景技术
随着计算机和网络技术的飞速发展与广泛应用,全球信息化程度不断提高,信息 安全问题日益受到各领域的关注。由于我国信息技术起步较晚,软硬件水平落后于国际,并 且暂无绝对的技术知识产权优势,因此大力发展和研究自主的安全计算机产品是现阶段计 算机终端发展的主要任务。虚拟化技术的发展正迅速改变着信息技术的面貌,并从根本上改变着传统的计算 方式。利用虚拟化,可以在一台物理机上运行多个虚拟机,在充分利用硬件环境的前提下, 构建一个多系统资源共享并有效隔离的计算环境。虚拟化技术的优势在于复用硬件平台、 拓展硬件平台并且可以使硬件平台透明化,除此之外虚拟化技术可以提供高安全级的系统 隔离,拥有先天的安全性能。基于以上的时代和技术背景促使了安全计算机与虚拟化技术的联姻,通过硬件技 术的支持结合虚拟化技术实现多个虚拟操作系统间有效隔离和资源共享。虽然安全计算机提供了有效隔离和安全可控的操作环境,但是基于虚拟化的安全 计算机通常面临硬件共享下的运行效能问题。提高虚拟操作系统的用户体验和操作性能是 安全计算机要解决的主要问题,也是其在桌面应用面临的最大障碍。虚拟显示环境效果不理想主要存在以下三个原因设备实现复杂、通信机制开销 大、外部图形库的性能瓶颈。虚拟显示设备的实现考虑到接口的完整物理特性及虚拟显卡的设备规范,这样的 好处可以保证显示设备的通用性及无须改动的显示设备驱动程序;但是因此而产生的负面 效果却是设备实现机制的复杂和执行效率的低下。基于设备接口完全模拟的显示设备的驱动不需要任何改动,而显示驱动与虚拟显 示设备之间的通信开销却因为这样的实现方式而变得难于控制。在客户系统中驱动程序试 图访问硬件设备完成显示工作的过程,CPU环境在VMX root和VMX non-root模式间频繁 切换,这样则会导致CPU时间的浪费。X-window在提供Linux友好而便捷的操作环境的同时也直接影响操作系统性能 和运行效能。在系统空闲时,X-window的守护进程依然占用较多的系统资源。而虚拟客户 系统的全部显示都是基于X-window桌面操作环境,这样的实现方式将所有的显示性能都 转嫁到X-window图形绘制的效率,而这也是直接导致客户系统显示效果不佳的性能瓶颈。

发明内容
本发明的目的在于克服现有技术的不足,提供一种基于Xen安全计算机显示优化 的方法。
为实现上述发明目的,采用的技术方案如下一种基于Xen安全计算机显示优化的方法,包括宿主系统的简化后端、客户系统 的定制前端驱动、以及前后端之间的通信优化;所述宿主系统的简化后端,包括实现PCI设 备接口,以及引入Frame Buffer的支持,通过对Frame Buffer的读写直接将帧缓存图像绘 制于屏幕上;所述客户系统的定制前端驱动,包括直接获取后端设备提供的内存I/O及端 口 I/O资源,并通过系统⑶I显示接口实现基于Frame Buffer的显示环境;所述前后端之 间的通信优化,首先后端设备在宿主系统中注册指定I/O端口,前端驱动访问这些I/O将直 接引发后端实现的回调函数而完成前后端同步的交互;其次后端还提供一块与前端驱动交 互的内存空间,并将此内存空间映射至客户系统的内存空间,通过共享内存的方式实现交 互。本发明针对现有Xen安全计算机显示模块的不足。提出了在不增加额外硬件开销 的前提下,采用前后端分离的方式,取代设备接口完全模拟的方式来实现Xen虚拟显示设 备,以提高显示环境效果的优化方案。本发明的技术方案具体可归纳为简化后端实现机制、定制前端驱动、改善通信方 式。所述简化后端实现机制,即在虚拟显示设备的设计上,对虚拟显示设备的后端采 用尽可能简单和直接的实现方法。后端显示设备的实现主要集中以下两方面内容仅实现 必要的PCI设备接口、引入Frame Buffer的支持。所述定制前端驱动,即改进方案通过前后端分离设备模拟方式来替代完全的设备 接口模拟。因此在客户系统中需要定制虚拟显示设备的前端驱动,该定制的前端驱动将替 代原生的设备驱动。定制的前端驱动,直接获取后端设备提供的内存Ι/0(ΜΜΙ0)及端口 I/ 0资源,并通过系统⑶I显示接口同样实现基于Frame Buffer的显示环境。所述改善通信方式,即通过前后端分离的机制实现的显示设备的通信过程不同于 完全设备接口模拟,后端设备在虚拟机中注册指定I/O端口,前端驱动访问这些I/O将直接 引发后端实现的回调函数而完成前后端同步的交互;其次后端还提供一块与前端驱动交互 的内存空间,并将此内存空间映射至客户系统的内存空间,通过共享内存的方式实现交互。 通过以上两种前后端通信机制将有效减少CPU模拟的切换,从而提高客户系统显示及工作 效率。本发明通过定制硬件平台并结合Xen虚拟机技术为用户提供多个虚拟透明的操 作系统,并对虚拟操作系统从数据、网络、操作域等多方面进行安全隔离。为实现良好的用 户体验,并节约硬件成本,本发明着重关注基于Xen安全计算机中虚拟设备模型的研究并 通过对Xen设备虚拟化的分析,构建自主定制的虚拟设备并应用于显示环境中,从而提高 基于Xen安全计算机虚拟系统的显示效果,满足用户对虚拟客户系统的良好体验,可以解 决目前Xen安全计算机显示模块性能方面的问题,对安全计算机在桌面环境上的应用具有 重要意义。


图1为本发明的总体架构示意图;图2为前端显示驱动与⑶I接口交互示意图3为前端显示驱动架构示意图;图4为前后端基于I/O端口通信流程图;图5为前后端基于内存通信流程图。
具体实施例方式本发明的总体设计思路,是通过前后端分离机制的虚拟设备替代原有的完全设备 接口模拟,实现一张虚拟显卡,本发明将这张虚拟显卡命名为EMOS VGA。虚拟显示设备EMOS VGA的后端设计引入Frame Buffer的支持;前端定制基于Windows客户系统的显示驱动; 而前后端的通信基于共享内存及I/O端口截获的方式。本发明的总体架构如图1所示,总体设计中包含三个重要组成部分后端设备、前 端驱动及前后端通信。EMOS VGA后端显示设备是显示优化方案中的重点部分,它是一张定制的、简单的 PCI接口显示设备,后端设备的构成主要包括Std VGA接口的实现、FrameBuffer的支持及 PCI设备仿真的实现。通过EMOS VGA设备可以直接访问FrameBuffer JfFrame Buffer中 保存的位图直接绘制于显示器之上,完成显示工作。EMOS VGA后端的设计具有简单、灵活和实用的特点,后端不需要设计额外的VGA 设备资源如VGA BIOS、VGA Register等,相反后端EMOS VGA设备在实现Md VGA的支持 外,仅需实现PCI设备接口提供的PCI设备创建及相应的PCI配置空间的填充。在EMOS VGA 的后端设备中引入Frame Buffer的支持,后端设备的显示原理将放弃SDL图形接口的实现 方式,通过读Frame Buffer的读写方式直接将帧缓存图像绘制于屏幕之上。后端显示设备工作流程如下1、后端设备初始,通过PCI设备接口注册PCI总线设备;2、填充PCI配置空间,设置类型为VGA设备;3、获取Frame Buffer帧缓冲设备和指定显示模式并保存于后端设备属性中;4、设置Frame Buffer地址为共享空间并映射给前端;5、在虚拟机中注册后端显示设备指定I/O端口 ;6、实现与Md VGA接口的连接并初始化Md VGA ;7、客户系统加载前端驱动,触发显示操作;8、后端设备调用回调函数操作Frame Buffer完成显示工作。从后端显示设备的工作流程来看,后端设备的主要内容集中于PCI设备的实现及 Frame Buffer机制的引进,一旦完成初始化的工作后,Frame Buffer的显示操作中的关键 数据结构DisplayState中的回调函数既被绑定,后续的工作将由前端驱动引发显示更新 的事件来触发后端的显示实现。EMOS VGA前端驱动是存在于虚拟Windows客户系统中的,负责EMOS VGA显示工作 的驱动程序,前端驱动程序使用Windows⑶I接口基于Frame Buffer完成显示工作,其操 作的EMOS VGA设备资源是由后端直接映射的共享内存空间。EMOS VGA设备的前端驱动是基于Windows环境下的显示设备驱动程序,由于处于 虚拟环境下,EMOS VGA前端的驱动程序无法直接访问物理显示设备。通过上一节后端设备 的设计方案,后端已经将Frame Buffer的地址直接映射给客户系统,因此客户系统中的前端驱动的工作将 直接对帧缓存进行操作。Windows环境下显示驱动的实现方式有多种,在本 文中采用较简单的Windows提供⑶I接口实现显示驱动。GDI (Graphics Display Interface)是Windows系统中应用程序与图像引擎之间 的接口,通过调用⑶I接口可以实现图像显示输出的功能。如图2所示显示驱动与⑶I之 间的交互图,用户态程序通过对⑶I接口的访问,⑶I接口将陷入到内核态并通过DDI接口 (设备驱动接口)访问驱动程序,最后调用GDI完成显示。EMOS VGA的前端驱动主要包括两部分display driver和video miniportdriver。video miniport driver处理一些需要和内核其他部分交互的操作,例如硬件初 始化、内存映射,这些操作是需要和内核1/0部分交互的操作。videominiport driver的 任务包括资源管理,比如硬件配置、物理内存映射,不同的硬件需要不同的video miniport driver。Display Driver通过调用videominiport driver来完成一些不常用的操作,例 如资源管理、物理设备映射、响应中断等。作为EMOS VGA前端驱动中的video miniport driver负责完成的功能包括1)初始化EMOS VGA的PCI显示设备;2)读取PCI配置空间并获取PCI资源;3)对获取到的1/0端口及匪10资源进行转存;4)将EMOS VGA硬件设备资源映射到Display Driver所在的地址空间。Display Driver是一个内核模式的DLL,它的首要责任是渲染。当应用程序调用一 个设备无关图形的Win32函数,图形设备接口(⑶I)解释这些指令,并调用Display Driver 中的相关接口。Display Driver将这些请求转化为发送给视频硬件的命令,从而在屏幕上 绘制图形。在EMOS VGA显示驱动中采用了 Frame Buffer的显示环境,而Display Driver的 实现在默认情况下,采用GDI处理标准格式的位图,这跟硬件包含帧缓冲格式一样。原本 Display Driver将实现一些硬件提供了特殊支持的绘图函数,由于此时的显示设备是虚拟 的,无法提供任何硬件功能,Display Driver则将显示工作交给⑶I接口处理。具体video miniport driver与Display Driver组成的前端驱动架构图3所示。前后端之间的通信采用共享内存的方式,后端将可访问的Frame Buffer地址空间 直接映射给前端驱动程序,通过Xen提供的API可以实现Windows客户系统直接读写Frame Buffer的效果;同时后端在Xen虚拟机中注册指定1/0端口,用于与前端驱动同步的通信, 前端驱动访问指定1/0端口将导致该指令被虚拟机截获。优化后的通信方式预期可以大大 减少CPU特权模式的频繁切换。前后端通信通过两种方式来实现1/0端口实现、共享内存实现。在EMOS VGA后端的1/0端口注册设计中已经涉及到使用1/0端口来实现前后端 的通信,这样的通信方式主要是实现前后端之间的快速的同步通信。前后端基于1/0端口 的通信过程图4所示。同样在EMOS VGA后端的共享内存设计中提及了共享内存的通信方式,与1/0端口 截获的通信方式不同,基于共享内存通信方式可以交互相对较多的信息量。前后端基于内 存的通信过程图5所示
后端开辟共享内存空间并把空间地址映射给前端的客户系统驱动后,之后前后的 通信将直接在这块共享内存区域进行,通信过程将绕过Xen虚拟机,这样的通过方式无疑 提高前端显示 驱动的工作效率。
权利要求
1.一种基于Xen安全计算机显示优化的方法,其特征在于包括宿主系统的简化后端、 客户系统的定制前端驱动、以及前后端之间的通信优化;所述宿主系统的简化后端,包括实现PCI设备接口,以及引入Frame Buffer的支持,通 过对Frame Buffer的读写直接将帧缓存图像绘制于屏幕上;所述客户系统的定制前端驱动,包括直接获取后端设备提供的内存I/O及端口 I/O资 源,并通过系统⑶I显示接口实现基于Frame Buffer的显示环境;所述前后端之间的通信优化,首先后端设备在宿主系统中注册指定I/O端口,前端驱 动访问这些I/O将直接引发后端实现的回调函数而完成前后端同步的交互;其次后端还提 供一块与前端驱动交互的内存空间,并将此内存空间映射至客户系统的内存空间,通过共 享内存的方式实现交互。
2.根据权利要求1所述的基于Xen安全计算机显示优化的方法,其特征在于通过前后 端分离机制的虚拟设备实现一张虚拟显卡EMOS VGA,所述EMOS VGA的后端设备引入Frame Buffer的支持,而前端驱动定制基于Windows客户系统的显示驱动,前后端之间的通信则 基于共享内存及I/O端口截获的方式实现。
3.根据权利要求2所述的基于Xen安全计算机显示优化的方法,其特征在于所述EMOS VGA的后端设备构成包括Std VGA接口的实现、Frame Buffer的支持及PCI设备仿真的实 现,通过EMOS VGA设备直接访问Frame Buffer,将Frame Buffer中保存的位图直接绘制于 显示器之上,完成显示工作。
4.根据权利要求3所述的基于Xen安全计算机显示优化的方法,其特征在于所述EMOS VGA的后端设备工作流程如下1)后端设备初始化,通过PCI设备接口注册PCI总线设备;2)填充PCI配置空间,设置类型为VGA设备;3)获取FrameBuffer帧缓冲设备和指定显示模式并保存于后端设备属性中;4)设置FrameBuffer地址为共享空间并映射给前端设备;5)在宿主机中注册后端显示设备指定I/O端口;6)实现与MdVGA接口的连接并初始化Md VGA ;7)客户系统加载前端驱动,触发显示操作;8)后端设备调用回调函数操作FrameBuffer完成显示工作。
5.根据权利要求2所述的基于Xen安全计算机显示优化的方法,其特征在于所述EMOS VGA前端驱动存在于虚拟Windows客户系统中,负责EMOS VGA显示工作的驱动程序,前端驱 动程序使用Windows⑶I接口基于Frame Buffer完成显示工作,其操作的EMOS VGA设备 资源是由后端直接映射的共享内存空间。
6.根据权利要求2所述的基于Xen安全计算机显示优化的方法,其特征在于所述前后 端之间的通信采用共享内存的方式为后端将供访问的Frame Buffer地址空间直接映射 给前端驱动程序,通过Xen提供的API实现Windows客户系统直接读写Frame Buffer。
7.根据权利要求2所述的基于Xen安全计算机显示优化的方法,其特征在于所述前后 端之间的通信采用I/O端口截获的方式为后端在Xen虚拟机中注册指定I/O端口,用于与 前端驱动同步的通信,前端驱动访问指定I/O端口将导致该指令被虚拟机截获。
全文摘要
本发明提供了一种基于Xen安全计算机显示优化的方法,包括宿主系统的简化后端、客户系统的定制前端驱动、以及前后端之间的通信优化;所述宿主系统的简化后端,包括实现PCI设备接口,以及引入Frame Buffer的支持,通过对Frame Buffer的读写直接将帧缓存图像绘制于屏幕上;所述客户系统的定制前端驱动,包括直接获取后端设备提供的内存I/O及端口I/O资源,并通过系统GDI显示接口实现基于Frame Buffer的显示环境;所述前后端之间的通信优化,首先后端设备在宿主系统中注册指定I/O端口,前端驱动访问这些I/O将直接引发后端实现的回调函数而完成前后端同步的交互;其次后端还提供一块与前端驱动交互的内存空间,并将此内存空间映射至客户系统的内存空间,通过共享内存的方式实现交互。
文档编号G06F3/14GK102135866SQ20101052969
公开日2011年7月27日 申请日期2010年10月29日 优先权日2010年10月29日
发明者刘发贵, 吴刚, 周魏, 谢然 申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1