CN101488113B - 一种设备驱动域的实现方法、系统及装置 - Google Patents

一种设备驱动域的实现方法、系统及装置 Download PDF

Info

Publication number
CN101488113B
CN101488113B CN200810181131.9A CN200810181131A CN101488113B CN 101488113 B CN101488113 B CN 101488113B CN 200810181131 A CN200810181131 A CN 200810181131A CN 101488113 B CN101488113 B CN 101488113B
Authority
CN
China
Prior art keywords
equipment
driving
virtual machine
domain
device drives
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.)
Active
Application number
CN200810181131.9A
Other languages
English (en)
Other versions
CN101488113A (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.)
Huawei Technologies Co Ltd
National University of Defense Technology
Original Assignee
Huawei Technologies Co Ltd
National University of Defense Technology
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 Huawei Technologies Co Ltd, National University of Defense Technology filed Critical Huawei Technologies Co Ltd
Priority to CN200810181131.9A priority Critical patent/CN101488113B/zh
Priority to PCT/CN2009/072255 priority patent/WO2010060300A1/zh
Publication of CN101488113A publication Critical patent/CN101488113A/zh
Application granted granted Critical
Publication of CN101488113B publication Critical patent/CN101488113B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种设备驱动域的实现方法、系统及装置,所述方法包括:根据设备的驱动类型将有I/O访问特权的虚拟机中的设备驱动进行分离;将所述相同驱动类型的设备驱动组合形成设备驱动域,以使所述设备驱动域控制所述设备驱动域所对应驱动类型的设备。本发明实施例中,通过从有I/O访问特权的虚拟机中分离出设备驱动域,所述分离出的设备驱动域只控制该设备驱动域所对应驱动类型的设备,从而减少了虚拟机之间、虚拟机与虚拟机监控器之间的上下文切换开销,提高了I/O性能。

Description

