CN109313569B - 用于虚拟硬件控制的系统和方法 - Google Patents
用于虚拟硬件控制的系统和方法 Download PDFInfo
- Publication number
- CN109313569B CN109313569B CN201780036229.2A CN201780036229A CN109313569B CN 109313569 B CN109313569 B CN 109313569B CN 201780036229 A CN201780036229 A CN 201780036229A CN 109313569 B CN109313569 B CN 109313569B
- Authority
- CN
- China
- Prior art keywords
- virtual
- driver
- hardware
- device driver
- container
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
一种用于虚拟硬件控制的系统和方法,该方法包括:控制器从用于用户设备上的至少一个硬件资源的至少一个硬件设备驱动程序访问第一驱动程序消息,所述至少一个硬件设备驱动程序位于所述用户设备的操作系统上的内核空间中,所述控制器将所述第一驱动程序消息发送至第一虚拟设备驱动程序,所述第一虚拟设备驱动程序位于所述内核空间中,以及所述第一虚拟设备驱动程序将所述第一驱动程序消息转发至第一虚拟容器,所述第一虚拟容器是所述操作系统的所述内核空间外的第一用户空间。
Description
交叉申请
本申请发明名称为“用于虚拟硬件控制的系统和方法(System and Method forVirtual Hardware Control)”的美国专利申请案第15/180,568号的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明大体上涉及操作系统,并且在特定实施例中,涉及用于虚拟硬件控制的系统和方法。
背景技术
通常,虚拟系统具有在操作系统级虚拟化的多个用户空间实例。当今的许多设备,例如智能手机、平板电脑和云计算系统,都是虚拟化的,以包括若干用户空间实例,这使得设备上的软件的粒度更大、对所述软件的控制更强。尽管典型的操作系统包括一个内核空间和一个用户空间实例,但是虚拟化系统可包括一个内核空间和几个用户空间实例(有时称为虚拟容器或简称为容器)。虚拟化系统允许将每个虚拟容器隔离;然而,每个虚拟容器可能仍然需要访问运行操作系统的设备上的硬件资源。
发明内容
根据本发明的一实施例,方法包括:控制器从用于用户设备上的至少一个硬件资源的至少一个硬件设备驱动程序访问第一驱动程序消息,所述至少一个硬件设备驱动程序位于所述用户设备的操作系统上的内核空间中;所述控制器将所述第一驱动程序消息发送至第一虚拟设备驱动程序,所述第一虚拟设备驱动程序位于所述内核空间中;以及所述第一虚拟设备驱动程序将所述第一驱动程序消息转发至第一虚拟容器,所述第一虚拟容器是所述操作系统的所述内核空间外的第一用户空间。因此,即使虚拟容器彼此隔离也仍然能够访问所述用户设备上的硬件资源。
根据本发明的一实施例,方法包括:资源管理器接收阻止第一虚拟容器访问硬件资源的请求,所述第一虚拟容器是操作系统上的第一用户空间;控制器从用于所述硬件资源的硬件设备驱动程序访问驱动程序消息,所述硬件设备驱动程序位于所述操作系统上的内核空间,所述第一用户空间位于所述内核空间外;所述资源管理器阻止将所述驱动程序消息中的所述至少一个传输至所述第一虚拟容器;以及所述控制器将所述至少一个驱动程序消息发送至不同于所述第一虚拟容器的第二虚拟容器,所述第二虚拟容器是所述内核空间外的所述操作系统上的第二用户空间。
根据本发明的一实施例,操作系统包括:内核空间,包括:至少一个用于访问和配置硬件资源的硬件设备驱动程序;以及虚拟设备驱动程序,用于访问和配置所述至少一个硬件设备驱动程序的功能子集;第一用户空间,包括:用于访问所述虚拟设备驱动程序的进程;以及第二用户空间,包括:控制器,用于在所述虚拟驱动程序和所述至少一个硬件设备驱动程序之间转发驱动程序消息。
各种实施例可以实现优点。可以通过更通用的硬件设备虚拟化来增加操作系统平台支持。虚拟设备驱动程序的使用可允许通常仅由一个虚拟容器(例如,音频设备)访问的硬件资源由多个虚拟容器共享。本发明的各方面可以满足各种企业网场景中的移动设备管理(Mobile Device Management,MDM)要求。将虚拟容器中的应用或业务限制为使用虚拟设备驱动程序可以通过保护内核空间中的硬件设备驱动程序来减少所述操作系统的攻击表面。所述攻击表面也可以通过控制所述虚拟设备驱动程序和过滤设备访问操作来减少。
附图说明
为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,其中:
图1是具有虚拟硬件的操作系统的框图;
图2是具有虚拟硬件的操作系统的框图;
图3是虚拟硬件控制方法的流程图;
图4是具有虚拟硬件的操作系统的框图;
图5是具有虚拟硬件的操作系统的框图;
图6是虚拟硬件控制方法的流程图;以及
图7是处理系统的图。
具体实施方式
图1是具有虚拟硬件的操作系统100的框图。操作系统100包括内核110、主机容器120和虚拟容器130、140。操作系统100在用户设备(未示出)上运行。操作系统100使用操作系统级虚拟化,使得操作系统100包括一个内核110和多个虚拟容器130、140。操作系统100可以是用户设备上的生态系统,例如Android、Windows或IOS。用户设备包括由虚拟容器130、140共享的硬件资源或特征(未示出)。共享硬件资源可包括例如音频、视频、全球定位系统(global positioning system,GPS)、键盘、鼠标或触摸屏设备。
在一些实施例中,用户设备是与企业网相关联的设备,企业网具有自带设备办公(bring your own device,BYOD)或公司拥有的、个人启用的(corporate-ownedpersonally enabled,COPE)设备策略。在COPE和BYOD场景中,需要一种机制来管理和控制每个虚拟容器对硬件资源的访问。例如,该机制可以是移动设备管理(Mobile DeviceManagement,MDM)。在此类实施例中,虚拟容器130、140用于满足这些策略要求。例如,在一些实施例中,虚拟容器130被配置有企业安全策略,而虚拟容器140被配置成没有企业安全策略;然后,用户设备基于各种标准选择要使用的虚拟容器130、140中的一个。例如,虚拟容器130可以在用户设备在工作地点时或在工作时间使用,虚拟容器140可以在用户设备在非工作地点时或在非工作时间使用。
在用户设备处于BYOD或COPE环境中的实施例中,用户设备可以由诸如MDM系统的中央设备策略或管理系统来控制或管理。中央设备管理系统可以管理企业网上的许多用户设备。管理系统可以控制或限制对用户设备的硬件资源的访问。虚拟容器130、140也可以由设备管理系统管理。例如,设备管理系统可以启动、停止、切换、停机或恢复虚拟容器130、140,并且可以执行或终止虚拟容器130、140中的进程或任务。
内核110包括内核空间组件,诸如硬件设备驱动程序112和虚拟设备驱动程序114、116。在一些实施例中,内核110是类似Unix的内核,例如Android或GNU/Linux。硬件设备驱动程序112访问或控制用户设备上的硬件特征。硬件设备驱动程序112可以是可加载的内核模块,或者静态地连接至内核110。尽管对于Android内核各种实施例都有描述,但是应理解,可以用广泛多种的操作系统内核来实现实施例虚拟化系统和方法。实施例技术能在具有部署的内核级虚拟容器的任何平台上使用,不限于Android平台。
虚拟设备驱动程序114、116在硬件设备驱动程序112与虚拟容器130、140之间转发驱动程序消息。驱动程序消息可包括来自硬件设备驱动程序112的数据、事件和状态更新。内核110包括用于每个虚拟容器130、140的虚拟设备驱动程序114、116。虚拟容器130、140访问虚拟设备驱动程序114、116,而不是直接访问硬件设备驱动程序112。虚拟容器130、140以它们访问硬件设备驱动程序112的相同方式访问虚拟设备驱动程序114、116。将硬件设备驱动程序112虚拟化至多个设备节点(例如,虚拟设备驱动程序114、116)允许虚拟容器130、140共享通常只能从单个虚拟容器访问的硬件资源。例如,音频设备可仅由单个虚拟容器访问以进行音频回放,但虚拟设备驱动程序114、116的使用允许两个虚拟容器130、140同时进行音频回放。进一步,将虚拟容器130、140的设备访问操作隔离至独立的设备节点可以向内核110提供设备访问控制和保护的附加机会。在一些实施例中,对设备节点的访问可以由设备管理系统来控制。
主机容器120包括用于与硬件设备驱动程序112交互的业务和功能,诸如虚拟设备驱动程序控制器122。虚拟设备驱动程序控制器122在虚拟设备驱动程序114、116和硬件设备驱动程序112之间转发驱动程序消息。虚拟设备驱动程序控制器122还操控硬件设备驱动程序112。虚拟设备驱动程序控制器122可限制从虚拟容器130、140对硬件设备驱动程序112的访问。如下文所进一步论述,虚拟设备驱动程序控制器122可过滤虚拟容器130、140中的一些或全部对硬件设备驱动程序112的功能子集的访问,或可完全阻止对硬件设备驱动程序112的访问。主机容器120还可包括用于与中央设备管理系统交互的业务。在一些实施例中,虚拟设备驱动程序控制器122由中央设备管理系统配置。尽管在主机容器120中示出了虚拟设备驱动程序控制器122,但是应理解,虚拟设备驱动程序控制器122是可以位于另一用户空间或内核110中的业务。
虚拟容器130、140是在内核110上运行的用户空间容器。虚拟容器130、140共享内核110,但具有用户空间隔离。因此,虚拟容器130、140的其中一个进程在其它虚拟容器中不会看到其它进程或资源。在内核110是GNU/Linux内核的实施例中,虚拟容器130、140可以运行不同的Linux分布,例如Ubuntu、Red Hat、Debian等。在操作系统100是公共的基于内核的平台的实施例中,虚拟容器130、140可以是基于相同内核的操作系统的不同版本,诸如Android或Sailfish。在此类实施例中,平台的每个版本可以在不同的虚拟容器130、140中同时运行。在内核110是BSD或XNU内核的实施例中,虚拟容器130、140可以是不同的对象。虚拟容器130、140包括硬件抽象层(hardware abstraction layer,HAL)132、142和进程134、144。
HAL 132、142向用户设备的硬件资源提供抽象接口。HAL 132、142包括用于与硬件资源通信的应用和业务的应用程序接口(application program interface,API)。HAL132、142通过虚拟设备驱动程序114、116访问硬件资源。通过虚拟设备驱动程序114、116访问硬件,而不是直接访问硬件设备驱动程序112,可以应用附加访问控制来限制虚拟容器130、140可以访问的硬件资源。
进程134、144在虚拟容器130、140中执行不同的线程或任务,并且可以执行不同的功能。进程134、144可以是由用户或业务操作的软件。进程134、144通过HAL 132、142、虚拟设备驱动程序114、116和虚拟设备驱动程序控制器122访问硬件设备驱动程序112。在硬件设备驱动程序112用于GPS设备的实施例中,硬件设备驱动程序112与GPS设备交互以获取位置数据,然后将数据发送至虚拟设备驱动程序控制器122。虚拟设备驱动程序控制器122然后将数据发送至虚拟设备驱动程序114、116中的每一个。然后,HAL 132、142访问虚拟设备驱动程序114、116,并且进程134、144从HAL 132、142接收位置数据。在硬件设备驱动程序112用于音频设备的实施例中,虚拟设备驱动程序控制器122从每个虚拟容器130、140接收音频信号,并将信号转发至硬件设备驱动程序112。在此类实施例中,虚拟设备驱动程序控制器122还可以包括流混合器或复用器,用于混合来自每个虚拟容器130、140的音频信号。
通过虚拟设备驱动程序114、116和虚拟设备驱动程序控制器122来代理驱动程序消息,虚拟容器130、140可以共享对硬件设备驱动程序112的访问。进一步,可以集中控制虚拟容器130、140对硬件设备驱动程序112的访问。例如,对于虚拟容器130、140中的一些或全部,可以启用、禁用或过滤用于特定资源的驱动程序消息。
图2是具有虚拟硬件的操作系统200的框图。操作系统200类似于操作系统100,不同之处在于内核110包括多个设备驱动程序202、204,并且主机容器120包括支持多个设备驱动程序的虚拟设备驱动程序控制器206。设备驱动程序202、204中的每一个类似于硬件设备驱动程序112(上文所论述),但用于不同设备。在一些实施例中,设备驱动程序202、204用于相同设备类的设备,并且可以在相同的内核空间中。例如,设备驱动程序202可以用于鼠标,并且设备驱动程序204可以用于键盘。还可以有用于访问例如触摸板、触摸屏、操纵杆的其它设备驱动程序等。设备类中的一些或所有硬件设备驱动程序可以由虚拟设备驱动程序控制器206聚合在一起。在一些实施例中,设备驱动程序202、204用于不同设备类的设备。
虚拟设备驱动程序控制器206类似于虚拟设备驱动程序控制器122。然而,虚拟设备驱动程序控制器206不是访问一个设备驱动程序,而是聚合和访问两个设备驱动程序202、204。虚拟设备驱动程序114、116可以通过虚拟设备驱动程序控制器206访问两个设备驱动程序202、204,并且可被称为聚合虚拟设备驱动程序。继续上述实例,虚拟设备驱动程序控制器206通过设备驱动程序202访问鼠标,并通过设备驱动程序204访问键盘。然后虚拟设备驱动程序控制器206聚合鼠标和键盘驱动程序消息,并将它们发送至虚拟设备驱动程序114、116中的每一个。HAL 132、142访问虚拟设备驱动程序114、116,并且进程134、144从虚拟设备驱动程序114、116接收用于输入子系统的驱动程序消息。因此虚拟设备驱动程序控制器206为输入子系统而不是为各个设备提供驱动程序控制器。将硬件设备驱动程序结合至单个虚拟设备驱动程序和控制器可以减少虚拟设备驱动程序的多样性,从而减少系统的开销。
图3是虚拟硬件控制方法300的流程图。虚拟硬件控制方法300可以指示在操作系统100或操作系统200中发生的操作。
首先,向虚拟设备驱动程序发送驱动程序消息(步骤302)。从虚拟容器发送驱动程序消息。驱动程序消息可以由HAL发送,HAL以与将驱动程序消息发送至硬件设备驱动程序相同的方式将驱动程序消息发送至虚拟设备驱动程序。
接下来,将驱动程序消息中继至虚拟设备驱动程序控制器(步骤304)。具体地说,虚拟设备驱动程序从HAL接收驱动程序消息并将其转发至虚拟设备驱动程序控制器。虚拟设备驱动程序控制器可以在与虚拟设备驱动程序相同或不同的空间中。
接下来,在内核空间中访问硬件设备驱动程序(步骤306)。硬件设备驱动程序由虚拟设备驱动程序控制器访问。虚拟设备驱动程序控制器可以访问一个硬件设备驱动程序,或者如果它已经聚合了多个设备,则可以访问一个或多个硬件设备驱动程序。
图4是具有虚拟硬件的操作系统400的框图。操作系统400类似于操作系统100,不同之处在于主机容器120还包括容器和资源管理器(CRM)402以及管理业务404。CRM 402管理并控制由虚拟容器130、140对硬件资源的访问,并且有时简称为“资源管理器”。例如,CRM402可阻止一个或多个虚容器130、140访问特定硬件资源。或者,CRM 402可限制一个或多个虚拟容器130、140访问硬件资源的功能子集。CRM 402还可执行一些虚拟容器管理功能(诸如启动/停止虚拟容器)、获取/释放硬件资源、以及报告硬件资源的状态。
CRM 402是主容器120中的进程134、144可访问的业务。管理业务404还可以访问CRM 402。在一些实施例中,管理业务404是MDM业务。进程和业务与CRM 402一起执行管理动作,诸如禁用或限制对某些硬件资源的访问。CRM 402可使用多种机制与进程134、144和/或管理业务404通信。通信机制包括进程间通信机制,例如Android绑定器、Unix套接字或TCP/IP套接字;共享机制,如绑定安装或共享存储器等。不同的虚拟容器可以访问CRM 402上的不同管理特征。例如,虚拟容器130、140能够访问比管理业务404更少的管理特征。限制向虚拟容器130、140暴露管理特征可以减少操作系统100的攻击表面。
在图4所示的实施例中,CRM 402通过直接控制406虚拟设备驱动程序114、116与虚拟容器130、140之间的接口来控制对硬件资源的访问。例如,CRM 402可从管理业务404接收禁用用于虚容器130的键盘的命令。CRM 402通过将虚拟设备驱动程序114从虚拟容器130隐藏或断开来禁用键盘。这种直接控制可导致虚拟容器130中的系统不稳定性。例如,虚拟容器130中的HAL 132可以试图在虚拟设备驱动程序114被隐藏或断开之后继续访问虚拟设备驱动程序114。这种不稳定性局限于虚拟容器130,不会影响其它虚拟容器中的稳定性或处理。
图5是具有虚拟硬件的操作系统500的框图。操作系统500类似于操作系统400,不同之处在于CRM 402通过与虚拟设备驱动程序控制器122交互以控制对硬件资源的访问,而不是控制406用于虚拟设备驱动程序114、116的接口。CRM 402配置虚拟设备驱动程序控制器122以监视发往/来自硬件设备驱动程序112的请求/事件。CRM 402基于来自CRM 402的配置过滤禁止的请求/事件,并通过允许的请求/事件。过滤请求/事件允许CRM 402实现更粒度化的访问控制。例如,CRM 402可接收来自管理业务404的命令以禁用用于虚拟容器130的鼠标按钮。CRM 402配置虚拟设备驱动程序控制器122以过滤鼠标按钮点击事件并且不将它们传递至虚拟设备驱动程序114。鼠标对于两个虚容器130、140保持开启,但是对于虚容器130禁用鼠标按钮。在用户设备是移动或平板设备的实施例中,CRM 402可以接收用于禁用设备上的触摸屏的命令。
图6是虚拟硬件控制方法600的流程图。虚拟硬件控制方法600可以指示在操作系统500中发生的操作。
首先,虚拟设备驱动程序控制器接收来自硬件设备驱动程序的驱动程序消息(步骤602)。驱动程序消息可以是来自硬件资源的数据,例如GPS位置信息。虚拟设备驱动程序可以用于单个设备,或者可以是用于访问多个设备的聚合虚拟设备驱动程序。
如果为虚拟容器启用硬件资源(步骤604),则用于硬件资源的驱动程序消息被转发至用于虚拟容器的虚拟设备驱动程序(步骤606)。虚拟设备驱动程序将驱动程序消息转发至虚拟容器。如果例如CRM已经请求虚拟设备驱动程序控制器禁用用于虚拟容器的硬件资源,则可以由虚拟设备驱动程序控制器禁用硬件资源。
如果为虚拟容器禁用硬件资源(步骤604),则不将消息转发至虚拟设备驱动程序(步骤610)。例如,可以通过识别消息类型和目的地虚拟容器来过滤消息,并且如果为目的地虚拟容器禁用消息类型,则丢弃消息。如上所述,CRM可以启用和禁用硬件资源的某些功能。因此,对于硬件资源,只有一些驱动程序消息可以被过滤,而其它的则被传递至虚拟设备驱动程序和虚拟容器。
图7是处理系统700的图。处理系统700可用于执行本文所述的可安装在主机设备中的方法。如图所示,处理系统700包括处理器702、存储器704以及接口706-710,其可以(或可以不)如图7中所示的布置。处理器702可以是适用于执行计算和/或其它与处理相关的任务的任何组件或组件集合,且存储器704可以是用于存储编程和/或供处理器702执行的指令的任何组件或组件集合。在一实施例中,存储器704包括非瞬时性计算机可读介质。接口706、708、710可以是允许处理系统700与其它设备/组件和/或用户通信的任何组件或组件集合。例如,接口706、708、710中的一个或多个可以用于将数据、控制或管理信息从处理器702传送至安装在主机设备和/或远端设备上的应用程序。作为另一实例,接口706、708、710中的一个或多个可适于允许用户或用户设备(例如,个人计算机(personal computer,PC)等)与处理系统700交互/通信。处理系统700可包括图7中未描绘的额外组件,例如长期存储(例如,非易失性存储器等)。
在一些实施例中,处理系统700包括在接入电信网络或另外作为电信网络的部件的网络设备中。在一个实例中,处理系统700处于无线或有线电信网络中的网络侧设备中,网络侧设备例如基站、中继站、调度器、控制器、网关、路由器、应用程序服务器,或电信网络中的任何其它设备。在其它实施例中,处理系统700处于接入无线或有线电信网络的用户侧设备中,用户侧设备例如,移动站、用户设备(user equipment,UE)、个人计算机(personalcomputer,PC)、平板计算机、可穿戴式通信设备(例如,智能手表等),或适用于接入电信网络的任何其它设备。
应理解,在此提供的实施例方法的一个或多个步骤可以由对应的单元或模块来执行。例如,信号可以由传输单元或传输模块传输。信号可以由接收单元或接收模块接收。信号可以由处理单元或处理模块处理。其它步骤可以由访问单元/模块、发送单元/模块、配置单元/模块、接收单元/模块、复用单元/模块、阻止单元/模块、禁用单元/模块、过滤单元/模块、转发单元/模块和/或传输单元/模块来执行。各个单元/模块可以是硬件、软件或其组合。例如,一个或多个单元/模块可以是集成电路,例如现场可编程门阵列(fieldprogrammable gate array,FPGA)或专用集成电路(application-specific integratedcircuit,ASIC)。
虽然已参考说明性实施例描述了本发明,但此描述并不意图限制本发明。所属领域的技术人员在参考该描述后,将会明白说明性实施例的各种修改和组合,以及本发明其他实施例。因此,所附权利要求书意图涵盖任何此类修改或实施例。
Claims (23)
1.一种用于虚拟硬件控制的方法,其特征在于,包括:
控制器访问第一驱动程序消息,所述第一驱动程序消息来源于用户设备上的硬件资源的至少一个硬件设备驱动程序,所述至少一个硬件设备驱动程序位于所述用户设备的操作系统上的内核空间中,所述硬件资源由位于所述用户设备的多个虚拟容器共享;
所述控制器将所述第一驱动程序消息发送至第一虚拟设备驱动程序,所述第一虚拟设备驱动程序位于所述内核空间中,所述内核空间中包含多个与所述虚拟容器一一对应的多个虚拟设备驱动程序;以及
所述第一虚拟设备驱动程序将所述第一驱动程序消息转发至第一虚拟容器,所述第一虚拟容器是所述操作系统的所述内核空间外的第一用户空间,且所述第一虚拟容器是所述多个虚拟容器中的一个。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述控制器将所述第一驱动程序消息发送至第二虚拟设备驱动程序,所述第二虚拟设备驱动程序位于所述内核空间中;以及
所述第二虚拟设备驱动程序将所述第一驱动程序消息转发至第二虚拟容器,所述第二虚拟容器是不同于所述内核空间和所述第一用户空间的第二用户空间。
3.根据权利要求2所述的方法,其特征在于,所述至少一个硬件设备驱动程序用于全球定位系统设备。
4.根据权利要求1至3中任一项所述的方法,其特征在于,还包括:
所述第一虚拟容器使用所述第一虚拟设备驱动程序访问所述第一驱动程序消息,其中,所述第一虚拟设备驱动程序支持所述至少一个硬件设备驱动程序的功能子集。
5.根据权利要求4所述的方法,其特征在于,还包括:所述控制器配置所述至少一个硬件设备驱动程序,其中,所述控制器阻止所述第一虚拟容器配置所述至少一个硬件设备驱动程序。
6.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一虚拟设备驱动程序是用于设备类的聚合设备驱动程序,并且所述至少一个硬件资源是用于所述设备类的多个硬件资源。
7.根据权利要求6所述的方法,其特征在于,所述至少一个硬件设备驱动程序包括鼠标驱动程序和键盘驱动程序中的一个。
8.根据权利要求1至3中任一项所述的方法,其特征在于,还包括:
所述控制器接收来自所述第一虚拟容器的用于所述至少一个硬件设备驱动程序的第二驱动程序消息以及来自第二虚拟容器的用于所述至少一个硬件设备驱动程序的第三驱动程序消息;
所述控制器对所述第二驱动程序消息和所述第三驱动程序消息进行复用;以及
所述控制器将所述第二驱动程序消息和所述第三驱动程序消息发送至所述至少一个硬件设备驱动程序。
9.根据权利要求8所述的方法,其特征在于,所述至少一个硬件设备驱动程序是音频设备驱动程序。
10.一种用于虚拟硬件控制的方法,其特征在于,包括:
容器和资源管理器CRM接收阻止第一虚拟容器访问硬件资源的请求,所述第一虚拟容器是操作系统上的第一用户空间;
控制器从用于所述硬件资源的硬件设备驱动程序访问驱动程序消息,所述硬件设备驱动程序位于所述操作系统上的内核空间,所述第一用户空间位于所述内核空间外;
所述CRM阻止将所述驱动程序消息中的至少一个传输至所述第一虚拟容器;以及
所述控制器将所述至少一个驱动程序消息发送至不同于所述第一虚拟容器的第二虚拟容器,所述第二虚拟容器是所述内核空间外的所述操作系统上的第二用户空间,
所述方法还包括:
所述控制器将所述驱动程序消息传输至用于所述第一虚拟容器的第一虚拟设备驱动程序,所述第一虚拟设备驱动程序位于所述内核空间中;
其中,阻止将所述驱动程序消息中的所述至少一个传输至所述第一虚拟容器包括:所述CRM禁用所述第一虚拟设备驱动程序与所述第一虚拟容器之间的接口。
11.根据权利要求10所述的方法,其特征在于,当所述CRM接收的所述请求是阻止所述第一虚拟容器访问所述硬件资源的功能子集的请求时,所述阻止将所述驱动程序消息中的所述至少一个传输至所述第一虚拟容器包括:
所述控制器过滤与所述硬件资源的所述功能子集相关联的所述驱动程序消息中的所述至少一个;以及
所述控制器将未过滤的驱动程序消息发送至所述第一虚拟容器。
12.根据权利要求11所述的方法,其特征在于,还包括:
所述CRM将所述请求转发至所述控制器。
13.根据权利要求10至12中任一项所述的方法,其特征在于,将所述驱动程序消息中的所述至少一个发送至第二虚拟容器包括:
所述控制器将所述驱动程序消息中的所述至少一个传输至用于所述第二虚拟容器的第二虚拟设备驱动程序,所述第二虚拟设备驱动程序位于所述内核空间中;以及
所述第二虚拟设备驱动程序将所述驱动程序消息中的所述至少一个转发至所述第二虚拟容器。
14.根据权利要求10至12中任一项所述的方法,其特征在于,接收所述请求包括:
所述CRM从所述操作系统的容器中的业务接收所述请求。
15.根据权利要求14所述的方法,其特征在于,所述业务是设备管理业务。
16.根据权利要求14所述的方法,其特征在于,所述业务与所述CRM处于相同的用户空间中。
17.根据权利要求16所述的方法,其特征在于,所述业务和所述CRM在主机容器中。
18.根据权利要求14所述的方法,其特征在于,所述业务在所述第一虚拟容器或所述第二虚拟容器之一中。
19.根据权利要求10至12中任一项所述的方法,其特征在于,所述硬件资源是设备类,并且所述驱动程序消息中的所述至少一个来自用于所述设备类的多个硬件设备驱动程序。
20.一种操作系统,其特征在于,包括内核空间、多个第一用户空间,以及第二用户空间,其中:
所述内核空间,包括:
至少一个用于访问和配置硬件资源的硬件设备驱动程序;以及
多个虚拟设备驱动程序,用于访问和配置所述至少一个硬件设备驱动程序的功能子集;
所述多个第一用户空间,包括:
进程,用于访问所述虚拟设备驱动程序,其中所述多个虚拟设备驱动程序与所述多个第一用户空间一一对应;
所述第二用户空间,包括:
控制器,用于在所述虚拟设备驱动程序和所述至少一个硬件设备驱动程序之间转发驱动程序消息。
21.根据权利要求20所述的操作系统,其特征在于,所述第二用户空间还包括资源管理器,用于从设备管理器接收限制所述第一用户空间对所述硬件资源的访问的请求,以及配置所述控制器根据所述请求过滤所述驱动程序消息。
22.一种用户设备,其特征在于,包括:
处理器;以及;
非瞬时性计算机可读存储介质,存储用于通过所述处理器执行的编程,所述编程包括用以进行以下操作的指令:
控制器访问第一驱动程序消息,所述第一驱动程序消息来源于所述用户设备上的硬件资源的至少一个硬件设备驱动程序,所述至少一个硬件设备驱动程序位于所述用户设备的操作系统上的内核空间中,所述硬件资源由位于所述用户设备的多个虚拟容器共享;
所述控制器将所述第一驱动程序消息发送至第一虚拟设备驱动程序,所述第一虚拟设备驱动程序位于所述内核空间中,所述内核空间中包含多个与所述虚拟容器一一对应的多个虚拟设备驱动程序;以及
所述第一虚拟设备驱动程序将所述第一驱动程序消息转发至第一虚拟容器,所述第一虚拟容器是所述操作系统的所述内核空间外的第一用户空间,且所述第一虚拟容器是所述多个虚拟容器中的一个。
23.一种用户设备,其特征在于,包括:
处理器;以及
非瞬时性计算机可读存储介质,存储用于通过所述处理器执行的编程,所述编程包括用以进行以下操作的指令:
容器和资源管理器CRM接收阻止第一虚拟容器访问所述用户设备上的硬件资源的请求,所述第一虚拟容器是所述用户设备上运行的操作系统上的第一用户空间;
控制器从用于所述硬件资源的硬件设备驱动程序访问驱动程序消息,所述硬件设备驱动程序位于所述操作系统上的内核空间,所述第一用户空间位于所述内核空间外;
所述CRM阻止将所述驱动程序消息中的至少一个传输至所述第一虚拟容器;以及
所述控制器将所述至少一个驱动程序消息发送至不同于所述第一虚拟容器的第二虚拟容器,所述第二虚拟容器是所述内核空间外的所述操作系统上的第二用户空间;
所述控制器将所述驱动程序消息传输至用于所述第一虚拟容器的第一虚拟设备驱动程序,所述第一虚拟设备驱动程序位于所述内核空间中;
其中,阻止将所述驱动程序消息中的所述至少一个传输至所述第一虚拟容器包括:所述CRM禁用所述第一虚拟设备驱动程序与所述第一虚拟容器之间的接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011155539.6A CN112416511B (zh) | 2016-06-13 | 2017-06-09 | 用于虚拟硬件控制的系统和方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/180,568 US10282210B2 (en) | 2016-06-13 | 2016-06-13 | System and method for virtual hardware control |
US15/180,568 | 2016-06-13 | ||
PCT/CN2017/087682 WO2017215518A1 (en) | 2016-06-13 | 2017-06-09 | System and method for virtual hardware control |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011155539.6A Division CN112416511B (zh) | 2016-06-13 | 2017-06-09 | 用于虚拟硬件控制的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109313569A CN109313569A (zh) | 2019-02-05 |
CN109313569B true CN109313569B (zh) | 2020-11-10 |
Family
ID=60572683
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780036229.2A Active CN109313569B (zh) | 2016-06-13 | 2017-06-09 | 用于虚拟硬件控制的系统和方法 |
CN202011155539.6A Active CN112416511B (zh) | 2016-06-13 | 2017-06-09 | 用于虚拟硬件控制的系统和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011155539.6A Active CN112416511B (zh) | 2016-06-13 | 2017-06-09 | 用于虚拟硬件控制的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10282210B2 (zh) |
EP (1) | EP3461286A4 (zh) |
CN (2) | CN109313569B (zh) |
WO (1) | WO2017215518A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10405182B2 (en) * | 2016-06-30 | 2019-09-03 | Huawei Technologies Co., Ltd. | Systems devices and processes to support mobile device management of multiple containers in virtualization environment |
US10846123B2 (en) * | 2018-09-25 | 2020-11-24 | Microsoft Technology Licensing, Llc | Audio rendering from virtual machine |
CN110059453B (zh) * | 2019-03-13 | 2021-02-05 | 中国科学院计算技术研究所 | 一种容器虚拟化安全加固装置及方法 |
CN110399174B (zh) * | 2019-07-29 | 2023-05-02 | 普华基础软件股份有限公司 | 一种设备管理系统及方法 |
CN112905243B (zh) * | 2019-11-15 | 2022-05-13 | 成都鼎桥通信技术有限公司 | 一种同时运行双系统的方法和装置 |
CN111885170B (zh) * | 2020-07-23 | 2022-03-11 | 平安科技(深圳)有限公司 | 物联网控制系统的处理方法、系统、云端服务器及介质 |
CN113190294A (zh) * | 2021-04-07 | 2021-07-30 | 北京鲸鲮信息系统技术有限公司 | Linux系统调用Android HIDL接口的方法、装置及存储介质 |
CN113190280A (zh) * | 2021-04-07 | 2021-07-30 | 北京鲸鲮信息系统技术有限公司 | Linux系统调用Android HAL动态库的方法、装置及存储介质 |
CN113377529B (zh) * | 2021-05-24 | 2024-04-19 | 阿里巴巴创新公司 | 一种智能加速卡及基于智能加速卡的数据处理方法 |
CN114564241B (zh) * | 2022-02-25 | 2023-07-25 | 苏州浪潮智能科技有限公司 | 硬件设备的访问方法、装置、计算机设备和存储介质 |
CN117075984B (zh) * | 2023-10-17 | 2023-12-26 | 海马云(天津)信息技术有限公司 | 模块处理方法、装置、通信设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101071387A (zh) * | 2006-09-08 | 2007-11-14 | 华南理工大学 | 一种基于虚拟机的驱动程序加固方法 |
US8028040B1 (en) * | 2005-12-20 | 2011-09-27 | Teradici Corporation | Method and apparatus for communications between a virtualized host and remote devices |
CN103186425A (zh) * | 2011-12-31 | 2013-07-03 | 联想(北京)有限公司 | 获得硬件的资源方法、获得软件资源的方法及电子设备 |
CN104471553A (zh) * | 2011-12-22 | 2015-03-25 | 英特尔公司 | 用于共享地址装置的聚合的方法、装置和系统 |
CN104834576A (zh) * | 2015-04-30 | 2015-08-12 | 捷鼎国际股份有限公司 | 基于虚拟机进行硬件装置测试的计算机系统及方法 |
CN104834613A (zh) * | 2015-04-30 | 2015-08-12 | 捷鼎国际股份有限公司 | 用以存取虚拟机的计算机系统及方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050246453A1 (en) * | 2004-04-30 | 2005-11-03 | Microsoft Corporation | Providing direct access to hardware from a virtual environment |
US7581229B2 (en) * | 2005-03-11 | 2009-08-25 | Microsoft Corporation | Systems and methods for supporting device access from multiple operating systems |
US20070067769A1 (en) | 2005-08-30 | 2007-03-22 | Geisinger Nile J | Method and apparatus for providing cross-platform hardware support for computer platforms |
US8001553B2 (en) * | 2007-06-25 | 2011-08-16 | Microsoft Corporation | Aggregate computer system via coupling of computing machines |
US8065677B2 (en) * | 2008-03-26 | 2011-11-22 | Intel Corporation | Method, device, and system for seamless migration of a virtual machine between platforms with different I/O hardware |
US8254903B2 (en) * | 2009-01-30 | 2012-08-28 | Cassis International Pte. Ltd. | System and method for remotely operating a wireless device using a server and client architecture |
US8627413B2 (en) * | 2009-11-23 | 2014-01-07 | Symantec Corporation | System and method for authorization and management of connections and attachment of resources |
WO2012019114A1 (en) | 2010-08-06 | 2012-02-09 | Citrix Systems, Inc. | Systems and methods for a para-virtualized driver in a multi-core virtual packet engine device |
US8561065B2 (en) | 2010-11-15 | 2013-10-15 | International Business Machines Corporation | Virtualization of vendor specific network interfaces of self-virtualizing input/output device virtual functions |
US9146785B2 (en) * | 2011-09-14 | 2015-09-29 | Microsoft Technology Licensing, Llc | Application acceleration in a virtualized environment |
US20140108793A1 (en) * | 2012-10-16 | 2014-04-17 | Citrix Systems, Inc. | Controlling mobile device access to secure data |
US9380456B1 (en) * | 2013-01-22 | 2016-06-28 | Hypori, Inc. | System, method and computer program product for dynamically switching operating systems in a virtual mobile device platform |
US9075985B2 (en) * | 2013-05-31 | 2015-07-07 | Microsoft Technology Licensing, Llc | Restricted transmogrifying driver platform |
CN104424034A (zh) * | 2013-09-04 | 2015-03-18 | 华为技术有限公司 | 硬件资源访问方法及装置 |
CN104598309B (zh) | 2014-12-31 | 2017-12-22 | 中科创达软件股份有限公司 | 基于os虚拟化的多模式os的系统和其创建、切换方法 |
-
2016
- 2016-06-13 US US15/180,568 patent/US10282210B2/en active Active
-
2017
- 2017-06-09 EP EP17812629.8A patent/EP3461286A4/en not_active Ceased
- 2017-06-09 CN CN201780036229.2A patent/CN109313569B/zh active Active
- 2017-06-09 CN CN202011155539.6A patent/CN112416511B/zh active Active
- 2017-06-09 WO PCT/CN2017/087682 patent/WO2017215518A1/en unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8028040B1 (en) * | 2005-12-20 | 2011-09-27 | Teradici Corporation | Method and apparatus for communications between a virtualized host and remote devices |
CN101071387A (zh) * | 2006-09-08 | 2007-11-14 | 华南理工大学 | 一种基于虚拟机的驱动程序加固方法 |
CN104471553A (zh) * | 2011-12-22 | 2015-03-25 | 英特尔公司 | 用于共享地址装置的聚合的方法、装置和系统 |
CN103186425A (zh) * | 2011-12-31 | 2013-07-03 | 联想(北京)有限公司 | 获得硬件的资源方法、获得软件资源的方法及电子设备 |
CN104834576A (zh) * | 2015-04-30 | 2015-08-12 | 捷鼎国际股份有限公司 | 基于虚拟机进行硬件装置测试的计算机系统及方法 |
CN104834613A (zh) * | 2015-04-30 | 2015-08-12 | 捷鼎国际股份有限公司 | 用以存取虚拟机的计算机系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109313569A (zh) | 2019-02-05 |
US20170357516A1 (en) | 2017-12-14 |
CN112416511B (zh) | 2024-02-09 |
EP3461286A4 (en) | 2019-11-20 |
US10282210B2 (en) | 2019-05-07 |
WO2017215518A1 (en) | 2017-12-21 |
EP3461286A1 (en) | 2019-04-03 |
CN112416511A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109313569B (zh) | 用于虚拟硬件控制的系统和方法 | |
EP2891103B1 (en) | Apparatus and method for mobile communications and computing | |
US11720393B2 (en) | Enforcing compliance rules using guest management components | |
US9622068B2 (en) | System, method and computer program product for connecting roaming mobile devices to a virtual device platform | |
US10025612B2 (en) | Enforcing compliance rules against hypervisor and host device using guest management components | |
US9503475B2 (en) | Self-adaptive and proactive virtual machine images adjustment to environmental security risks in a cloud environment | |
CN106776067B (zh) | 多容器系统中系统资源的管理方法及管理装置 | |
TWI620126B (zh) | 用於擴充針對虛擬資料中心之訪客電腦系統的服務的方法及電腦可讀取儲存媒體 | |
US8024806B2 (en) | Method, apparatus and system for enabling a secure location-aware platform | |
EP3418932B1 (en) | Method, system, and device for securely handling virtual function driver communications with a physical function driver | |
US9076017B2 (en) | Hardware virtualization module for exclusive controlled access to CPU | |
US20210400051A1 (en) | Escalating User Privileges in Cloud Computing Environments | |
US9667703B1 (en) | System, method and computer program product for generating remote views in a virtual mobile device platform | |
US20210258208A1 (en) | Fast Provisioning in Cloud Computing Environments | |
US10116622B2 (en) | Secure communication channel using a blade server | |
US9183391B2 (en) | Managing device driver cross ring accesses | |
CN109526249A (zh) | 用于管理通信设备的通信接口的设备和方法 | |
KR20230146534A (ko) | 컨테이너 애플리케이션들에 대한 최소 클라우드 서비스액세스 권한들을 자동으로 구성하기 위한 기술들 | |
Kiszka et al. | Domain and type enforcement for real-time operating systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |