WO2015032312A1 - 硬件资源访问方法及装置 - Google Patents

硬件资源访问方法及装置 Download PDF

Info

Publication number
WO2015032312A1
WO2015032312A1 PCT/CN2014/085793 CN2014085793W WO2015032312A1 WO 2015032312 A1 WO2015032312 A1 WO 2015032312A1 CN 2014085793 W CN2014085793 W CN 2014085793W WO 2015032312 A1 WO2015032312 A1 WO 2015032312A1
Authority
WO
WIPO (PCT)
Prior art keywords
privileged
access
application
instruction
hardware
Prior art date
Application number
PCT/CN2014/085793
Other languages
English (en)
French (fr)
Inventor
郑晨
侯瑞华
詹剑锋
张立新
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP14843079.6A priority Critical patent/EP3035192B1/en
Publication of WO2015032312A1 publication Critical patent/WO2015032312A1/zh
Priority to US15/059,380 priority patent/US9529650B2/en

Links

Images

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/681Multi-level TLB, e.g. microTLB and main TLB

Definitions

  • the one or more rights of the privileged instruction for accessing the hardware resource are configured, so that the privileged instruction is not required to be trapped in the kernel when the user mode application is used.
  • Access to hardware resources including:
  • the kernel determines whether the application has permission to invoke the privileged API to access hardware resources, and if so, executes the privileged instructions encapsulated in the privileged API invoked by the application at the code level.
  • the performing the The privileged instructions encapsulated in the privileged API including:
  • the configuration module is specifically configured to:
  • processor access instruction or a memory resource access instruction, or a TLB access instruction, or an interrupt access instruction, or a network access instruction, or an I/O hardware device access instruction, or a disk access instruction, or a register read/write instruction One.
  • an embodiment of the present invention provides a computer system, including:
  • FIG. 3 is a structural diagram of a hardware resource access apparatus according to Embodiment 3 of the present invention.
  • FIG. 5 is a structural diagram of a computer system according to Embodiment 4 of the present invention.
  • FIG. 6 is a schematic structural diagram of software and hardware in a computer system according to an embodiment of the present invention.
  • FIG. 6 is a flowchart of a first embodiment of a hardware resource access method according to the present invention.
  • the hardware resource access method provided by the embodiment of the present invention may be applied to a computer system as shown in FIG. 5 (which may include one or more processors, one or Multiple memories), the computer system can be located on one physical host or distributed on multiple physical hosts.
  • the computer system can be located on one or more computers (ie, computing nodes), portable computers, handheld devices (eg, cell phones, PADs, etc.), servers, and the like.
  • the computer hardware and software logic structure can be seen in FIG. 6.
  • the computing node includes hardware resources (ie, hardware layers), where hardware resources include processors (such as CPU and GPU), and of course, may also include memory, input. /Output devices, network interfaces, etc., as well as kernel space above the hardware layer, and user-space space above the kernel space, it should be noted that the kernel space here includes the kernel, etc., where the user space includes some applications. .
  • Step 101 Configure one or more privileged instructions for accessing hardware resources, so that the privileged instructions are used by the user mode application to access the hardware resources without being trapped in the kernel, wherein the application is called at the code level.
  • a privileged application programming interface API located in user mode and encapsulating privileged instructions;
  • Step 102 Execute the privileged instruction encapsulated in the privileged API called by the application at the code level, so that the application can access the hardware resource without being trapped in the kernel.
  • Embodiment 2 is a flowchart of Embodiment 2 of a method for accessing a hardware resource according to the present invention.
  • this embodiment provides an embodiment for implementing a privileged instruction for setting access to a hardware resource, and adds a user.
  • the program access API security mechanism as shown in Figure 2, the method specifically includes:
  • This embodiment may be implemented based on a processor supporting hardware virtualization (hereinafter also referred to as "virtualized hardware"), for example, a processor that supports hardware virtualization using Intel's Virtualization Technology (VT) scheme, or AMD's A processor that supports hardware virtualization with a Secure Virtual Machine (SVM) solution.
  • processors will provide the associated rights configuration interface to configure the permissions of certain privileged instructions.
  • the virtualization hardware expands the original hardware privilege level. Based on the original ring 0 to ring 4 privilege level, VMX is added. Root mode and VMX non-root mode. And the data structure of the programmable hardware--VMCS (Virtual-Machine Control Structure) is added to determine and set the range of instructions that can be executed at different hardware privilege levels.
  • This data structure VMCS can be considered as "The interface corresponding to the command permission configuration corresponding to the processor".
  • the VMX root mode is equivalent to the traditional ring 0 privilege level, and the setting of the VMCS, that is, the application executable instructions on the VMX non-root mode, can only be set and initialized in the application on the VMX root mode.
  • a trap occurs on the hardware and falls into the VMX root mode for processing. Therefore, using existing virtualization hardware, initialize and set the virtualization hardware in the kernel, set the kernel to Host mode, which is the root virtualization mode (VMX root mode), and set the application to user mode ( Guest mode), which is the non-root virtualization mode (VMX non-root mode).
  • the application can directly execute the instructions that are allowed by the kernel, and does not need to fall into the kernel; otherwise (if the application execution instruction is not allowed, or the instruction operation object If the scope exceeds the kernel's prior permission, it will fall into the kernel, and the kernel will perform the decision execution or exception handling.
  • the kernel may determine, according to the current physical resource allocation situation, whether the request and the instruction for accessing the privileged API are passed through or partially through the application.
  • the scope of the operation object indicates that the application has the right to invoke the privileged API to access hardware resources.
  • the instruction set of the low-level API is determined by the kernel setting, so in order to avoid the hardware resource instruction that calls the low-level API simultaneously with a large number of applications accessing the low-level API permission, the system has high processing overhead and resources. Access violations and even crashes can be determined by the kernel based on a predetermined policy to determine whether an application with access to low-level API permissions directly executes instructions in the low-level API.
  • the predetermined policy may be set by the kernel according to factors such as the credibility of the application or the state of use of the hardware resources, and the settings are all known to those skilled in the art, and are not described herein again. If the instructions executed by the application have been set to allow execution without being trapped in the kernel, they can be executed directly. If the instruction is not set into the privileged API set, the application will cause hardware trapping during execution and the kernel will handle exceptions.
  • Step 205 directly execute the privileged instruction.
  • virtualization hardware (such as Intel's VT-x technology-based processor, AMD's SVM-based processor, etc.) is set in advance to ensure that the execution of some privileged instructions does not need to be in kernel state in hardware.
  • the privileged instructions for accessing all hardware resources are encapsulated into an API, and the API is deployed in the user space, so that when the application accesses the hardware resources, the hardware can be directly accessed without falling into the kernel, the access speed is increased, and the overhead of the kernel is reduced.
  • access authorization to the application in the kernel and the kernel according to the judgment of the policy, the security and reliability of the application access hardware are increased, and the security problem caused by bypassing the kernel access is avoided.
  • the hardware when the privileged instruction invoked by the application does not belong to the privileged API set initialized by the kernel, the hardware will fall into the kernel privilege level of the kernel and cause kernel exception handling.
  • the kernel determines whether to execute the requested instruction or prevent the execution of the instruction in the kernel according to the execution request of the instruction and the existing resource allocation status, so as to ensure that the application does not cause conflicts when accessing the hardware resources, and the security mechanism is improved.
  • an embodiment of the present invention provides a hardware resource access apparatus 40, including:
  • the configuration module 41 is configured to configure one or more rights for accessing the privileged instructions of the hardware, so that the privileged instructions can be used by the user mode application to access the hardware resources without being trapped in the kernel, wherein the application
  • the program invokes a privileged application programming interface API located at the user level and encapsulating the privileged instruction at the code level;
  • the execution module 42 is configured to execute the privileged instruction encapsulated in the privileged API invoked by the application at a code level, so that the application can access hardware resources without being trapped in a kernel.
  • the configuration module specific 41 is used to:
  • the interface corresponding to the instruction permission configuration corresponding to the processor supporting the hardware virtualization is invoked to configure the permission of the privileged instruction, so that the privileged instruction can be used by the user mode application to access the hardware resource without being trapped in the kernel.
  • the embodiment of the present invention further includes:
  • the determining module 43 is configured to determine, by the kernel, whether the application has the right to invoke the privileged API to access the hardware resource after the configuration module configures the permission of the one or more hardware access privileged instructions, and if so, triggers the The execution module executes the privileged instruction encapsulated in the privileged API invoked by the application at a code level.
  • the determining module 43 is specifically configured to: if the application applies to the kernel to invoke the privileged API to directly access the hardware resource, determine, according to the current hardware resource allocation situation, whether the device passes or partially passes the application program according to the current hardware resource allocation situation.
  • the scope of the request and instruction operation object of the privileged API access if yes, indicates that the application has the right to invoke the privileged API to access the hardware resource.
  • the privileged instruction in the embodiment of the present invention may be a processor access instruction, or a memory resource access instruction, or a TLB access instruction, or an interrupt access instruction, or a network access instruction, or an I/O hardware device access instruction, or a disk access.
  • the execution module is specifically configured to: after receiving the request for accessing the hardware resource of the application, determine, according to the kernel policy, whether the access hardware request of the application needs to be trapped in the kernel, and if not, directly execute The privileged instruction.
  • Each module in the embodiment of the present invention refers only to a logical division, which can be implemented based on existing computer hardware and software.
  • the computer includes a hardware device such as a processor (for example, a CPU), a memory, and the like, and the processor (for example, a CPU) reads.
  • the program code stored on the memory runs an operating system such as Linux, and the operating system may include different spaces such as kernel mode and user mode (see Fig. 6).
  • the function of a processor (such as a CPU) running an operating system may be regarded as a module in the embodiment to perform a corresponding function.
  • the hardware resource when the application program accesses the hardware resource by configuring the permission to access the feature instruction of the hardware resource, the hardware resource can be accessed by executing the privileged API called by the application program at the code level without being trapped in the kernel.
  • the hardware resources can be directly accessed by bypassing the kernel, and the problem of excessive system overhead caused by the user interface and the core state requiring multiple handovers in the prior art is solved to some extent. Reduce the system overhead of accessing hardware resources and improve processing efficiency.
  • an embodiment of the present invention provides a computer system, including:
  • processor 61 a processor 61, a memory 62, and a bus 63;
  • the processor and the memory complete communication with each other through a bus, the memory is used to store instructions to be executed, and the processor is configured to execute various access hardware resources described in Embodiments 1 and 2 by reading instructions stored in the memory. method.
  • the schematic diagram of the software running in the processor can be referred to FIG. 6.
  • the dotted line in FIG. 6 represents the software, which mainly includes user space and kernel space.
  • the user space runs the application 70 and has a privileged API 71.
  • the kernel space runs on the kernel of the operating system, and the privileged API can directly access the hardware resources without falling into the kernel.
  • the computer system in the embodiment of the present invention configures access to the feature information of the hardware resource, and when the application accesses the hardware resource, the execution of the privileged API called by the application program at the code level does not need to be trapped in the kernel.
  • Resources access in other words, can directly access the hardware resources bypassing the kernel, to some extent, in the prior art, accessing hardware resources needs to be trapped in the kernel, resulting in excessive system overhead caused by user state and core state switching. Problem, which reduces the overhead of accessing hardware resources and improves Processing efficiency.
  • embodiments of the present invention provide a non-volatile storage medium including instructions that are executable by a processor in a computer to perform an implementation by executing the instructions.
  • Various methods of accessing hardware resources as described in Examples 1 and 2.
  • the non-volatile storage medium in the embodiment of the present invention is configured, by configuring the right to access the feature instruction of the hardware resource, when the application accesses the hardware resource, executing the privileged API called by the application at the code level is encapsulated. You don't need to get into the kernel to access the hardware resources. In other words, you can bypass the kernel and directly access the hardware resources. To some extent, in the prior art, accessing the hardware resources needs to fall into the kernel, causing the user state and the core state to be multiple times. The problem of excessive system overhead caused by switching, thereby reducing the system overhead of accessing hardware resources and improving processing efficiency.

Abstract

一种硬件资源访问方法、装置及操作系统,该方法包括:配置一条或多条用于访问硬件的特权指令的权限,使得所述特权指令供用户态应用程序使用时不需要陷入内核即可对硬件资源进行访问,其中,所述应用程序在代码层面调用了位于用户态且封装有所述特权指令的特权应用程序编程接口API;执行所述应用程序在代码层面调用的所述特权API中封装的所述特权指令,从而使得所述应用程序不需要陷入内核即可对硬件资源进行访问。通过设定直接访问硬件资源的特权指令并封装成API部署在用户空间,以实现降低访问硬件资源的系统开销,提高处理效率。

Description

硬件资源访问方法及装置 技术领域
本发明实施例涉及计算机技术,尤其涉及一种硬件资源访问方法及装置。
背景技术
操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统的用户界面,输入命令。操作系统则对命令进行解释,驱动硬件设备,实现用户要求。访问硬件的响应时间是判断操作系统性能的最重要的一个指标。
现有的操作系统中,操作系统在内核内提供对硬件物理资源提供接口,上层封装成应用程序编程接口(Application Programming Interface,简称API)供用户程序调用。
因此,在现有操作系统中,当用户程序访问硬件资源调用相关访问硬件的API时,系统需要陷入内核,系统将在在用户空间和内核态之间进行多次转换。这种频繁的切换会增加系统的开销,导致系统的处理效率降低。
发明内容
本发明实施例提供一种硬件资源访问方法及装置,以实现降低访问硬件资源的系统开销,提高处理效率。
第一方面,本发明实施例提供一种硬件资源的直接访问方法,包括:
配置一条或多条用于访问硬件资源的特权指令的权限,使得所述特权指令供用户态应用程序使用时不需要陷入内核即可对硬件资源进行访问,其中,所述应用程序在代码层面调用了位于用户态且封装有所述特权指令的特权应用程序编程接口API;
执行所述应用程序在代码层面调用的所述特权API中封装的所述特权指令,从而使得所述应用程序不需要陷入内核即可对硬件资源进行访问。
在第一方面第一种可能的实现方式中,所述配置一条或多条用于访问硬件资源的特权指令的权限,使得所述特权指令供用户态应用程序使用时不需要陷入内核即可对硬件资源进行访问,包括:
调用支持硬件虚拟化的处理器对应的与指令权限配置相关的接口来配置所述特权指令的权限,使得所述特权指令供用户态应用程序使用时不需要陷入内核即可对硬件资源进行访问。
结合第一方面或者第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,在执行所述应用程序在代码层面调用的所述特权API中封装的所述特权指令之前,所述方法还包括:
通过内核判断所述应用程序是否具有调用所述特权API访问硬件资源的权限,如果有,则执行所述应用程序在代码层面调用的所述特权API中封装的所述特权指令。
结合第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,所述通过内核判断应用程序是否具有调用所述特权API访问硬件资源的权限包括:
若应用程序向内核申请调用所述特权API直接访问硬件资源,则根据当前硬件资源分配情况,通过内核判断是否通过或部分通过所述应用程序对所述特权API访问的请求和指令操作对象的范围,若是,则表示所述应用程序是具有调用所述特权API访问硬件资源的权限。
结合第一方面、第一方面第一种至第三种可能的实现方式任意一种,在第一方面第四种可能的实现方式中,所述特权指令为:
处理器访问指令,或者内存资源访问指令,或者TLB访问指令,或者中断访问指令,或者网络访问指令,或者I/O硬件设备访问指令,或者磁盘访问指令,或者寄存器读写指令中的一个或多个。
根据第一方面、第一方面第一种至第三种可能的实现方式任意一种,在第一方面第五种可能的实现方式中,所述执行所述应用程序在代码层面调用的所述特权API中封装的所述特权指令,包括:
在收到所述应用程序的访问硬件资源的请求后,根据内核策略确定所述应用程序的访问硬件资源请求是否需要陷入内核,若否,则直接执行所述特权指令。
第二方面,本发明实施例提供一种硬件资源访问装置,包括:
配置模块,用于配置一条或多条用于访问硬件的特权指令的权限,使得所述特权指令供用户态应用程序使用时不需要陷入内核即可对硬件资源进行访问,其中,所述应用程序在代码层面调用了位于用户态且封装有所述特权指令的特权应用程序编程接口API;
执行模块,用于执行所述应用程序在代码层面调用的所述特权API中封装的所述特权指令,从而使得所述应用程序不需要陷入内核即可对硬件资源进行访问。
在第二方面第一种可能的实现方式中,所述配置模块具体用于:
调用支持硬件虚拟化的处理器对应的与指令权限配置相关的接口来配置所述特权指令的权限,使得所述特权指令供用户态应用程序使用时不需要陷入内核即可对硬件资源进行访问。
结合第二方面或者第一方面第一种可能的实现方式,在第二方面第二种可能的实现方式中,所述装置还包括:
判断模块,用于在所述配置模块配置一条或多条硬件访问特权指令的权限之后,通过内核判断所述应用程序是否具有调用所述特权API访问硬件资源的权限,如果有,则触发所述执行模块执行所述应用程序在代码层面调用的所述特权API中封装的所述特权指令。
根据第二方面第二种可能的实现方式,在第二方面第三种可能的实现方式中,所述判断模块,具体用于:
若所述应用程序向所述内核申请调用所述特权API直接访问硬件资源,则根据当前硬件资源分配情况,通过内核判断是否通过或部分通过所述应用程序对所述特权API访问的请求和指令操作对象的范围,若是,则表示所述应用程序是具有调用所述特权API访问硬件资源的权限。
结合第二方面、第二方面第一种至第三种可能的实现方式任意一种,在第二方面第四种可能的实现方式中,所述特权指令为:
处理器访问指令,或者内存资源访问指令,或者TLB访问指令,或者中断访问指令,或者网络访问指令,或者I/O硬件设备访问指令,或者磁盘访问指令,或者寄存器读写指令中的一个或多个。
根据第二方面、第二方面第一种至第三种可能的实现方式任意一种,在第二方面第五种可能的实现方式中,所述执行模块,具体用于:
在收到所述应用程序的访问硬件资源的请求后,根据内核策略确定所述应用程序的访问硬件请求是否需要陷入内核,若否,则直接执行所述特权指令。
第三方面,本发明实施例提供一种计算机系统,包括:
处理器、存储器以及总线;
其中,处理器、存储器通过总线完成相互间的通信,存储器用于存储需要执行的指令,处理器用于通过读取存储器中存储的指令执行第一方面以及第一方面各种可能的实现形式中的访问硬件资源的方法。
第四方面,本发明实施例提供了一种非易失性存储介质,该非易失性存储介质包括一些指令,这些指令可供计算机中的处理器执行,通过执行这些指令来执行第一方面以及第一方面各种可能的实现形式中的访问硬件资源的方法。
本发明实施例通过配置访问硬件资源的特征指令的权限,实现应用程序访问硬件资源时,执行所述应用程序在代码层面调用的特权API中封装的不需要陷入内核即可对硬件资源进行访问,换言之,即可以绕开内核直接访问硬件资源,一定程度上解决了现有技术中,访问硬件资源需要陷入内核导致用户态和核心态需要多次切换而导致的系统开销过大的问题,从而实现了降低访问硬件资源的系统开销,提高处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得 其他的附图。
图1为本发明实施例一硬件资源访问方法的流程图;
图2为本发明实施例二硬件资源访问方法的流程图;
图3为本发明实施例三硬件资源访问装置的结构图;
图4为本发明实施例三硬件资源访问装置另一结构图;
图5为本发明实施例四计算机系统的结构图;
图6为本发明实施例计算机系统中软硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明硬件资源访问方法实施例一的流程图,本发明实施例提供的硬件资源访问方法可以应用于如图5所示的计算机系统中(可包括一个或多个处理器,一个或多个存储器),该计算机系统可以位于一台物理主机上,也可以分布位于多台物理主机上。具体地,该计算机系统可以位于一台或多台计算机(即计算节点)、便携式电脑、手持设备(例如手机,PAD等)、服务器等类型的设备上。该计算机软硬件逻辑结构可参见图6,如图6所示,该计算节点包括硬件资源(即硬件层),这里的硬件资源包括处理器(例如CPU和GPU),当然还可以包括存储器、输入/输出设备、网络接口等,以及在硬件层之上的内核空间,以及在内核空间之上的用户态空间,需要说明的是,这里的内核空间包括内核等,这里的用户空间包括一些应用程序。
如图1所示,该方法具体包括:
步骤101、配置一条或多条用于访问硬件资源的特权指令的权限,使得特权指令供用户态应用程序使用时不需要陷入内核即可对硬件资源进行访问,其中,应用程序在代码层面调用了位于用户态且封装有特权指令的特权应用程序编程接口API;
本步骤中,硬件资源可以包括但不限于:CPU资源、内存资源、转址旁路缓存TLB(Translation Lookaside Buffer)资源、中断资源、网络资源、I/O硬件设备资源、磁盘资源和寄存器资源中的一种或多种。
本步骤中,可以使用多种方法来实现“在代码层面调用特权API”,例如,让开发者感知这些特权API的存在,开发者在编写代码时,就直接使用这些特权API来访问硬件资源;或者,也可以让开发者在编写代码时,不感知这些代码的存在,开发者仍然使用现有的标准API来对硬件资源进行访问,但这些现有的标准API的代码已被修改,其接口函数封装的函数内容将被修改,修改后的现有API会调用特权API来访问硬件资源。
在配置一条或多条硬件访问特权指令权限的时机上,可以在应用程序运行后给内核发一个触发指令来设定;或者,内核创建应用的时候就设定;
步骤102、执行应用程序在代码层面调用的特权API中封装的特权指令,从而使得应用程序不需要陷入内核即可对硬件资源进行访问。
具体地,与硬件资源相对应,特权指令可以为:处理器访问指令,或者内存资源访问指令,或者TLB访问指令,或者中断访问指令,或者网络访问指令,或者I/O硬件设备访问指令,或者磁盘访问指令,或者寄存器读写指令中的一种或多种。比如表1中所示的几种具体特权指令。
表1
Figure PCTCN2014085793-appb-000001
Figure PCTCN2014085793-appb-000002
由于这些特权指令封装成API部署在用户空间,因此在用户程序调用相关系统调用时,不需要生成中断号如int 0x80而陷入内核,而是通过用户任务地址空间中的API,直接访问到物理资源。
本发明实施例通过配置访问硬件资源的特征指令的权限,实现应用程序访问硬件资源时,执行所述应用程序在代码层面调用的特权API中封装的不需要陷入内核即可对硬件资源进行访问,换言之,即可以绕开内核直接访问硬件资源,一定程度上解决了现有技术中,访问硬件资源需要陷入内核导致用户态和核心态需要多次切换而导致的系统开销过大的问题,从而实现了降低访问硬件资源的系统开销,提高处理效率。
实施例二
图2为本发明硬件资源访问方法实施例二的流程图,本实施例在上一实施例的基础上,提供了一种具体实现设定访问硬件资源的特权指令的实施例,并且增加了用户程序访问API的安全机制,如图2所示,该方法具体包括:
步骤201、确定需要配置权限的特权指令;
本步骤中,可以根据用户程序需要调用的硬件资源、硬件资源的分配使用状态,或者系统根据安全机制设定的开放硬件资源,从访问硬件资源的指令确定出需要设定的所述特权指令,比如用户程序需要调用中断资源和网络资源,操作系统可以将访问中断和网络的指令确定为需要设定的特权指令。
步骤202、调用支持硬件虚拟化的处理器对应的与指令权限配置相关的接口来配置特权指令的权限,使得特权指令供用户态应用程序使用时不需要陷入内核即可对硬件资源进行访问;
本实施例可以基于支持硬件虚拟化的处理器(以下也称“虚拟化硬件”)执行,例如,Intel的采用虚拟技术(Virtualization Technology,VT)方案来支持硬件虚拟化的处理器,或者AMD的采用(Secure Virtual Machine,SVM)方案来支持硬件虚拟化的处理器。这些处理器都会这种处理器会提供相关的权限配置接口来配置确定的特权指令的权限。
具体地,可以使用下述方法实现对虚拟化硬件中的控制数据结构的设置:
系统内核的可移植操作系统接口(Portable Operating System Interface,简称Posix)中多提供一个预设接口给用户程序,用户程序直接调用预设接口陷入内核来硬件虚拟化的处理器对应的与指令权限配置相关的接口来配置所述特权指令的权限。
下面以Intel VT技术为例进行详细说明,为了加速虚拟机的执行,虚拟化硬件将原有的硬件特权级进行了拓展,从原有的ring 0到ring 4的特权级基础上,增加了VMX root mode和VMX non-root mode。并增加了可编程硬件的数据结构--虚拟机控制结构VMCS(Virtual-Machine Control Structure),来确定和设置在不同硬件特权级别上所允许可执行的指令范围,这个数据结构VMCS即可认为是“处理器对应的与指令权限配置相关的接口”。VMX root mode与传统ring 0特权级相当,且对于VMCS的设置,亦即对VMX non-root mode上应用可执行指令的确定,只能在VMX root mode上的应用进行设置和初始化。当在VMX non-root mode上执行未被允许的特权指令时,硬件上会发生陷入,陷入到VMX root mode进行处理。因此,利用现有的虚拟化硬件,在内核中初始化和设置虚拟化硬件,将内核设置为主机模式(Host mode),即根虚拟化模式(VMX root mode),将应用程序设置成用户模式(Guest mode),即非根虚拟化模式(VMX non-root mode)。通过在VMX root mode下的内核中的硬件资源访问装置,设置Intel VT-x硬件自带的VMCS的数据结构,以初始化和设置在VMX non-root mode下的程序可以直接访问哪些硬件资源的特权指令,且不需要再硬件上陷入VMX root mode,从而保证应用可以 绕过内核直接在用户空间执行,比如将内存操作指令Mov CRn设置成在用户空间直接执行。
本步骤中,进一步地,将所述特权硬件访问指令封装成特权API,用于向用户程序提供访问硬件的接口。可以将API自定义成低级别API(Low-Level API)。这样,Low-level API是一组特权指令的组合,可以实现对CPU、内存、磁盘和I/O设备等直接访问操作。Low-level API可以指定在固定内存区域由任务调用,也可以在应用编写时编译进应用之中。同时,对于Low-level API进行进一步封装,可以实现通用的内核功能,如进程切换、页表建立和内存管理等功能。这些封装后的接口可以和直接访问操作物理资源的接口一起组成Low-level API,也可以作为Low-level API的上层封装函数。
步骤203、通过内核判断所述应用程序是否具有调用特权API访问硬件资源的权限,如果所述应用程序具有调用所述特权API访问硬件资源的权限,则执行步骤204,如果没有,则调内核中的服务组件陷入内核进行访问硬件资源;
应用程序启动初始化任务时,操作系统可以根据内核的硬件资源分配策略为应用程序分配相应资源和Low-level API的访问权限,比如根据应用程序的优先级,对优先级高的应用程序授权访问API,对优先级低的应用程序不予授权或者部分授权,从而使得优先级高的应用程序可以通过API快速访问所需硬件。
在内核判断和设定了应用访问指令的权限和范围后,应用程序可以直接执行那些被内核允许的指令,且不需要陷入内核;否则(如果应用执行的指令未被允许,或指令操作对象的范围超过内核事先的允许),会陷入内核,由内核进行判定执行,或异常处理。
具体地,若应用程序向内核申请调用所述特权API直接访问硬件资源,则可以根据当前物理资源分配情况,通过内核判断是否通过或部分通过所述应用程序对所述特权API访问的请求和指令操作对象的范围,若是,则表示所述应用程序是具有调用所述特权API访问硬件资源的权限。
步骤204、根据内核策略确定所述应用程序的访问硬件请求是否需要 陷入内核,若确定所述应用程序不需要陷入内核,则执行步骤205,否则仍按照正常模式访问,即应用程序调用内核中的服务组件,陷入内核进行硬件资源访问;
由步骤202可知,low-level API的指令集合是由内核设置确定的,因此为了避免具有访问low-level API权限的大量应用程序同时调用low-level API的硬件资源指令导致系统处理开销大、资源访问冲突甚至崩溃,可以由内核基于预定策略确定是否要具有访问low-level API权限的应用程序直接执行low-level API中的指令。预定策略可以为内核根据应用程序的可信度或者硬件资源的使用状态等因素设定,这些设定都为本领域技术人员所公知的技术,这里不再赘述。若应用执行的指令已被设置允许不需要陷入内核执行,即可直接执行。若该指令未被设置进特权API集合,应用执行时会造成硬件上陷入,内核进行异常处理。
步骤205、直接执行所述特权指令。
本实施例中,通过事先设置虚拟化硬件(如Intel的基于VT-x技术的处理器,AMD的基于SVM技术的处理器等),以保证部分特权指令的执行可不需要在硬件上陷入内核态,并将访问所有硬件资源的特权指令封装成API,将API部署在用户空间,实现应用程序访问硬件资源时可以不陷入内核而直接访问硬件,提高访问速度,减少陷入内核的开销。并且,通过在内核中实现对应用程序的访问授权和内核根据策略的判断,增加应用程序访问硬件的安全性和可靠性,避免由于绕过内核访问带来的安全问题。
进一步地,在本实施例的基础上,当应用程序调用的特权指令不属于内核为其初始化的特权API集合时,硬件会陷入内核的硬件特权级,并引发内核异常处理。内核会根据该指令的执行请求和现有资源分配状况,来确定是否在内核中执行该请求的指令或阻止该指令执行,以保证应用程序之间对硬件资源访问时不造成冲突,提高安全机制。
实施例三
参见图3,基于上述各实施例,本发明实施例提供了一种硬件资源访问装置40,包括:
配置模块41,用于配置一条或多条用于访问硬件的特权指令的权限,使得所述特权指令供用户态应用程序使用时不需要陷入内核即可对硬件资源进行访问,其中,所述应用程序在代码层面调用了位于用户态且封装有所述特权指令的特权应用程序编程接口API;
执行模块42,用于执行所述应用程序在代码层面调用的所述特权API中封装的所述特权指令,从而使得所述应用程序不需要陷入内核即可对硬件资源进行访问。
其中,本发明实施例中,配置模块具体41用于:
调用支持硬件虚拟化的处理器对应的与指令权限配置相关的接口来配置所述特权指令的权限,使得所述特权指令供用户态应用程序使用时不需要陷入内核即可对硬件资源进行访问。
参见图4,本发明实施例还包括:
判断模块43,用于在所述配置模块配置一条或多条硬件访问特权指令的权限之后,通过内核判断所述应用程序是否具有调用所述特权API访问硬件资源的权限,如果有,则触发所述执行模块执行所述应用程序在代码层面调用的所述特权API中封装的所述特权指令。
该判断模块43具体用于:若所述应用程序向所述内核申请调用所述特权API直接访问硬件资源,则根据当前硬件资源分配情况,通过内核判断是否通过或部分通过所述应用程序对所述特权API访问的请求和指令操作对象的范围,若是,则表示所述应用程序是具有调用所述特权API访问硬件资源的权限。
其中,本发明实施例中的特权指令可以为处理器访问指令,或者内存资源访问指令,或者TLB访问指令,或者中断访问指令,或者网络访问指令,或者I/O硬件设备访问指令,或者磁盘访问指令,或者寄存器读写指令中的一个或多个;
本发明实施例中,执行模块具体用于:在收到所述应用程序的访问硬件资源的请求后,根据内核策略确定所述应用程序的访问硬件请求是否需要陷入内核,若否,则直接执行所述特权指令。
上述各个模块具体执行方法可以基于以上实施例上描述的具体方法执行,这里不再赘述。
本发明实施例中的各个模块仅指逻辑意义上的划分,其可以基于现有的计算机软硬件实现,例如,计算机包括处理器(例如CPU)、存储器等硬件设备,处理器(例如CPU)读取存储在存储器上的程序代码运行诸如Linux之类的操作系统,操作系统又可包括内核态、用户态等不同的空间(可参见图6)。其中,处理器(例如CPU)运行操作系统中的某个功能可视为本实施例中某个模块来执行相应的功能。
本发明实施例通过配置访问硬件资源的特征指令的权限,实现应用程序访问硬件资源时,执行所述应用程序在代码层面调用的特权API中封装的不需要陷入内核即可对硬件资源进行访问,换言之,即可以绕开内核直接访问硬件资源,一定程度上解决了现有技术中,访问硬件资源需要陷入内核导致用户态和核心态需要多次切换而导致的系统开销过大的问题,从而实现了降低访问硬件资源的系统开销,提高处理效率。
实施例四
基于上述各实施例,参见图5,本发明实施例提供一种计算机系统,包括:
处理器61、存储器62以及总线63;
其中,处理器、存储器通过总线完成相互间的通信,存储器用于存储需要执行的指令,处理器用于通过读取存储器中存储的指令执行实施例一、二中所描述的各种访问硬件资源的方法。
处理器中运行的程序在软件层面结构示意图可以参考图6,图6中的虚线部分即表示软件,主要包括用户空间以及内核空间两部分,用户空间运行有应用程序70,并且有特权API 71,内核空间运行有操作系统的内核,特权API可以采用不陷入内核而直接对硬件资源进行访问。
本发明实施例中的计算机系统通过配置访问硬件资源的特征指令的权限,实现应用程序访问硬件资源时,执行所述应用程序在代码层面调用的特权API中封装的不需要陷入内核即可对硬件资源进行访问,换言之,即可以绕开内核直接访问硬件资源,一定程度上解决了现有技术中,访问硬件资源需要陷入内核导致用户态和核心态需要多次切换而导致的系统开销过大的问题,从而实现了降低访问硬件资源的系统开销,提高 处理效率。
实施例五
基于上述各实施例,本发明实施例提供了一种非易失性存储介质,该非易失性存储介质包括一些指令,这些指令可供计算机中的处理器执行,通过执行这些指令来执行实施例一、二中所描述的各种访问硬件资源的方法。
本发明实施例中的非易失性存储介质在被执行时,通过配置访问硬件资源的特征指令的权限,实现应用程序访问硬件资源时,执行所述应用程序在代码层面调用的特权API中封装的不需要陷入内核即可对硬件资源进行访问,换言之,即可以绕开内核直接访问硬件资源,一定程度上解决了现有技术中,访问硬件资源需要陷入内核导致用户态和核心态需要多次切换而导致的系统开销过大的问题,从而实现了降低访问硬件资源的系统开销,提高处理效率。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (12)

  1. 一种硬件资源访问方法,其特征在于,包括:
    配置一条或多条用于访问硬件资源的特权指令的权限,使得所述特权指令供用户态应用程序使用时不需要陷入内核即可对硬件资源进行访问,其中,所述应用程序在代码层面调用了位于用户态且封装有所述特权指令的特权应用程序编程接口API;
    执行所述应用程序在代码层面调用的所述特权API中封装的所述特权指令,从而使得所述应用程序不需要陷入内核即可对硬件资源进行访问。
  2. 根据权利要求1所述的方法,其特征在于,所述配置一条或多条用于访问硬件资源的特权指令的权限,使得所述特权指令供用户态应用程序使用时不需要陷入内核即可对硬件资源进行访问,包括:
    调用支持硬件虚拟化的处理器对应的与指令权限配置相关的接口来配置所述特权指令的权限,使得所述特权指令供用户态应用程序使用时不需要陷入内核即可对硬件资源进行访问。
  3. 根据权利要求1-2中任一项所述的方法,其特征在于,在配置一条或多条硬件访问特权指令的权限之后,在执行所述应用程序在代码层面调用的所述特权API中封装的所述特权指令之前,所述方法还包括:
    通过内核判断所述应用程序是否具有调用所述特权API访问硬件资源的权限,如果有,则执行所述应用程序在代码层面调用的所述特权API中封装的所述特权指令。
  4. 根据权利要求3所述的方法,其特征在于,所述通过内核判断应用程序是否具有调用所述特权API访问硬件资源的权限包括:
    若应用程序向内核申请调用所述特权API直接访问硬件资源,则根据当前硬件资源分配情况,通过内核判断是否通过或部分通过所述应用程序对所述特权API访问的请求和指令操作对象的范围,若是,则表示所述应用程序是具有调用所述特权API访问硬件资源的权限。
  5. 根据权利要求1-4中任一项所述的方法,其特征在于,所述特权指令为:
    处理器访问指令,或者内存资源访问指令,或者转址旁路缓存TLB访问指令,或者中断访问指令,或者网络访问指令,或者I/O硬件设备访问指令,或者磁盘访问指令,或者寄存器读写指令中的一个或多个。
  6. 根据权利要求1-4中任一项所述的方法,其特征在于,所述执行所述应用程序在代码层面调用的所述特权API中封装的所述特权指令,包括:
    在收到所述应用程序的访问硬件资源的请求后,根据内核策略确定所述应用程序的访问硬件资源请求是否需要陷入内核,若否,则直接执行所述特权指令。
  7. 一种硬件资源访问装置,其特征在于,包括:
    配置模块,用于配置一条或多条用于访问硬件的特权指令的权限,使得所述特权指令供用户态应用程序使用时不需要陷入内核即可对硬件资源进行访问,其中,所述应用程序在代码层面调用了位于用户态且封装有所述特权指令的特权应用程序编程接口API;
    执行模块,用于执行所述应用程序在代码层面调用的所述特权API中封装的所述特权指令,从而使得所述应用程序不需要陷入内核即可对硬件资源进行访问。
  8. 根据权利要求7所述的装置,其特征在于,所述配置模块具体用于:
    调用支持硬件虚拟化的处理器对应的与指令权限配置相关的接口来配置所述特权指令的权限,使得所述特权指令供用户态应用程序使用时不需要陷入内核即可对硬件资源进行访问。
  9. 根据权利要求7-8中任一项所述的装置,其特征在于,还包括:
    判断模块,用于在所述配置模块配置一条或多条硬件访问特权指令的权限之后,通过内核判断所述应用程序是否具有调用所述特权API访问硬件资源的权限,如果有,则触发所述执行模块执行所述应用程序在代码层面调用的所述特权API中封装的所述特权指令。
  10. 根据权利要求9所述的装置,其特征在于,所述判断模块,具体用于:
    若所述应用程序向所述内核申请调用所述特权API直接访问硬件资源,则根据当前硬件资源分配情况,通过内核判断是否通过或部分通过所述应用程序对所述特权API访问的请求和指令操作对象的范围,若是,则表示所述应用程序是具有调用所述特权API访问硬件资源的权限。
  11. 根据权利要求7-10中任一项所述的装置,其特征在于,所述特权指令为:
    处理器访问指令,或者内存资源访问指令,或者TLB访问指令,或者中断访问指令,或者网络访问指令,或者I/O硬件设备访问指令,或者磁盘访问指令,或者寄存器读写指令中的一个或多个。
  12. 根据权利要求7-10中任一项所述的装置,其特征在于,所述执行模块,具体用于:
    在收到所述应用程序的访问硬件资源的请求后,根据内核策略确定所述应用程序的访问硬件请求是否需要陷入内核,若否,则直接执行所述特权指令。
PCT/CN2014/085793 2013-09-04 2014-09-03 硬件资源访问方法及装置 WO2015032312A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP14843079.6A EP3035192B1 (en) 2013-09-04 2014-09-03 Method and device for hardware resource access
US15/059,380 US9529650B2 (en) 2013-09-04 2016-03-03 Method and apparatus for accessing hardware resource

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310399716.9A CN104424034A (zh) 2013-09-04 2013-09-04 硬件资源访问方法及装置
CN201310399716.9 2013-09-04

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/059,380 Continuation US9529650B2 (en) 2013-09-04 2016-03-03 Method and apparatus for accessing hardware resource

Publications (1)

Publication Number Publication Date
WO2015032312A1 true WO2015032312A1 (zh) 2015-03-12

Family

ID=52627801

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/085793 WO2015032312A1 (zh) 2013-09-04 2014-09-03 硬件资源访问方法及装置

Country Status (4)

Country Link
US (1) US9529650B2 (zh)
EP (1) EP3035192B1 (zh)
CN (1) CN104424034A (zh)
WO (1) WO2015032312A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9760496B2 (en) 2014-07-21 2017-09-12 Via Alliance Semiconductor Co., Ltd. Simultaneous invalidation of all address translation cache entries associated with an X86 process context identifier
CN104850502B (zh) * 2015-05-05 2018-03-09 华为技术有限公司 一种数据的访问方法、装置及设备
CN105095047B (zh) * 2015-07-17 2018-05-04 中国科学院计算技术研究所 一种提取底层系统行为特征的操作系统监控方法及装置
CN106708619B (zh) * 2015-07-21 2021-01-15 华为技术有限公司 资源管理方法及装置
US9747123B2 (en) * 2015-09-25 2017-08-29 Intel Corporation Technologies for multi-level virtualization
CN107003899B (zh) * 2015-10-28 2020-10-23 皓创科技(镇江)有限公司 一种中断响应方法、装置及基站
US10282210B2 (en) * 2016-06-13 2019-05-07 Huawei Technologies Co., Ltd. System and method for virtual hardware control
US10430245B2 (en) * 2017-03-27 2019-10-01 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Systems and methods for dynamic low latency optimization
US10496573B2 (en) * 2017-03-31 2019-12-03 Intel Corporation Context-sensitive interrupts
FR3069937B1 (fr) * 2017-08-07 2021-10-01 Prove & Run Syteme embarque securise et procede de securisation
CN108256298A (zh) * 2017-12-14 2018-07-06 大唐微电子技术有限公司 一种资源访问方法及装置
CN108132894B (zh) * 2017-12-23 2021-11-30 天津国芯科技有限公司 一种cpu中tlb多命中异常的定位装置及方法
CN108416210B (zh) * 2018-03-09 2020-07-14 北京顶象技术有限公司 一种程序保护方法及装置
CN108810087B (zh) * 2018-04-28 2020-06-26 北京青云科技股份有限公司 一种存储服务器的连接方法、系统及设备
CN109062713A (zh) * 2018-07-26 2018-12-21 郑州云海信息技术有限公司 一种提高系统命令行界面接口的调用效率方法及装置
CN111737656B (zh) * 2019-05-30 2023-10-27 中国科学院计算技术研究所 面向应用程序的特权硬件资源访问方法及电子设备
US11194706B2 (en) * 2019-09-05 2021-12-07 Facebook Technologies, Llc System and method for split storage stack
US11169816B2 (en) 2019-09-05 2021-11-09 Facebook Technologies, Llc System and method for key value store
CN113225344B (zh) * 2021-05-10 2022-09-30 深信服科技股份有限公司 一种访问控制方法、装置、设备及可读存储介质
CN113360431A (zh) * 2021-06-21 2021-09-07 南京中消安全技术有限公司 一种在Linux操作系统用户空间下控制GPIO端口的方法和设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050076186A1 (en) * 2003-10-03 2005-04-07 Microsoft Corporation Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements
CN102096589A (zh) * 2009-12-15 2011-06-15 上海威乾视频技术有限公司 基于dm642的嵌入式通用启动加载系统
US20130145363A1 (en) * 2011-12-05 2013-06-06 Ravello Systems Ltd. System and method thereof for running an unmodified guest operating system in a para-virtualized environment
CN103262037A (zh) * 2010-12-13 2013-08-21 超威半导体公司 图形处理计算资源的可访问性

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7398532B1 (en) * 2000-03-02 2008-07-08 Hewlett-Packard Development Company, L.P. System and method for establishing a secure execution environment for a software process
US9201703B2 (en) * 2006-06-07 2015-12-01 International Business Machines Corporation Sharing kernel services among kernels
WO2008004569A1 (fr) * 2006-07-06 2008-01-10 Nec Corporation Système à configuration en grappe, grappe pour serveur, élément de grappe, procédé permettant de rendre un élément de grappe redondant, et procédé de distribution de la charge
US8272048B2 (en) * 2006-08-04 2012-09-18 Apple Inc. Restriction of program process capabilities
US8468600B1 (en) * 2011-03-04 2013-06-18 Adobe Systems Incorporated Handling instruction received from a sandboxed thread of execution
EP4036721A1 (en) * 2012-06-26 2022-08-03 Lynx Software Technologies Inc. Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection prevention and further features

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050076186A1 (en) * 2003-10-03 2005-04-07 Microsoft Corporation Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements
CN102096589A (zh) * 2009-12-15 2011-06-15 上海威乾视频技术有限公司 基于dm642的嵌入式通用启动加载系统
CN103262037A (zh) * 2010-12-13 2013-08-21 超威半导体公司 图形处理计算资源的可访问性
US20130145363A1 (en) * 2011-12-05 2013-06-06 Ravello Systems Ltd. System and method thereof for running an unmodified guest operating system in a para-virtualized environment

Also Published As

Publication number Publication date
EP3035192A4 (en) 2016-08-03
EP3035192A1 (en) 2016-06-22
CN104424034A (zh) 2015-03-18
EP3035192B1 (en) 2020-03-11
US9529650B2 (en) 2016-12-27
US20160224399A1 (en) 2016-08-04

Similar Documents

Publication Publication Date Title
WO2015032312A1 (zh) 硬件资源访问方法及装置
US11016906B2 (en) GPU virtualisation
JP5042848B2 (ja) 仮想マシン・モニタの構成部分を特権化解除するためのシステム及び方法
US20230161615A1 (en) Techniques for virtual machine transfer and resource management
US10310882B2 (en) Algorithm and apparatus to deploy virtual machine monitor on demand
CA2915646C (en) Page fault injection in virtual machines to cause mapping of swapped-out memory pages into (vm) virtualized memory
KR101821079B1 (ko) 가상 컴퓨팅을 위한 장치 및 방법
Vahidi et al. VETE: Virtualizing the Trusted Execution Environment
Li et al. Iso-UniK: lightweight multi-process unikernel through memory protection keys
CN113449292B (zh) 一种可信应用的运行方法、装置及设备
GB2579721A (en) GPU virtualisation
Aguiar et al. A virtualization approach for MIPS-based MPSoCs
Long et al. GearV: A Two-Gear Hypervisor for Mixed-Criticality IoT Systems

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14843079

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2014843079

Country of ref document: EP