一种设备驱动域的实现方法、系统及装置
技术领域
本发明涉及通信技术领域,特别是涉及一种设备驱动域的实现方法、系统及装置。 
虚拟机是允许多个操作系统共享底层硬件资源的一种机制,通过软件模拟的具有完整硬件系统功能并运行在一个完全的隔离环境中的完整计算机系统,随着计算机硬件的飞速发展,虚拟机技术也得到了很好的发展。在虚拟机技术中,I/O(Input/Output,输入/输出)子系统的虚拟化是虚拟机技术的重要组成部分,I/O子系统的性能对系统整体性能的提高非常重要。 
现有技术中,提出了一种分离的I/O模型框架,即将传统的I/O驱动框架分成两部分,分别位于无I/O访问特权级的虚拟机中和位于有I/O访问特权的虚拟机中,当位于无I/O访问特权级的虚拟机中时为DomU,多个DomU之间可同时运行各自的客户操作系统,当位于有I/O访问特权的虚拟机中时为Dom0,该Dom0用于为DomU提供硬件访问支持。 
在实现本发明过程中,发明人发现现有技术中至少存在如下问题: 
现有的分离I/O模型中,Dom0需要支持DomU的所有硬件访问,所有访问均需Dom0对I/O进行处理,在Dom0对I/O进行处理时,需要通过XEN转发请求,并且会带来虚拟机之间、虚拟机与虚拟机监控器之间的上下文切换开销,而上下文切换越频繁,I/O性能便越差,从而给I/O性能带来了较大的性能折损。 
本发明实施例提供一种设备驱动域的实现方法、系统及装置,以提升I/O性能。 
为了达到上述目的,本发明实施例提出了一种设备驱动域的实现方法, 包括: 
根据设备的驱动类型将有I/O访问特权的虚拟机中的设备驱动进行分离,并形成独自运行的虚拟机实体; 
将所述相同驱动类型的设备驱动组合形成设备驱动域,对硬件的访问由不同的设备驱动域分别直接进行I/O处理,所述设备驱动域只控制所述设备驱动域所对应驱动类型的设备。 
本发明实施例还提出了一种设备驱动域的实现系统,包括: 
虚拟机监控器,用于根据设备的驱动类型将有I/O访问特权的虚拟机中的设备驱动进行分离,并形成独自运行的虚拟机实体,并将所述相同驱动类型的设备驱动组合形成设备驱动域; 
所述设备驱动域,用于对来自操作系统的请求进行响应,并根据所述响应结果控制所述设备驱动域所对应驱动类型的设备,对硬件的访问由不同的设备驱动域分别直接进行I/O处理。 
本发明实施例还提出了一种设备驱动域的实现装置,包括: 
分离模块,用于根据设备的驱动类型将有I/O访问特权的虚拟机中的设备驱动进行分离,并形成独自运行的虚拟机实体; 
组合模块,用于将所述相同驱动类型的设备驱动组合形成设备驱动域,对硬件的访问由不同的设备驱动域分别直接进行I/O处理,所述设备驱动域只控制所述设备驱动域所对应驱动类型的设备。 
与现有技术相比,本发明实施例具有以下优点: 
通过从有I/O访问特权的虚拟机中分离出设备驱动域,所述分离出的设备驱动域只控制该设备驱动域所对应驱动类型的设备,从而减少了虚拟机之间、虚拟机与虚拟机监控器之间的上下文切换开销,提高了I/O性能。 
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。 
图1为本发明实施例一提出的一种设备驱动域的实现方法流程图; 
图2为本发明实施例二提出的一种设备驱动域的实现方法流程图; 
图3为本发明实施例二提出的将设备驱动按设备的驱动类型进行分离前的框架示意图; 
图4为本发明实施例二提出的将设备驱动按设备的驱动类型进行分离后的框架示意图; 
图5为本发明实施例二提出的分离的逻辑结构示意图; 
图6为本发明实施例三提出的一种设备驱动域的实现装置结构图。 
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 
本发明实施例一提出的一种设备驱动域的实现方法,如图1所示,包括: 
步骤S101,根据设备的驱动类型将有I/O访问特权的虚拟机中的设备驱动进行分离; 
步骤S102,将所述相同驱动类型的设备驱动组合形成设备驱动域,以使所述设备驱动域控制所述设备驱动域所对应驱动类型的设备。 
可见,本发明实施例中,通过从有I/O访问特权的虚拟机中分离出设备驱动域,所述分离出的设备驱动域只控制该设备驱动域所对应驱动类型的设备,从而减少了虚拟机之间、虚拟机与虚拟机监控器之间的上下文切换开销,提高了I/O性能。 
本发明实施例二提出的一种设备驱动域的实现方法,如图2所示,包括: 
步骤S201,VMM(Virtual Machine Monitor,虚拟机监控器)将Dom0中的设备驱动按设备的驱动类型进行分离,并形成独自运行的虚拟机实体,该从Dom0中分离出的独自运行的虚拟机实体为设备驱动域,该设备驱动域只负责该设备驱动域所对应类型的设备的操作。 
具体的,该设备驱动域包括但不限于块设备驱动域、网卡设备驱动域。例如,将块设备所对应的驱动从Dom0中其他类型的设备驱动中分离出来时, 该设备驱动域为块设备驱动域;将网卡设备所对应的驱动从Dom0中其他类型的设备驱动中分离出来时,该设备驱动域为网卡设备驱动域。本实施例中,该设备驱动即设备所对应的驱动,包括但不限于设备管理器、设备后端驱动、设备驱动,例如,该块设备所对应的驱动包括但不限于块设备管理器、块设备后端驱动、块设备驱动,该网卡设备所对应的驱动包括但不限于网卡设备管理器、网卡设备后端驱动、网卡设备驱动。 
如图3所示,在将设备驱动按设备的驱动类型进行分离前的框架中,可以直接对I/O设备进行访问的驱动模块称为后端驱动121,不能直接对I/O设备进行访问的驱动模块称为前端驱动111。该前端驱动111用于接收DomU11中上层发来的I/O请求,并通过事件通道机制传递给后端驱动121;后端驱动将处理来自该前端驱动111的请求,并根据该请求调用相应设备驱动程序访问该I/O设备。 
本实施例中,该I/O设备以块设备和网卡设备为例,该块设备为存储设备,包括但不限于硬盘设备。在该将设备驱动按设备的驱动类型进行分离前的框架中,该DomU 11位于无I/O访问特权级的虚拟机中,多个DomU11之间可同时运行各自的客户操作系统,该Dom012位于有I/O访问特权的虚拟机中,该Dom0 12用于为DomU 11提供硬件访问支持。本实施例中,前端驱动111位于DomU 11中,当接收到来自DomU 11上层发来的I/O请求后,通过XEN传递给后端驱动121,该后端驱动121位于Dom0 12中,根据该请求调用相应设备驱动程序访问该I/O设备,例如,当前端驱动111的请求为硬盘设备的操作请求时,后端驱动121调用硬盘设备的驱动程序访问该硬盘设备,当前端驱动111的请求为网卡设备的操作请求时,后端驱动121调用网卡设备的驱动程序访问该网卡设备。 
如图4所示,在将设备驱动按设备的驱动类型进行分离后的框架中,将Dom0 12中的设备所对应的驱动按设备的驱动类型从后端驱动中121分离,形成独自运行的虚拟机实体,该独自运行的虚拟机实体为设备驱动域,本实施例中,以块设备驱动域和网卡设备驱动域为例。在后端驱动中121中,设备所对应的驱动包括但不限于网卡设备管理器12111、网卡设备后端驱动 12112、网卡设备驱动12113、块设备管理器12121、块设备后端驱动12122、块设备驱动12123,将上述设备所对应的驱动按照设备的驱动类型进行分离,上述的网卡设备管理器12111、网卡设备后端驱动12112、网卡设备驱动12113是网卡设备类型的驱动,上述的块设备管理器12121、块设备后端驱动12122、块设备驱动12123是块设备类型的驱动,通过将网卡设备所对应的驱动和块设备所对应的驱动从后端驱动中121进行分离,便形成两组独自运行的虚拟机实体,该独自运行的虚拟机实体即为块设备驱动域1212和网卡设备驱动域1211,该块设备驱动域1212中包括块设备管理器12121、块设备后端驱动12122、块设备驱动12123,该网卡设备驱动域1211包括网卡设备管理器12111、网卡设备后端驱动12112、网卡设备驱动12113。 
各个设备驱动域负责各自设备驱动域所对应类型的设备的操作,即该块设备驱动域1212与块设备连接,该网卡设备驱动域1211与网卡设备连接,上述块设备驱动域1212和网卡设备驱动域1211通过XEN与前端驱动111相连接,即可以通过块设备驱动域1212和网卡设备驱动域1211处理来自前端驱动111的请求,该来自前端驱动111的请求是客户操作系统的访问请求,并根据该请求调用相应的设备驱动程序访问块设备和网卡设备。 
当前端驱动111的请求为硬盘设备的操作请求时,块设备驱动域1212将直接对该硬盘设备的操作请求进行处理,并访问该硬盘设备;当前端驱动111的请求为网卡设备的操作请求时,网卡设备驱动域1211直接对该网卡设备的操作请求进行处理,并访问该网卡设备。 
在网卡设备驱动域1211中,包括网卡设备管理器12111、网卡设备后端驱动12112、网卡设备驱动12113,该网卡设备驱动12113可以初始化网卡设备,该网卡设备后端驱动12112可以驱动网卡设备,该网卡设备管理器12111可以为网卡设备配置IP地址。同样的,在块设备驱动域1212中,包括块设备管理器12121、块设备后端驱动12122、块设备驱动12123,该块设备驱动12123可以初始化块设备,该块设备后端驱动12122可以驱动块设备,该块设备管理器12121可以为块设备配置存储条件。 
上述的将设备所对应的驱动按设备的驱动类型进行分离的逻辑结构如图 5所示,本实施例中,以网卡设备驱动域为例,该网卡设备驱动域并不向用户暴露使用接口,负责提供网络数据的传输,在该网卡设备驱动域的内核中,保留链路层以下的后端驱动。在按设备的驱动类型进行分离的逻辑结构中,还包含了负责对设备驱动域进行管理的客户管理域,当设备驱动域出现故障时,该出现故障的设备驱动域通过XEN向客户管理域发送消息,系统管理员通过客户管理域对设备驱动域进行维护,例如重新启动设备驱动域。 
在上述逻辑结构中,PCI(Peripheral Component Interconnection,外设组件互连标准)对PCI设备定义了基准的配置空间,该基准的配置空间为配置寄存器组。其中,PCI设备的每个设备的配置寄存器组中固化了信息,例如,设备的I/O地址空间。XEN通过限制驱动域扫描的地址空间,使得每个设备驱动域只能看到其对应类型的硬件设备,即通过修改设备驱动域的配置寄存器组,使设备驱动域通过XEN进行设备的扫描,每个设备驱动域只能看到其对应类型的硬件设备。例如,块设备驱动域启动时,XEN只向块设备驱动域暴露块设备而不暴露其它设备,例如,不暴露网卡设备。同样的,网卡设备驱动域在启动、运行时也无法看到块设备。 
步骤S202,设备驱动域对来自客户操作系统的与该设备驱动域对应的设备类型的操作请求进行响应,并根据响应结果对设备驱动域所对应驱动类型的设备进行控制。 
具体的,来自其他客户操作系统的块设备操作请求由块设备驱动域完成处理,来自其他客户操作系统的网络数据的传输请求由网卡设备驱动域完成处理。即在VMM启动时,将会启动块设备驱动域,例如,可以启动块设备驱动域、网卡设备驱动域等客户虚拟机运行时需要进行I/O服务的设备驱动域,每个客户虚拟机对块设备的访问统一通过块设备驱动域进行,而每个客户虚拟机对网卡设备的访问统一通过网卡设备驱动域与真实网卡设备进行交互完成。 
在该设备驱动域中,对I/O寄存器的处理具体为:在每个设备驱动域进行地址空间更新时,通过检查设备驱动域的有效性保证多个设备驱动域之间的内存隔离,每个设备驱动域对应着独立的内存,即设备驱动域与内存页面之 间具有一一对应的映射关系,而内存页面之间不能相互重叠,当设备驱动域有效时,该设备驱动域所对应的内存便是隔离的。即通过扩展有效性检查,当设备驱动域有效时,允许设备驱动域通过访问已经与设备寄存器建立映射关系的内存页面来访问设备,不同的设备寄存器对应的内存数据块不会跨越内存页边界,从而保证了保护机制的高效性。VMM利用硬件机制,在设备驱动域间进行切换的时候将更新端口与位图的对应关系。该硬件机制为CPU支持16位的I/O访问空间,通过16位的地址空间按照端口对设备进行访问,CPU利用位图机制为上述访问提供了严格的访问控制。而设备驱动域机制对各类设备进行了隔离,例如所有的网卡设备均由网卡设备驱动域进行操作和管理,从而保证了多个设备驱动域通过网卡设备进行数据传输操作的安全性。 
在该设备驱动域中,对中断机制的处理具体为:当设备发生中断后,VMM接管所有设备的中断,当VMM接收到不同设备的中断后,将该中断按照该中断设备的类型转发给该设备类型所对应的设备驱动域。VMM需要对设备驱动域的中断服务程序的执行进行控制,例如对设备驱动域中的中断服务程序进行调度,在设备驱动域被调度执行时,VMM通过向该设备驱动域发送事件通知,来引发该设备驱动域内中断服务程序的正确执行。VMM通过直接管理系统中的中断控制器,使得VMM在接管设备中断时,能够在中断允许的时间范围内对中断控制器作出响应,当多个设备驱动域需要进行切换时,VMM能够对上下文进行保护。 
VMM还可以通过XEN向每个设备驱动域发送异步的事件通知,例如发送异步的硬件中断事件通知。具体的,VMM可以为每个设备驱动域最多分配1024个事件通道,在每个事件通道所对应的VMM和设备驱动域之间共享的内存页中,包含一对标志位,VMM可以通过设置第一个标志位来表示一个事件被pending(待定),并向上层设备驱动域发送事件通知。当设备驱动域阻塞时,VMM将该设备驱动域挂入运行队列,使得该设备驱动域可以被调度执行。当多个相同的事件(如同一块网卡连续发生多次发送中断)发生时,事件通知只发生一次,后面的事件被自动丢弃。第二个标志位由上层设备驱动域进行设置,在该第二个标志位被设置并且有事件处于pending状态时,其他 的事件通知将自动被该设备驱动域忽略,在该第二个标志位被清除后,对应的设备驱动域才能重新读取pending标志位来判断是否有一个事件正在被等待处理。 
每个设备驱动域通过唯一的事件处理程序处理来自VMM的事件通知。该设备驱动域通过选择器数据结构表示最多32个事件一组中的哪个具体事件的发生,从而避免在接收到事件通知后该域扫描所有的pending标志位。在设备驱动域执行完对所有事件的处理程序后,需要通过VMM将对应的中断屏蔽打开,以避免未解开中断屏蔽位的中断再次进入中断处理程序。此外,当一条中断线被多个设备共享时,VMM需在所有对硬件进行操纵的设备驱动域全部进行完中断事件处理后,才能清除对应的中断屏蔽。 
可见,本实施例中,通过从Dom0中分离出设备驱动域,对DomU的硬件访问由不同的设备驱动域分别进行I/O处理,设备驱动域只控制该设备驱动域所对应驱动类型的设备,从而减少了虚拟机之间、虚拟机与虚拟机监控器之间的上下文切换开销,显著提高了I/O性能。通过将一类的驱动部署在一个含有后端驱动的设备驱动域中,可以达到驱动间的安全隔离,并提高系统的可靠性、可维护性和可控性,当驱动代码出现问题时,可以将驱动代码隔离在该驱动代码所在的虚拟机中,不会影响到其他客户操作系统的正确执行。通过设备驱动域对IO寄存器的处理,将各类设备进行了隔离,从而保证了多个设备驱动域通过硬件(例如网卡设备)进行数据传输等操作时的安全性。通过设备驱动域对中断机制的处理,从而保证了设备驱动域内中断服务程序的正确执行。通过引入设备驱动域,将驱动代码造成的安全隐患封闭在对应的设备驱动域内,提高了系统的稳定性、可靠性、可用性和可控性。通过将Dom0进行拆分,原有的Dom0的性能、带宽、负载、CPU占用率等约束被一个个设备驱动域所分担,减小甚至消除了I/O路径中的问题。 
本发明实施例还提出一种设备驱动域的实现系统,包括:虚拟机监控器、设备驱动域和虚拟机;该虚拟机监控器用于根据设备的驱动类型将有I/O访问特权的虚拟机中的设备驱动进行分离,并将该相同驱动类型的设备驱动组合形成设备驱动域。该设备驱动域用于对来自操作系统的请求进行响应,并根 据响应结果控制该设备驱动域所对应驱动类型的设备。 
本发明实施例三提出的一种虚拟机监控器6,如图6所示,包括: 
分离模块61,用于根据设备的驱动类型将有I/O访问特权的虚拟机中的设备驱动进行分离; 
组合模块62,用于将分离模块61分离后的实体中的相同驱动类型的设备驱动组合形成设备驱动域,以使所述设备驱动域控制所述设备驱动域所对应驱动类型的设备。 
进一步的,该分离模块61包括: 
第一分离单元611,用于将块设备所对应的驱动从有I/O访问特权的虚拟机中的设备驱动中分离; 
第二分离单元612,用于将网卡设备所对应的驱动从有I/O访问特权的虚拟机中的设备驱动中分离。 
进一步的,该虚拟机监控器还包括: 
处理模块63,用于对I/O寄存器进行处理;和/或对中断进行处理。该对I/O寄存器进行处理具体为在设备驱动域进行地址空间更新时检查设备驱动域的有效性,当设备驱动域有效时允许设备驱动域通过访问已经与设备寄存器建立映射关系的内存页面来访问设备;该对中断进行处理具体为当设备发生中断后,接管所述设备的中断,并通过发送事件通知的方式将所述中断通知给所述设备对应的设备驱动域。 
可见,本实施例中,通过从有I/O访问特权的虚拟机中分离出设备驱动域,所述分离出的设备驱动域只控制该设备驱动域所对应驱动类型的设备,从而减少了虚拟机之间、虚拟机与虚拟机监控器之间的上下文切换开销,提高了I/O性能。 
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以可借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机, 服务器,或者网络设备等)执行本发明各个实施例所述的方法。 
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

