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

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

Info

Publication number
CN102135866B
CN102135866B CN 201010529692 CN201010529692A CN102135866B CN 102135866 B CN102135866 B CN 102135866B CN 201010529692 CN201010529692 CN 201010529692 CN 201010529692 A CN201010529692 A CN 201010529692A CN 102135866 B CN102135866 B CN 102135866B
Authority
CN
China
Prior art keywords
frame buffer
rear end
vga
equipment
xen
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 201010529692
Other languages
English (en)
Other versions
CN102135866A (zh
Inventor
刘发贵
谢然
周魏
吴刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN 201010529692 priority Critical patent/CN102135866B/zh
Publication of CN102135866A publication Critical patent/CN102135866A/zh
Application granted granted Critical
Publication of CN102135866B publication Critical patent/CN102135866B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Digital Computer Display Output (AREA)

Abstract

本发明提供了一种基于Xen安全计算机显示优化的方法,包括宿主系统的简化后端、客户系统的定制前端驱动、以及前后端之间的通信优化;所述宿主系统的简化后端,包括实现PCI设备接口,以及引入Frame Buffer的支持,通过对Frame Buffer的读写直接将帧缓存图像绘制于屏幕上;所述客户系统的定制前端驱动,包括直接获取后端设备提供的内存I/O及端口I/O资源,并通过系统GDI显示接口实现基于Frame Buffer的显示环境;所述前后端之间的通信优化,首先后端设备在宿主系统中注册指定I/O端口,前端驱动访问这些I/O将直接引发后端实现的回调函数而完成前后端同步的交互;其次后端还提供一块与前端驱动交互的内存空间,并将此内存空间映射至客户系统的内存空间,通过共享内存的方式实现交互。

Description

一种基于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资源,并通过系统GDI显示接口实现基于Frame Buffer的显示环境;所述前后端之间的通信优化,首先后端设备在宿主系统中注册指定I/O端口,前端驱动访问这些I/O将直接引发后端实现的回调函数而完成前后端同步的交互;其次后端还提供一块与前端驱动交互的内存空间,并将此内存空间映射至客户系统的内存空间,通过共享内存的方式实现交互。
本发明针对现有Xen安全计算机显示模块的不足。提出了在不增加额外硬件开销的前提下,采用前后端分离的方式,取代设备接口完全模拟的方式来实现Xen虚拟显示设备,以提高显示环境效果的优化方案。
本发明的技术方案具体可归纳为:简化后端实现机制、定制前端驱动、改善通信方式。
所述简化后端实现机制,即在虚拟显示设备的设计上,对虚拟显示设备的后端采用尽可能简单和直接的实现方法。后端显示设备的实现主要集中以下两方面内容:仅实现必要的PCI设备接口、引入Frame Buffer的支持。
所述定制前端驱动,即改进方案通过前后端分离设备模拟方式来替代完全的设备接口模拟。因此在客户系统中需要定制虚拟显示设备的前端驱动,该定制的前端驱动将替代原生的设备驱动。定制的前端驱动,直接获取后端设备提供的内存I/O(MMIO)及端口I/O资源,并通过系统GDI显示接口同样实现基于Frame Buffer的显示环境。
所述改善通信方式,即通过前后端分离的机制实现的显示设备的通信过程不同于完全设备接口模拟,后端设备在虚拟机中注册指定I/O端口,前端驱动访问这些I/O将直接引发后端实现的回调函数而完成前后端同步的交互;其次后端还提供一块与前端驱动交互的内存空间,并将此内存空间映射至客户系统的内存空间,通过共享内存的方式实现交互。通过以上两种前后端通信机制将有效减少CPU模拟的切换,从而提高客户系统显示及工作效率。
本发明通过定制硬件平台并结合Xen虚拟机技术为用户提供多个虚拟透明的操作系统,并对虚拟操作系统从数据、网络、操作域等多方面进行安全隔离。为实现良好的用户体验,并节约硬件成本,本发明着重关注基于Xen安全计算机中虚拟设备模型的研究并通过对Xen设备虚拟化的分析,构建自主定制的虚拟设备并应用于显示环境中,从而提高基于Xen安全计算机虚拟系统的显示效果,满足用户对虚拟客户系统的良好体验,可以解决目前Xen安全计算机显示模块性能方面的问题,对安全计算机在桌面环境上的应用具有重要意义。
附图说明
图1为本发明的总体架构示意图;
图2为前端显示驱动与GDI接口交互示意图;
图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,将Frame Buffer中保存的位图直接绘制于显示器之上,完成显示工作。
EMOS VGA后端的设计具有简单、灵活和实用的特点,后端不需要设计额外的VGA设备资源如:VGA BIOS、VGA Register等,相反后端EMOS VGA设备在实现Std 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、实现与Std VGA接口的连接并初始化Std VGA;
7、客户系统加载前端驱动,触发显示操作;
8、后端设备调用回调函数操作Frame Buffer完成显示工作。
从后端显示设备的工作流程来看,后端设备的主要内容集中于PCI设备的实现及Frame Buffer机制的引进,一旦完成初始化的工作后,Frame Buffer的显示操作中的关键数据结构DisplayState中的回调函数既被绑定,后续的工作将由前端驱动引发显示更新的事件来触发后端的显示实现。
EMOS VGA前端驱动是存在于虚拟Windows客户系统中的,负责EMOS VGA显示工作的驱动程序,前端驱动程序使用Windows GDI接口基于Frame Buffer完成显示工作,其操作的EMOS VGA设备资源是由后端直接映射的共享内存空间。
EMOS VGA设备的前端驱动是基于Windows环境下的显示设备驱动程序,由于处于虚拟环境下,EMOS VGA前端的驱动程序无法直接访问物理显示设备。通过上一节后端设备的设计方案,后端已经将Frame Buffer的地址直接映射给客户系统,因此客户系统中的前端驱动的工作将直接对帧缓存进行操作。Windows环境下显示驱动的实现方式有多种,在本文中采用较简单的Windows提供GDI接口实现显示驱动。
GDI(Graphics Display Interface)是Windows系统中应用程序与图像引擎之间的接口,通过调用GDI接口可以实现图像显示输出的功能。如图2所示显示驱动与GDI之间的交互图,用户态程序通过对GDI接口的访问,GDI接口将陷入到内核态并通过DDI接口(设备驱动接口)访问驱动程序,最后调用GDI完成显示。
EMOS VGA的前端驱动主要包括两部分:display driver和video miniportdriver。
video miniport driver处理一些需要和内核其他部分交互的操作,例如:硬件初始化、内存映射,这些操作是需要和内核I/O部分交互的操作。videominiport driver的任务包括资源管理,比如硬件配置、物理内存映射,不同的硬件需要不同的video miniport driver。Display Driver通过调用videominiport driver来完成一些不常用的操作,例如资源管理、物理设备映射、响应中断等。作为EMOS VGA前端驱动中的video miniport driver负责完成的功能包括:
1)初始化EMOS VGA的PCI显示设备;
2)读取PCI配置空间并获取PCI资源;
3)对获取到的I/O端口及MMIO资源进行转存;
4)将EMOS VGA硬件设备资源映射到Display Driver所在的地址空间。
Display Driver是一个内核模式的DLL,它的首要责任是渲染。当应用程序调用一个设备无关图形的Win32函数,图形设备接口(GDI)解释这些指令,并调用Display Driver中的相关接口。Display Driver将这些请求转化为发送给视频硬件的命令,从而在屏幕上绘制图形。
在EMOS VGA显示驱动中采用了Frame Buffer的显示环境,而Display Driver的实现在默认情况下,采用GDI处理标准格式的位图,这跟硬件包含帧缓冲格式一样。原本Display Driver将实现一些硬件提供了特殊支持的绘图函数,由于此时的显示设备是虚拟的,无法提供任何硬件功能,Display Driver则将显示工作交给GDI接口处理。
具体video miniport driver与Display Driver组成的前端驱动架构图3所示。
前后端之间的通信采用共享内存的方式,后端将可访问的Frame Buffer地址空间直接映射给前端驱动程序,通过Xen提供的API可以实现Windows客户系统直接读写Frame Buffer的效果;同时后端在Xen虚拟机中注册指定I/O端口,用于与前端驱动同步的通信,前端驱动访问指定I/O端口将导致该指令被虚拟机截获。优化后的通信方式预期可以大大减少CPU特权模式的频繁切换。
前后端通信通过两种方式来实现:I/O端口实现、共享内存实现。
在EMOS VGA后端的I/O端口注册设计中已经涉及到使用I/O端口来实现前后端的通信,这样的通信方式主要是实现前后端之间的快速的同步通信。前后端基于I/O端口的通信过程图4所示。
同样在EMOS VGA后端的共享内存设计中提及了共享内存的通信方式,与I/O端口截获的通信方式不同,基于共享内存通信方式可以交互相对较多的信息量。前后端基于内存的通信过程图5所示:
后端开辟共享内存空间并把空间地址映射给前端的客户系统驱动后,之后前后的通信将直接在这块共享内存区域进行,通信过程将绕过Xen虚拟机,这样的通过方式无疑提高前端显示驱动的工作效率。