Claims (10)

1.一种设备驱动域的实现方法,其特征在于,包括:
根据设备的驱动类型将Dom0中具有I/O访问特权的虚拟机中的设备驱动进行分离,并形成独自运行的虚拟机实体;
将所述相同驱动类型的设备驱动组合形成设备驱动域,所述设备驱动域包括设备管理器、设备后端驱动以及设备驱动;
当接收到DomU中上层发送的I/O访问请求时,先通过所述客户操作系统中的前端驱动接收来自客户端操作系统上I/O请求,通过事件通道机制传递给所述设备后端驱动,使得所述设备后端驱动收到所述I/O访问请求后调用所述设备驱动,通过设备驱动访问所述设备。
2.如权利要求1所述的实现方法,其特征在于,在所述将相同驱动类型的设备驱动组合形成设备驱动域之后,还包括:
所述设备驱动域对来自操作系统的请求进行响应,并根据所述响应结果对所述设备驱动域所对应驱动类型的设备进行控制。
3.如权利要求1或2所述的实现方法,其特征在于,所述设备驱动域包括:块设备驱动域和/或网卡设备驱动域;
所述根据设备的驱动类型将有I/O访问特权的虚拟机中的设备驱动进行分离包括:
将块设备所对应的驱动从有I/O访问特权的虚拟机中的设备驱动中分离;和/或
将网卡设备所对应的驱动从有I/O访问特权的虚拟机中的设备驱动中分离。
4.如权利要求1所述的实现方法,其特征在于,在所述将相同驱动类型的设备驱动组合形成设备驱动域之后,还包括:
在设备驱动域进行地址空间更新时检查设备驱动域的有效性,当设备驱动域有效时允许设备驱动域通过访问已经与设备寄存器建立映射关系的内存页面来访问设备。
5.如权利要求1所述的实现方法,其特征在于,在所述将相同驱动类型的设备驱动组合形成设备驱动域之后,还包括:
当设备发生中断后,接管所述设备的中断,并通过发送事件通知的方式将所述中断通知给所述设备对应的设备驱动域。
6.一种设备驱动域的实现系统,其特征在于,包括:
虚拟机监控器,用于根据设备的驱动类型将Dom0中具有I/O访问特权的虚拟机中的设备驱动进行分离,并形成独自运行的虚拟机实体,并将所述相同驱动类型的设备驱动组合形成设备驱动域,所述设备驱动域包括设备管理器、设备后端驱动以及设备驱动;
所述设备驱动域,用于对来自操作系统的请求进行响应,并根据所述响应结果控制所述设备驱动域所对应驱动类型的设备,具体的,当接收到DomU中上层发送的I/O访问请求时,先通过所述客户操作系统中的前端驱动接收来自客户端操作系统上I/O请求,通过事件通道机制传递给所述设备后端驱动,使得所述设备后端驱动收到所述I/O访问请求后调用所述设备驱动,通过设备驱动访问所述设备。
7.如权利要求6所述的实现系统,其特征在于,所述虚拟机监控器包括:
分离模块,用于根据设备的驱动类型将有I/O访问特权的虚拟机中的设备驱动进行分离;
组合模块,用于将所述相同驱动类型的设备驱动组合形成设备驱动域,以使所述设备驱动域控制所述设备驱动域所对应驱动类型的设备。
8.一种虚拟机监控器,其特征在于,包括:
分离模块,用于根据设备的驱动类型将Dom0中具有I/O访问特权的虚拟机中的设备驱动进行分离,并形成独自运行的虚拟机实体;
组合模块,用于将所述相同驱动类型的设备驱动组合形成设备驱动域,所述设备驱动域包括设备管理器、设备后端驱动以及设备驱动;当接收到DomU中上层发送的I/O访问请求时,先通过所述客户操作系统中的前端驱动接收来自客户端操作系统上I/O请求,通过事件通道机制传递给所述设备后端驱动,使得所述设备后端驱动收到所述I/O访问请求后调用所述设备驱动,通过设备驱动访问所述设备。
9.如权利要求8所述的虚拟机监控器,其特征在于,所述分离模块包括:
第一分离单元,用于将块设备所对应的驱动从有I/O访问特权的虚拟机中的设备驱动中分离;
第二分离单元,用于将网卡设备所对应的驱动从有I/O访问特权的虚拟机中的设备驱动中分离。
10.如权利要求8所述的虚拟机监控器,其特征在于,还包括:
处理模块,用于在设备驱动域进行地址空间更新时检查设备驱动域的有效性,当设备驱动域有效时允许设备驱动域通过访问已经与设备寄存器建立映射关系的内存页面来访问设备;
和/或
当设备发生中断后,接管所述设备的中断,并通过发送事件通知的方式将所述中断通知给所述设备对应的设备驱动域。
CN200810181131.9A 2008-11-25 2008-11-25 一种设备驱动域的实现方法、系统及装置 Active CN101488113B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN200810181131.9A CN101488113B (zh) 2008-11-25 2008-11-25 一种设备驱动域的实现方法、系统及装置
PCT/CN2009/072255 WO2010060300A1 (zh) 2008-11-25 2009-06-12 一种设备驱动域的实现方法、系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810181131.9A CN101488113B (zh) 2008-11-25 2008-11-25 一种设备驱动域的实现方法、系统及装置