Claims (7)

1.一种基于Xen安全计算机显示优化的方法,其特征在于包括宿主系统的简化后端设备的实现、客户系统的定制前端驱动的实现、以及前后端之间的通信优化;
所述宿主系统的简化后端设备的实现,包括实现PCI设备接口,以及引入Frame Buffer的支持,通过对Frame Buffer的读写直接将帧缓存图像绘制于屏幕上;
所述客户系统的定制前端驱动的实现,包括直接获取后端设备提供的内存I/O及端口I/O资源,并通过系统GDI显示接口实现基于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)获取Frame Buffer帧缓冲设备和指定显示模式并保存于后端设备属性中;
4)设置Frame Buffer地址为共享空间并映射给前端设备;
5)在宿主机中注册后端设备指定I/O端口;
6)实现与Std VGA接口的连接并初始化Std VGA;
7)客户系统加载前端驱动,触发显示操作;
8)后端设备调用回调函数操作Frame Buffer完成显示工作。
5.根据权利要求2所述的基于Xen安全计算机显示优化的方法,其特征在于所述EMOS VGA前端驱动存在于虚拟Windows客户系统中,负责EMOS VGA显示工作的驱动程序,前端驱动程序使用Windows GDI接口基于Frame Buffer完成显示工作,其操作的EMOS VGA设备资源是由后端直接映射的共享内存空间。
6.根据权利要求2所述的基于Xen安全计算机显示优化的方法,其特征在于所述前后端之间的通信采用共享内存的方式为:后端设备将供访问的FrameBuffer地址空间直接映射给前端驱动程序,通过Xen提供的API实现Windows客户系统直接读写Frame Buffer。
7.根据权利要求2所述的基于Xen安全计算机显示优化的方法,其特征在于所述前后端之间的通信采用I/O端口截获的方式为:后端设备在Xen虚拟机中注册指定I/O端口,用于与前端驱动同步的通信,前端驱动访问指定I/O端口将导致指令被虚拟机截获。
CN 201010529692 2010-10-29 2010-10-29 一种基于Xen安全计算机显示优化的方法 Expired - Fee Related CN102135866B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010529692 CN102135866B (zh) 2010-10-29 2010-10-29 一种基于Xen安全计算机显示优化的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010529692 CN102135866B (zh) 2010-10-29 2010-10-29 一种基于Xen安全计算机显示优化的方法