Publications (2)

Publication Number Publication Date
CN101488113A CN101488113A (zh) 2009-07-22
CN101488113B true CN101488113B (zh) 2014-07-30

Family

ID=40891013

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810181131.9A Active CN101488113B (zh) 2008-11-25 2008-11-25 一种设备驱动域的实现方法、系统及装置

Country Status (2)

Country Link
CN (1) CN101488113B (zh)
WO (1) WO2010060300A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488113B (zh) * 2008-11-25 2014-07-30 华为技术有限公司 一种设备驱动域的实现方法、系统及装置
CN103080944B (zh) * 2010-08-27 2016-04-13 惠普发展公司,有限责任合伙企业 操作计算机的方法和电子设备
CN102426557A (zh) * 2011-10-27 2012-04-25 中国科学院计算技术研究所 虚拟化环境中 pci 设备的分离访问方法及其系统
WO2013100921A1 (en) * 2011-12-28 2013-07-04 Intel Corporation Allocating memory access control policies
CN102938035B (zh) * 2012-11-08 2015-05-27 西安交通大学 一种在虚拟机内部的驱动隔离系统与方法
CN103197915B (zh) * 2013-03-01 2015-08-19 华为技术有限公司 一种处理敏感指令的方法、装置以及物理机
CN104182691B (zh) * 2014-08-22 2017-07-21 国家电网公司 数据保密方法及装置
CN113296926B (zh) * 2020-05-29 2022-06-21 阿里巴巴集团控股有限公司 一种资源分配方法、计算设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101008903A (zh) * 2006-01-23 2007-08-01 联想(北京)有限公司 一种虚拟机系统及其设备访问方法
CN101206582A (zh) * 2006-12-22 2008-06-25 联想(北京)有限公司 一种虚拟机系统及其处理方法
CN101238471A (zh) * 2005-08-09 2008-08-06 英特尔公司 安全音频程序的独占访问

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060070066A1 (en) * 2004-09-30 2006-03-30 Grobman Steven L Enabling platform network stack control in a virtualization platform
US7757231B2 (en) * 2004-12-10 2010-07-13 Intel Corporation System and method to deprivilege components of a virtual machine monitor
US8001543B2 (en) * 2005-10-08 2011-08-16 International Business Machines Corporation Direct-memory access between input/output device and physical memory within virtual machine environment
CN101071387B (zh) * 2006-09-08 2010-05-12 华南理工大学 一种基于虚拟机的驱动程序加固方法
US7941812B2 (en) * 2007-01-30 2011-05-10 Hewlett-Packard Development Company, L.P. Input/output virtualization through offload techniques
CN101488113B (zh) * 2008-11-25 2014-07-30 华为技术有限公司 一种设备驱动域的实现方法、系统及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101238471A (zh) * 2005-08-09 2008-08-06 英特尔公司 安全音频程序的独占访问
CN101008903A (zh) * 2006-01-23 2007-08-01 联想(北京)有限公司 一种虚拟机系统及其设备访问方法
CN101206582A (zh) * 2006-12-22 2008-06-25 联想(北京)有限公司 一种虚拟机系统及其处理方法