Publications (2)

Publication Number Publication Date
CN102135866A CN102135866A (zh) 2011-07-27
CN102135866B true CN102135866B (zh) 2013-07-17

Family

ID=44295661

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010529692 Expired - Fee Related CN102135866B (zh) 2010-10-29 2010-10-29 一种基于Xen安全计算机显示优化的方法

Country Status (1)

Country Link
CN (1) CN102135866B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523204B (zh) * 2011-12-02 2014-08-27 华中科技大学 面向QoS的虚拟机网络带宽分配系统
CN102609638A (zh) * 2011-12-22 2012-07-25 中国航天科工集团第二研究院七〇六所 基于UEFI运行时服务的Xen虚拟机架构及其实现方法
CN102609231B (zh) * 2012-02-22 2014-12-31 中国人民解放军国防科学技术大学 基于飞腾处理器平台的多显示屏输出方法
CN103197915B (zh) * 2013-03-01 2015-08-19 华为技术有限公司 一种处理敏感指令的方法、装置以及物理机
CN103176855A (zh) 2013-03-15 2013-06-26 中兴通讯股份有限公司 消息交互处理方法及装置
EP3198406B1 (en) * 2014-09-26 2022-02-23 Intel Corporation Facilitation of guest application display from host operating system
CN104346212A (zh) * 2014-10-20 2015-02-11 浪潮电子信息产业股份有限公司 一种虚拟机i/o性能的优化方法
CN105701037B (zh) * 2015-12-30 2019-09-17 惠州市德赛西威汽车电子股份有限公司 车载娱乐系统中weston与DRM同时访问显示控制器的系统及方法
CN107643897B (zh) * 2016-07-20 2021-04-16 阿里巴巴集团控股有限公司 后端驱动程序的更新方法及装置
CN106371890B (zh) * 2016-08-29 2019-05-28 山东乾云启创信息科技股份有限公司 一种gpu的模拟方法
CN106874128B (zh) * 2017-01-22 2020-11-20 广州华多网络科技有限公司 数据传输方法及装置
CN109697102A (zh) * 2017-10-23 2019-04-30 阿里巴巴集团控股有限公司 一种实现虚拟机桌面访问的方法及装置
CN117891565B (zh) * 2024-03-14 2024-05-17 麒麟软件有限公司 基于多系统隔离的显示虚拟共享系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008008675A3 (en) * 2006-07-10 2008-10-09 Device Vm Inc Method and apparatus for virtualization of appliances
CN101667144A (zh) * 2009-09-29 2010-03-10 北京航空航天大学 一种基于共享内存的虚拟机通信方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008008675A3 (en) * 2006-07-10 2008-10-09 Device Vm Inc Method and apparatus for virtualization of appliances
CN101667144A (zh) * 2009-09-29 2010-03-10 北京航空航天大学 一种基于共享内存的虚拟机通信方法