Also Published As

Publication number Publication date
WO2010060300A1 (zh) 2010-06-03
CN101488113A (zh) 2009-07-22

Similar Documents

Publication Publication Date Title
CN101488113B (zh) 一种设备驱动域的实现方法、系统及装置
CN106547618B (zh) 通信系统和电子设备
CN100568182C (zh) 在逻辑地分区的数据处理系统内分布工作的方法和系统
CN100399274C (zh) 一种虚拟机系统输入/输出设备动态分配的方法及其设备
JP6185045B2 (ja) インフィニバンドネットワークにおけるバーチャルマシーンのライブマイグレーションをサポートするためのシステムおよび方法
CN102291428B (zh) 用于在多个虚拟机之间共享网络接口的方法
CN101120317A (zh) 将存储器从一个虚拟机动态再分配到另一个的方法、装置和系统
EP3462671B1 (en) Virtual network function resource management method and device
JP3737767B2 (ja) 論理区画(lpar)コンピュータ・システム
EP0230353A2 (en) Coprocessor management in a virtual memory virtual machine data processing system
CN102110023B (zh) 一种多用户操作系统并行运行的控制方法、系统及计算机
US20070300223A1 (en) Virtual machine system and method for switching hardware devices thereof
KR102264513B1 (ko) 클라우드 컴퓨팅 환경에서 비휘발성 메모리 익스프레스 기반 저장 시스템의 하이브리드 프레임워크
CN102141928A (zh) 虚拟环境下的数据处理方法、系统以及系统的部署方法
MXPA01005779A (es) Virtualizacion de hipervisor de sistema operativo y panel de operador.
CN101206582B (zh) 一种虚拟机系统及其处理方法
CN103744716A (zh) 一种基于当前vcpu调度状态的动态中断均衡映射方法
CN112306650B (zh) 虚拟机热迁移方法和通信设备
US9268593B2 (en) Computer-readable recording medium, virtual machine control method and information processing apparatus
CN105556473A (zh) 一种i/o任务处理的方法、设备和系统
CN105612498A (zh) 虚拟机热迁移的方法、虚拟机内存数据处理方法、服务器和虚拟机系统
CN102426557A (zh) 虚拟化环境中 pci 设备的分离访问方法及其系统
CN101187880A (zh) 一种虚拟机系统及其显卡使用方法
CN103605559A (zh) 一种kvm虚拟化服务系统及其数据通信方法
CN101636717A (zh) 网格处理控制装置

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