Also Published As

Publication number Publication date
CN102135866A (zh) 2011-07-27

Similar Documents

Publication Publication Date Title
CN102135866B (zh) 一种基于Xen安全计算机显示优化的方法
US11573813B2 (en) Dynamic device virtualization for use by guest user processes based on observed behaviors of native device drivers
CN106406977B (zh) 一种gpu虚拟化实现系统及方法
CN103034524B (zh) 半虚拟化的虚拟gpu
US7945436B2 (en) Pass-through and emulation in a virtual machine environment
JP5746770B2 (ja) 仮想化によるスマートデバイスの直接的共有
CA2528116C (en) Systems and methods for virtualizing graphics subsystems
US20100262722A1 (en) Dynamic Assignment of Graphics Processing Unit to a Virtual Machine
US10540294B2 (en) Secure zero-copy packet forwarding
CN102243571B (zh) 一种面向嵌入式Hypervisor 的多视窗显示虚拟化操作方法
CN103593185A (zh) 基于单Linux内核的多Android系统共享输入显示设备的方法
US11875145B2 (en) Virtual machine update while keeping devices attached to the virtual machine
CN117389694B (zh) 基于virtio-blk技术提升虚拟存储IO性能的方法
CN111857943B (zh) 数据处理的方法、装置与设备
WO2022100693A1 (zh) 一种地址转换关系的配置方法及计算机系统
CN110941408A (zh) 一种kvm虚拟机图形界面输出方法及装置
CN117472805B (zh) 一种基于virtio的虚拟化IO设备内存管理系统
CN117891565B (zh) 基于多系统隔离的显示虚拟共享系统
CN117331704B (zh) 图形处理器gpu调度方法、装置和存储介质
Corsi et al. A virtual graphics card for teaching device driver design

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130717

CF01 Termination of patent right due to non-payment of annual fee