CN100468351C - 对在虚拟机体系结构中客户软件操作期间出现的故障的控制 - Google Patents

对在虚拟机体系结构中客户软件操作期间出现的故障的控制 Download PDF

Info

Publication number
CN100468351C
CN100468351C CNB038199009A CN03819900A CN100468351C CN 100468351 C CN100468351 C CN 100468351C CN B038199009 A CNB038199009 A CN B038199009A CN 03819900 A CN03819900 A CN 03819900A CN 100468351 C CN100468351 C CN 100468351C
Authority
CN
China
Prior art keywords
fault
failure message
control
filter criteria
client software
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 - Lifetime
Application number
CNB038199009A
Other languages
English (en)
Other versions
CN1679001A (zh
Inventor
S·贝内特
A·安德森
S·耶亚辛
A·卡吉
G·奈格尔
R·乌尔利希
X·邹
M·科祖赫
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1679001A publication Critical patent/CN1679001A/zh
Application granted granted Critical
Publication of CN100468351C publication Critical patent/CN100468351C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • 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/45587Isolation or security of virtual machine instances

Abstract

在一个实施例中,接收关于与客户软件的操作相关联的故障的故障信息。此外,确定故障信息是否满足一个或多个过滤标准。如果该确定为肯定的,则控制仍保留在客户软件中而不转移到虚拟机监控器(VMM)。

Description

对在虚拟机体系结构中客户软件操作期间出现的故障的控制
发明领域
一般来说,本发明涉及虚拟机,更具体来说,涉及处理与虚拟机体系结构中客户软件的操作相关联的故障。
发明背景
传统的虚拟机监控器(VMM)通常在计算机上运行,并为其它软件提供一个或多个虚拟机的抽象。各虚拟机可用作自含式平台,运行它自己的“客户操作系统”(即VMM接纳的操作系统(OS))和其它软件,这些统称为客户软件。客户软件预期工作起来就象它在专用计算机而不是虚拟机上运行一样。也就是说,客户软件预期控制各种事件并有权访问硬件资源。硬件资源可包括处理器驻留资源(例如控制寄存器)、驻留在存储器中的资源(例如描述符表)以及驻留在基础硬件平台上的资源(例如输入-输出装置)。事件可包括中断、异常、平台事件(例如初始化(INIT)或系统管理中断(SMI))等。
在虚拟机环境中,VMM应当能够具有对这些事件和硬件资源的最终控制,以便提供在虚拟机上运行的客户软件的适当操作,以及用于从在虚拟机上运行的客户软件及在它们之间保护。为了实现这个目的,当客户软件访问受保护资源时或者其它事件(诸如中断或异常)出现时,VMM通常接收控制。
例如,当页面错误(即与地址转换操作相关联的异常)在客户软件的操作期间出现时,控制被转移到VMM,VMM则确定客户软件或VMM本身是否需要处理页面错误。如果页面错误需要由客户软件处理,则控制重新转移到客户软件。由于不需要由VMM处理的页面错误(以及其它异常和中断)相当频繁地发生,因此存在与VMM和客户软件之间的这种控制转移相关联的大量性能成本。
附图简介
在附图的各图中通过举例而不是限制的方式来说明本发明,附图中相似的参考标号表示类似的元件,其中:
图1说明本发明可在其中工作的虚拟机环境的一个实施例;
图2是因故障而利用控制转移过滤标准过滤VM出口的过程的一个实施例的流程图;
图3-5说明因故障而利用控制转移过滤标准过滤VM出口的过程的示范实施例;
图6是因故障而利用故障过滤标准和控制转移过滤标准过滤故障和VM出口的过程的一个实施例的流程图;
图7-8说明利用故障过滤标准过滤故障的过程的示范实施例;以及
图9是定义故障过滤标准和控制转移过滤标准的过程的一个实施例的流程图。
实施例描述
描述处理与虚拟机体系结构中的客户软件的操作相关联的故障的方法和装置。为了说明,以下描述中提出了大量具体细节,以便透彻地理解本发明。然而,本领域的技术人员十分清楚,即使没有这些具体细节,也可以实施本发明。
以下详细描述的某些部分是以对计算机系统的寄存器或存储器中的数据位进行操作的算法和符号表示来提供的。这些算法描述和表示是数据处理领域的技术人员用来向本领域的其它技术人员最有效地传达其工作实质的方式。算法在这里以及一般被认为是产生所希望结果的独立运算序列。运算是物理量的那些要求的物理处理。这些量通常但不一定采取电或磁信号的形式,它们能够被存储、传送、组合、比较以及以其它方式处理。主要为了普通使用的原因,将这些信号称作位、值、元素、符号、字符、项目、数字等,已经证明有时非常方便。
但应当记住,所有这些及类似的术语要与适当物理量相关联,并且只是应用于这些量的便捷标记。若没有明确说明,从以下论述中显而易见,在本发明中,采用诸如“处理”或“计算”或“运算”或“确定”等术语的论述可表示计算机系统或类似电子计算装置的动作和过程,所述计算机系统或类似电子计算装置处理表示为计算机系统的寄存器和存储器中的物理(电子)量的数据并将其转换为类似地表示为计算机系统存储器或寄存器或者其它这类信息存储、传送或显示装置中的物理量的其它数据。
在实施例的以下详细描述中,参照附图,附图以图解说明的方式示出可实施本发明的具体实施例。附图中,相似的标号描述若干视图中基本相似的元件。对这些实施例进行充分详细的描述,使本领域的技术人员能够实施本发明。可采用其它实施例,并且可进行结构、逻辑以及电气变更,而没有背离本发明的范围。此外,大家理解,本发明的各种实施例虽然有所不同,但不一定是相互排斥的。例如,在一个实施例中描述的特定功能、结构或特征可包含在其它实施例中。因此,以下详细描述不是限制性的,本发明的范围仅由所附权利要求以及这些权利要求涵盖的全部等效范围来限定。
图1说明本发明可在其中工作的虚拟机环境100的一个实施例。在此实施例中,裸平台硬件116包括计算平台,它可以例如能够运行标准操作系统(OS)或虚拟机监控器(VMM)、如VMM 112。VMM 112虽然通常以软件实现,但可模拟裸机接口并将其输出到较高层软件。这种较高层软件可包括标准或实时OS,可以是具有有限操作系统功能性的严重剥离的操作环境,可以不包括传统的OS工具,等等。或者,例如VMM 112可以在另一个VMM之中或之上运行。VMM及其典型特征和功能性是本领域的技术人员熟知的,并且可例如以软件、固件或通过各种技术的组合来实现。
平台硬件116可以属于个人计算机(PC)、大型计算机、手持装置、便携计算机、机顶盒或其它任何计算系统。平台硬件116包括处理器118、存储器120以及可能的其它未示出的平台硬件(例如输入-输出装置)。
处理器118可以是能够运行软件的任何类型的处理器,诸如微处理器、数字信号处理器、微控制器等等。处理器118可包括用于完成本发明的方法实施例运行的微码、可编程逻辑或硬编码逻辑。
存储器120可以是硬盘、软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器、以上装置的任何组合、或者处理器118可读的其它任何类型的机器媒体。存储器120可存储用于完成本发明的方法实施例运行的指令或数据。
VMM 112为其它软件(即“客户”软件)提供一个或多个虚拟机(VM)的抽象。VMM 112可向各种客户提供相同或不同的抽象。图1表示两个这样的VM、即102和114,但VMM 112可支持多于或少于2个的VM。在各VM上运行的客户软件可包括诸如客户OS 104或106等客户OS以及各种客户软件应用程序108和110。客户OS和软件应用程序在本文中统称客户软件103和115。客户软件103和105预期访问客户软件正在其中运行的VM 102和114中的物理资源(例如处理器寄存器、存储器和I/O装置)。VMM 112便于对客户软件所需资源的访问,同时保持对平台硬件116内资源的最终控制。
此外,客户软件103和115预期处理各种事件,诸如异常、中断以及平台事件(例如初始化(INIT)和系统管理中断(SMI))。这些事件中的一部分是“特许的”,因为它们必须由VMM 112来处理,以便确保VM 102、114和客户软件103、115的正确工作,以及用于从客户软件103和115及在其之间保护。对于特许事件,VMM 112便于客户软件所需的功能性,同时保持对这些特许事件的最终控制。便于客户软件的功能性的动作可包括VMM 112的一部分上的大量活动。VMM 112的活动及其特性不应当限制本发明的范围。
除了特许事件之外,还存在大量“非特许事件”,它们在客户软件的操作期间出现,但不需要由VMM 112处理,因而不要求控制向VMM 112转移。在一个实施例中,提供一种过滤机制来区分特许事件与非特许事件。通过这种过滤机制,利用一个或多个过滤标准来评估与当前事件(例如异常)相关联的信息,从而确定对当前事件的控制是属于客户软件还是被转移到VMM 112。这些过滤标准在本文中称作控制转移过滤标准。与当前事件相关联的信息在本文中称作故障信息。
在另一个实施例中,提供一种过滤机制以识别可能被忽视的某些非特许事件,因为在当前事件时存在的其它因素表明客户软件可完成期望的操作,而不损害VMM 112或其它VM的安全性及正确操作。在此实施例中,利用一个或多个过滤标准来评估与当前事件相关联的故障信息,从而确定当前事件是否可被忽视(即,是否允许客户软件完成期望的操作)。这些过滤标准在本文中称作故障过滤标准。
在一个实施例中,过滤标准(控制转移过滤标准和/或故障过滤标准)采用在虚拟机控制结构(VMCS)122中的一个或多个指定字段中存储的数据来定义。不同的VM可采用来自不同VMCS存储映象的数据,但图1中仅示出一个这样的VMCS。VMCS 122可驻留在存储器120中,并且可由处理器118维护。应当指出,其它任何数据结构(例如芯片内高速缓存、文件、查找表等)可用来存储VMCS 122或者与过滤机制相关联的字段,而不失一般性。下面更详细地描述过滤机制的各种实施例。
在一个实施例中,如果过滤机制确定当前事件必须由VMM 112处理,则控制被转移到VMM 112。然后,VMM 112可处理该事件,以及把控制重新转移到客户软件。在一个实施例中,控制从VMM 112到客户软件的转移通过执行特殊指令来实现。控制从VMM到客户软件的转移在本文中称作VM入口,控制从客户软件到VMM的转移在本文中称作VM出口,VM出口的可能原因(例如特许的异常和中断以及特许的平台事件)在本文中称作虚拟化事件。
在一个实施例中,当VM出口出现时,控制在VMCS 122中描述的特定入口点(例如指令指针值)被传递给VMM 112。在另一个实施例中,控制在通过重定向结构(例如
Figure C03819900D00101
的处理器指令集体系结构(ISA)中的中断描述符表(在本文中称作IA-32 ISA))引导之后被传递到VMM 112。或者,本领域已知的其它任何机制都可用来把控制从客户软件转移到VMM 112。
包括异常、中断和平台事件的特许和非特许事件在本文中称作故障。故障可由处理器上指令的执行来产生。例如,访问存储器的操作可因调页和分段保护机制而产生各种故障。各故障与故障信息相关联。故障信息可表征为动态、静态或半动态故障信息。动态故障信息在故障时或接近故障时产生。动态故障信息的实例包括误码,它由异常产生,并直接取决于出错操作的特性或者准备通过导致页面错误的写存储器操作写入存储器的数据值。
静态或半静态故障信息可能具有相同的值,而与故障的定时无关。半静态故障信息的一个实例是各种控制寄存器中很少改变的位的设定,例如IA-32 ISA中CR0寄存器中的高速缓存禁用(CD)或写保护(WP)位。静态故障信息的一个实例是处理器实现的版本(例如通过IA-32 ISA中的CPUID指令来报告那样)。
一般来说,故障信息可包括故障标识符、相关故障误码、与故障相关联的附加数据值或者这些数据项的任何组合。故障标识符可以是用来区分这个特定故障与其它故障的值。误码可包含多个值,其中每个值指示特定条件的出现。附加数据值可表示连接到出错指令或故障触发条件的其它任何数据。另外,附加数据值可表示在故障产生期间计算的数据。附加数据值的一些实例包括在故障时被请求写入特定位置的数据、在故障时被访问的地址、导致故障的指令的地址、在故障时存储器的状态等。
可参照IA-32 ISA中的页面错误来说明故障信息的一个实例。在IA-32 ISA中,页面错误由等于14的故障标识符来标识。因此,当页面错误出现时,通过经由条目14处的中断描述符表(IDT)引导到故障处理器,控制被传递到故障处理器。(产生页面错误的)被访问地址被存储在控制寄存器(CR2)中。另外,在把控制传递到故障处理器之前,页面错误产生误码,它被推入堆栈,供故障处理器使用。误码包含四位,它通知故障处理器什么条件导致页面错误。具体来说,误码中的位0表明错误是否由用于地址转换的页面表中的非当前页面引起,误码中的位1表明错误访问是否为写入,误码中的位2表明访问是否在处理器处于用户模式时被发起,以及误码中的位3表明错误是否由页面目录中设置为1的保留位引起。
附加数据值可与页面错误相关联。相关附加数据值的实例包括导致页面错误的被访问地址(CR2)、出错指令的地址、客户软件在出现页面错误时尝试写入页面表分级结构中的不可写页面的数据值、物理和客户线性存储器中的页面表的地址等等。
现在将描述利用控制转移过滤标准的过滤机制的一些实施例。控制转移过滤标准可手动或以编程方式来定义。控制转移过滤标准随特定故障、误码形式、ISA、附加数据值的存在、VMM的特性及其它因素而改变。控制转移过滤标准的复杂度和表达标准所需的元素数量取决于误码中包含的值的数量、附加数据值的数量、以及需要(和不需要)引起向VMM的转换的误码值和/或附加数据值的可能组合的数量。例如,当需要考虑大量这类组合时,控制转移过滤标准可能要求对误码和/或其它故障信息及一组预定数据执行若干运算(例如算术和/或布尔逻辑运算)。
在一些实施例中,预定数据存储在VMCS的指定字段中,如上所述。在其它实施例中,预定数据可被硬编码(例如在计算机程序、可编程逻辑、微码或处理器的硬编码逻辑中)。
图2是因故障而利用控制转移过滤标准过滤VM出口的过程200的一个实施例的流程图。该过程可通过可包括硬件(例如电路、专用逻辑、可编程逻辑、微码等)、软件(例如运行于通用计算机系统或专用机器上)或者两者的组合的处理逻辑来执行。
参照图2,过程200从处理逻辑接收故障信息(处理框202)开始。故障信息可涉及在允许操作继续进行到完成的情况下已出现或将出现的故障。故障信息包括标识该故障的故障标识符。在一些实施例中,故障信息还包括与该故障相关联的误码和/或附加数据值。
在判定框204,确定故障信息是否满足一个或多个控制转移过滤标准。如果在判定框204进行的确定为否定,即,故障信息不满足控制转移过滤标准,则控制转到VMM(处理框206),它处理该故障,然后可把控制重新转移到客户OS。否则,如果在判定框204进行的确定为肯定,即,故障信息满足控制转移过滤标准,则控制仍属于客户软件。然后,可允许客户软件处理该故障。
在备选实施例中,如果故障信息不满足控制转移过滤标准,则控制被转到VMM(如果故障信息满足控制转移过滤标准,则控制仍属于客户软件)。
如上所述,控制转移过滤标准的复杂度取决于各种因素。在一个实施例中,控制转移过滤标准可能只要求将故障信息与某个值进行比较(例如,如果误码大于10,则产生VM出口,或者如果误码等于0×4,则产生VM出口,等等)。在另一个实施例中,控制转移过滤标准可能要求将故障信息与若干值进行比较。例如,需要引起到VMM的转换的误码值可事先确定,以及当前误码可与这些预定值进行比较以识别匹配。预定值可存储在指定字段中(例如在图1的VMCS 122中),或者被硬编码在计算机程序、可编程逻辑、微码或处理器的硬编码逻辑中。在其它实施例中,可能要求过滤机制对故障信息和一组预定值执行一个或多个布尔逻辑和/或算术运算。
图3-5说明因故障而利用控制转移过滤标准过滤VM出口的过程的示范实施例。这些过程可通过可包括硬件(例如电路、专用逻辑、可编程逻辑、微码等)、软件(例如运行于通用计算机系统或专用机器上)或者两者的组合的处理逻辑来执行。
参照图3,过程300从处理逻辑在客户软件操作期间检测故障的出现(处理框301)开始。在处理框302,处理逻辑接收标识故障并且可包含与故障有关的其它信息的故障信息。在判定框303,处理逻辑确定故障信息是否包含与故障相关联的误码。如果该确定为肯定,则处理逻辑确定(在处理框304)以下表达式的值(真或假):
EC AND MASK==MATCH                (1)
其中EC为误码,AND为逐位布尔逻辑算子,“==”为逐位比较算子,MASK为在第一字段、本文称作掩码字段中存储的预定数据,以及MATCH为在第二字段、本文称作匹配字段中存储的预定数据。
各掩码字段和匹配字段的大小取决于相应误码的大小。在一些实施例中,掩码字段和匹配字段的宽度与误码的大小相同。在其它实施例中,掩码字段和匹配字段的宽度可以与误码的大小不同。例如,掩码字段和匹配字段可小于误码,并且可以仅把某些位映射到表达式1中。
此外,在图3所示的一个实施例中,处理逻辑还采用重定向图中的相应控制位来进一步确定是否产生VM出口。重定向图表示由VMM维护的一组控制位,用于配置哪些虚拟化事件将产生VM出口。被咨询的控制位对应于导致当前故障的虚拟化事件。例如,虚拟化事件可以是页面错误、外部中断或客户软件对调试寄存器的访问,其中的每个在重定向图中具有相关位。在一个实施例中,重定向图包含在图1的VMCS 122中。在一个实施例中,重定向图是VMCS 122中的单字段。在其它实施例中,在VMCS 122中要求多个字段来详细描述重定向图。
如果在判定框303作出的确定为否定(即故障信息没有包含与此故障相关联的误码),或者处理逻辑在判定框304确定表达式1中的等式成立(即经由逐位AND算子与掩码字段中存储的数据组合的误码匹配在匹配字段中存储的数据),则在一个实施例中,重定向图中的相应控制位的值被用来确定是否产生VM出口(处理框306)。例如,如果控制位被置位,则处理逻辑将产生VM出口(处理框313);否则,处理逻辑将把故障传递给客户软件(处理框312)。
如果表达式1中的等式不成立,则处理逻辑对重定向位图中的控制位的值取反(处理框308),并使用这个取反值来确定是否产生VM出口(处理框310)。如果取反值被置位,则处理逻辑产生VM出口(处理框314);否则,故障将被引导到客户软件(处理框312)。在另一个实施例中,如果如判定框304中所确定的那样,等式不成立,则处理逻辑可使用控制位的实际值,如果等式成立,则使用控制位的取反值。
在图3的过程300中掩码字段和匹配字段与控制位的使用可采用与IA-32 ISA页面错误相关联的误码(本文中称作页面错误误码或PFEC)的各种值作为实例来说明。以下实例假定在表达式1的等式不成立时存在控制位的取反(如图3所示)。
如上所述,PFEC包括四位。为了实现PFEC值的所有可能组合所需的结果,掩码字段、匹配字段和控制位中的每个应当具有特定设定。例如,为了对所有页面错误产生VM出口,控制位可被设置为1,掩码字段位的值将设置为0×0,以及匹配字段的值将设置为0×0。或者,为了得到同样的性能,控制位可被设置为0,掩码字段设置为0×0,以及匹配字段设置为0×F(注意,有匹配、掩码字段及控制位值的许多设定都提供相同的功能性)。在另一个实例中,为了对于因监督程序写入当前页面而导致的页面错误产生VM出口,控制位将设置为1,掩码字段的值将设置为0×F,以及匹配字段的值将设置为0×3。这些值确保只对产生等于0×3的误码的页面故障出现VM出口。在又一个实例中,为了对于因非当前页面或保留位违反而导致的页面错误产生VM出口,控制位将设置为0,掩码字段的值将设置为0×9(即只有位0和3被设置为1),以及匹配字段的值将设置为0×1。这将对指示当前页面(即位0被设置为1)以及无保留位违反(即位3被清除为0)的那些之外的所有页面错误产生VM出口。
在另一个实施例(未示出)中,没有使用控制位。也就是说,处理逻辑根据表达式1的结果来确定是否把控制转到VMM(即产生VM出口)。如果表达式1中评估的等式成立(即经由逐位AND算子与掩码字段中存储的数据组合的误码匹配在匹配字段中存储的数据),则满足控制转移过滤标准,以及与误码相关联的故障将由客户操作系统处理。否则(即经由AND算子与掩码字段中存储的数据组合的误码不匹配在匹配字段中存储的数据),则不满足控制转移过滤标准,并产生VM出口,把控制转到VMM。
图3所示实施例中使用的控制位的取反增加了实现误码值的各种组合的预期结果(即VM出口结果或无VM出口结果)时的灵活性。例如,下表说明包含两位的误码的值的各种组合的两种可能的预期结果:
Figure C03819900D00151
如果掩码字段位的值等于(11),匹配字段的值等于(01),以及控制位等于0,则图3所示的过程300的实施例可得到预期结果1。如果掩码字段位的值等于(11),匹配字段的值等于(01),以及控制位被设置为1,则可得到预期结果2。
应当指出,预期结果2不要求使用控制位(即预期结果2仅要求掩码=(11)以及匹配=(01))。但是,如果不使用控制位的取反,或者更多字段没有包含在确定是否产生VM出口的过程中,则无法得到预期结果1。
采用四个指定字段用于确定是否产生VM出口的控制转移过滤过程的一个实施例如图4所示。参照图4,过程400可通过可包括硬件(例如电路、专用逻辑、可编程逻辑、微码等)、软件(例如运行于通用计算机系统或专用机器上)或者两者的组合的处理逻辑来执行。
过程400从处理逻辑在客户软件操作期间检测故障的出现(处理框401)开始。在图4所示实施例中,假定所有故障产生误码,在处理框402处理逻辑接收这些误码。随后,处理逻辑采用逐位AND算子将误码与第一掩码字段中存储的数据组合(处理框404)以及与第二掩码字段中存储的数据组合(处理框406)。即,第一组合的结果INT1=ECAND MASK1以及第二组合的结果INT2=EC AND MASK2。
此外,在判定框408,处理逻辑确定第一组合INT1是否匹配第一匹配字段中存储的数据(MATCH1),或者第二组合INT2是否匹配第二匹配字段中存储的数据(MATCH2)。如果找到任何匹配,则处理逻辑产生VM出口(处理框410)。或者,如果没有发现任何匹配,则故障被插入客户操作系统(处理框409)。
控制转移过滤标准可采用更复杂的算术或布尔逻辑和/或附加字段,以便为预期结果提供更大的灵活性,如图5所示。参照图5,过程500可通过可包括硬件(例如电路、专用逻辑、可编程逻辑、微码等)、软件(例如运行于通用计算机系统或专用机器上)或者两者的组合的处理逻辑来执行。
过程500从处理逻辑在客户软件操作期间检测故障的出现(处理框501)开始。在处理框502,处理逻辑接收故障信息。如处理框503所确定的那样,如果故障信息包含误码,则处理逻辑采用逐位AND算子将误码与第一掩码字段中存储的数据组合(处理框504)以及与第二掩码字段中存储的数据组合(处理框506)。即,第一组合的结果INT1=EC AND MASK1以及第二组合的结果INT2=EC ANDMASK2。
此外,在判定框508,处理逻辑确定在第一组合INT1中是否设置了任何位,或者第二组合INT2是否匹配在匹配字段中存储的数据(MATCH)。在一个实施例中(图5中未示出),如果任一个确定为肯定,则处理逻辑产生VM出口。否则,故障被插入客户OS。
在另一个实施例中(图5中所示),与VM出口有关的确定还取决于重定向图中的相应控制位。明确地说,如果在判定框508进行的确定为肯定(或者如果在判定框503进行的确定为否定,即故障信息没有包含误码),则处理逻辑还在判定框510确定控制位是否指定VM出口(例如控制位被设置为1)。如果控制位指定了VM出口,则处理逻辑产生VM出口(处理框512)。如果控制位没有指定VM出口(例如控制位被清零),则故障被插入客户OS(处理框518)。
否则,如果在判定框508作出的确定为否定,则处理逻辑对控制位的值取反(处理框514)。如果取反值指定了VM出口(判定框516),则处理逻辑产生VM出口(处理框512)。如果取反值没有指定VM出口,则故障被插入客户OS(处理框518)。
虽然图3-5所示的实施例采用某些算子(即逐位AND、比较等),但各种各样的其它算子也可与过滤标准配合使用,而不失一般性。另外,以上结合图3-5所述的那些之外的各种过滤标准也可用来处理在客户软件操作期间出现的故障。此外,上述附加数据值可用来代替与过滤过程中的故障相关联的误码,或者与它们一起使用。
在一些实施例中,附加过滤标准(本文中称作故障过滤标准)可在控制转移过滤标准之前应用于故障信息。在其它实施例中,故障过滤标准在控制转移过滤标准之后应用于故障信息。在另一些实施例中,故障过滤标准而不是控制转移过滤标准被应用于故障信息。故障过滤标准用来确定在客户软件操作期间出现的出错条件是否可被忽略。出错条件表示若允许操作完成、则通常会导致故障的事件。这种出错条件的一个实例是客户软件写入页面表分级结构中的不可写页面的尝试。在一些情况下,出错条件可以被忽略,因为在出错条件时存在的其它因素表明出错条件不会例如损害VMM或其它虚拟机的性能、安全性或正确操作。下面结合图7和图8更详细地描述这些情况的实例。
图6是因故障而利用故障过滤标准和控制转移过滤标准过滤故障和VM出口的过程600的一个实施例的流程图。该过程可通过可包括硬件(例如电路、专用逻辑、可编程逻辑、微码等)、软件(例如运行于通用计算机系统或专用机器上)或者两者的组合的处理逻辑来执行。
过程600从处理逻辑在客户软件操作期间检测出错条件的出现(处理框602)以及分析与出错条件有关的故障信息(处理框604)开始。这种故障信息可包括故障标识符、误码、出错地址、待写入的数据、页面表地址等。
随后,处理逻辑确定故障信息是否满足故障过滤标准(判定框604)。故障过滤标准要求利用与客户软件的工作有关的规则,评估处理器状态、存储器状态和/或故障信息的一个或多个元素。例如,故障过滤标准可要求将客户软件尝试写入存储单元的数据与当前存储在此存储单元的数据进行比较。故障过滤标准可要求单独检验处理器状态、存储器状态和/或故障信息的一个元素,或者多次检验各种元素。故障过滤标准的复杂度可随特定出错条件、与出错条件有关的操作规则、ISA、VMM的特性、应用及其它因素而改变。下面结合图7和图8更详细地论述示范过滤标准。
如果满足故障过滤标准,则处理逻辑忽略出错条件,以及允许客户软件继续进行,好像没有检测到出错条件一样(处理框608)。因此,客户软件发起的操作的行为经修改以允许其完成,而不管出错条件的检测如何。
如果不满足故障过滤标准,则处理逻辑利用控制转移过滤标准确定处理该故障的适当实体(判定框610)。如果故障信息满足控制转移过滤标准,则处理逻辑把故障传递到客户软件,以及允许客户软件处理该故障(处理框612)。如果故障信息不满足控制转移过滤标准,则处理逻辑把控制转到VMM(处理框614)。
在其它实施例中,如果不满足故障过滤标准,则处理逻辑不使用控制转移过滤标准,而始终把控制转到VMM。
在其它实施例中,处理逻辑首先利用控制转移过滤标准来确定处理故障的适当实体。然后,如果适当实体为客户软件,则处理逻辑还确定是否满足故障过滤标准。如果满足故障过滤标准,则允许客户忽略故障条件;如果不满足故障过滤标准,则该故障被传递给客户,如上所述。
以下论述假定页面表结构在IA-32 ISA中,但应当指出,类似的页面表结构存在于各种ISA中,本发明不限于使用IA-32 ISA。另外,可进行各种简化以便于以下论述。例如,没有包含物理地址扩展(PAE)和页面大小扩展(PSE)标志的作用,没有说明基于环的保护机制,没有测试存储器存取的对准要求等等。
如本领域熟知的那样,IA-32 ISA中的页面表由页面目录条目(PDE)和页面表条目(PTE)组成。每个PDE和PTE包含控制存储器页面的可存取性的各种位字段。例如,“P”位把页面标记为当前(1)或非当前(0),“R/W”位表明页面是只读(0)还是可读写(1),“U/S”位表明页面是否要求监督程序特权,页面帧编号(PFN)是否包含逻辑页面所在的物理地址的一部分,等等。CR3是ISA中的控制寄存器,它包含页面目录的基物理地址(和附加标志)。页面目录基物理地址等于CR3[31:12]<<12(即,页面目录基地址的低12位为0,高20位处于CR3的高20位中)。
为了防止一个虚拟机中的错误或恶意代码损害在VMM或另一个虚拟机上运行的代码,需要把客户软件的访问限制为基础物理机器的物理存储资源。在提供了由客户OS和VMM分别管理的独立页面表分级结构的一些体系结构中,一种把客户软件的访问限制为物理存储资源的方法包括客户页面表分级结构的VMM修改许可,从而防止客户软件对受保护页面(例如属于VMM或其它VM的页面)的读或写操作。另外,客户页面表经修改以防止对属于存储客户页面表的VM的一些页面的写操作。一旦已经进行这些许可修改,则客户软件改变页面表的尝试将导致页面错误事件,这是VMM可通过VM出口观察的。VMM可检查所尝试的访问,并确定要采取的适当动作。例如,它可允许、不允许或修改所尝试的访问。例如,可能不允许客户软件映射属于VMM或另一个VM的物理页面。由于客户软件对页面表的修改频繁出现,因此与退出到VMM相关的、用于筛选每次尝试的客户页面表改变的开销可能强加重大的性能负担。
为了简化页面表的管理,若干操作系统、例如Microsoft WindowsXP采用递归页面目录。换言之,页面目录条目(PDE)将设置为把页面目录页引用为页面表页。这种把同一个页面用作页面目录和页面表的用法使所有页面表页在通过自指的PDE访问的线性地址空间的4MB区域中是可访问的。给定自指PDE的使用,则可计算用来映射任何特定线性地址的PTE或PDE的线性地址。在采用自指PDE的操作系统中,典型的页面表编辑是通过这种自映射区域进行的(即,对页面表的编辑是利用自映射PDE通过写入采用处于4MB区域的线性地址的存储器进行的)。不采用这种自映射PDE的页面表编辑在数量上极少。
其中公共页面用作页面目录页以及页面表页的页面表在本文中称作自映射页面表。本领域的技术人员非常清楚,本发明还适用于其它方法,其中页面表条目以组织方式映射到线性地址,无论这种映射是在页面表分级结构的多层上结构再用的结果,还是通过OS惯例。
在本发明的一个实施例中,过滤机制用来标识不要求退出到VMM的页面映射编辑。在此实施例中,用于过滤标准的附加字段被添加到VMCS。
在一个实施例中,客户操作系统所用的页面表是自映射的,即,页面表分级结构中的页面目录条目(PDE)之一重新指向页面目录(PD)页的基部。如上所述,自映射页面表的概念是本领域都熟知的,以及由操作系统、例如Microsoft的Windows XP使用。在一个实施例中,通过确保页面目录基部线性地址(本文中称作PTBASE)满足一组条件来支持自映射。这组条件可检验PTBASE值为4MB对准的、即PTBASE[21:0]==0,以及页面表包含适当的自映射条目、即单元((CR3[31:12]<<12)+(PTBASE[31:22]<<2))中条目中的PFN等于CR3[31:12]。在一个实施例中,PTBASE值存储在VMCS中,由过滤机制使用,如以下所述。
假定自映射页面表正在使用,则可确定任何给定地址是否处于页面表中(即,是否ADDR[31:22]==PTBASE[31:22],其中ADDR为被访问的地址)。另外,可确定该地址是否处于PDE中(即地址是否处于页面表中,并且ADDR[21:12]==PTBASE[31:22])或者处于PTE中(即该地址是否处于页面表中,但不在PDE中)。
图7和图8说明利用故障过滤标准过滤页面错误的过程的两个示范实施例。该过程可通过可包括硬件(例如电路、专用逻辑、可编程逻辑、微码等)、软件(例如运行于通用计算机系统或专用机器上)或者两者的组合的处理逻辑来执行。在图7和图8所示的实施例中,VMM通过确保映射页面表自身的客户页面表条目(客户PTE)具有只读访问来保护物理存储器。因此,当客户软件尝试改变页面表条目时,页面错误条件出现。这些实施例可与采用自映射页面表的客户OS配合使用,如上所述,或者与没有采用这个页面表结构的客户OS配合使用,但采用自映射页面表的客户OS的使用提供更大的性能提高。
在图7所示的实施例中,说明了故障过滤标准的集合,它允许完成对PTE的写入,在客户操作系统没有尝试把“P”位设置为1时没有传递故障或产生VM出口,同时仍然保护物理存储空间以及制止为客户软件提供对页面表的完全控制。这个规则的理论基础在于,标记了非当前的PTE(即“P”位等于0)无法映射物理存储页面。因此,由客户软件改变的PTE无法映射物理存储页面,因此无法干扰VMM或者在另一个VM上运行的软件的操作。因此,不需要通知VMM页面表修改,以及将允许页面表写入继续进行,而没有导致页面错误或VM出口。
参照图7,处理逻辑从在客户软件操作期间检测页面错误条件(处理框702)以及接收与页面错误条件有关的页面错误信息(处理框704)开始。
随后,一组故障过滤标准被应用于页面错误信息。明确地说,处理逻辑确定出错访问是否为写操作(判定框706)、写入PTE(判定框708),以及不是把“P”位设置为1的尝试(即DATA.P==0,其中DATA为客户正试图写入的值)(判定框710)。如果这些确定为肯定的,则允许客户操作系统的访问完成(即允许写入以修改存储器),而没有产生故障或VM出口(处理框714)。如果处理框706、708和710中的确定的任一个为否定,则控制被转移到处理框712以确定VM出口是否要被产生,或者故障将被引导到客户软件,如结合图2-5更详细描述的。
在另一个实施例中(附图中未示出),写入必须是对PTE进行的条件可被取消,或者采用例如只要当前位未被设置就允许对PTE或PDE写入的测试来代替。
参照图8,说明更复杂的故障过滤标准集合,它包括以上结合图7所述的故障过滤标准以及其它一些标准。故障过滤标准的这个集合允许客户操作系统修改PTE中除PFN、读/写以及当前位之外的位,而不要求页面错误或产生VM出口。另外,允许读/写和当前位的某些修改,而不要求页面错误或产生VM出口。
处理逻辑从在客户软件操作期间检测页面错误条件(处理框802)以及接收与页面错误条件有关的页面故障信息(处理框804)开始。随后,处理逻辑确定出错访问是否为写操作(判定框806)、写入PTE(判定框808),以及不是把“P”位设置为1的尝试(即DATA.P==0)(判定框810)。如果这些确定均为肯定,则允许客户操作系统的访问完成(即允许写入以修改存储器),而没有产生故障或VM出口(处理框814)。如果处理框806或808中的确定为否定,则控制进入处理框812,确定是否要求VM出口,如参照图2-5所述。
如果处理框810中的确定为否定,则应用附加故障过滤规则。明确地说,处理逻辑确定PTE是否已经在PTE中标记为当前(即,ADDR->P==1,其中ADDR为客户软件正尝试写入的地址,以及ADDR->P表示在存储器中位于ADDR的数据被解释为PTE时的P位)(判定框816),PFN是否没有改变(即ADDR->PFN==DATA.PFN)(判定框818),以及客户是否正尝试把PTE映射的页面标记为只读(DATA.R/W==0)或者由PTE映射的页面是否在存储器中的PTE中已经标记为可写(ADDR->R/W==1)(判定框820)。如果这些确定为肯定,则允许客户操作系统的访问完成(即允许写入以修改存储器),而没有产生故障或VM出口(处理框814)。如果处理框816、818和810中的任何确定为否定,则控制被转移到处理框812以确定是否要求VM出口。
应当指出,图7和图8所示的过滤机制将滤除利用自映射PDE尝试修改页面表的访问,如上所述。没有采用自映射PDE的修改页面表的尝试不会被故障过滤标准滤除(即,在框708和808中对于写入是否对PTE进行的确定将失败)。然后,控制转移过滤标准用来确定是否需要VM出口,如图2-5所示。从安全性或正确操作的观点来看,这不会产生问题,因为VMM能够确定是否在实际上编辑PTE。控制转移过滤机制将配置成对所有写入页面错误产生VM出口,以及评估被写入的地址和数据,以确定是否正尝试页面表编辑。
除以上参照图7和图8所述的那些之外的各种故障过滤标准可用来过滤故障,而不失一般性。过滤的形式可由各种VMM控制字段(例如PTBASE)来控制,在一个实施例中,这些字段可驻留在VMCS中。或者,过滤可由单个启用位来控制,可以被硬编码到处理器实现中,等等。
图9是定义控制转移过滤标准和/或故障过滤标准的过程900的一个实施例的框图。过程900可手动或自动执行。
参照图9,过程900从识别故障信息的哪些组合(例如误码值、故障标识符等)不要求到VMM的转换或者应当被允许完成、忽略故障(处理框902)开始。然后,可用于VM出口和/或故障过滤标准的字段最大数量以及字段语义被识别(处理框904),以及可用算子(例如布尔、算术等)被识别(处理框906)。此外,根据在处理框902-906所识别的信息,创建过滤标准(处理框908)。过滤标准可包括一个或多个预定值以及对预定值和误码执行的一个或多个布尔逻辑和/或算术运算。
这样,已经描述了处理在客户软件操作期间出现的故障的方法及装置。应当理解,以上描述只是说明性而不是限制性的。通过阅读和理解以上说明,本领域的技术人员将会十分清楚其它许多实施例。因此,本发明的范围应当参照所附权利要求以及这些权利要求涵盖的完整等效范围来确定。

Claims (15)

1.一种用于在客户软件的操作期间控制出现的故障的方法,所述方法包括:
接收关于与所述客户软件的所述操作相关联的故障的故障信息;
确定所述故障信息是否满足一个或多个过滤标准的全体;
如果所述故障信息满足所述过滤标准的全体,则禁止把控制转移到虚拟机监控器,其中禁止把控制转移到虚拟机监控器包括把所述故障传递给所述客户软件,以及
如果所述故障信息不满足所述过滤标准中的至少一个,则把控制转移到所述虚拟机监控器。
2.如权利要求1所述的方法,其特征在于:
所述过滤标准是一个或多个控制转移过滤标准;以及
禁止把控制转移到所述虚拟机监控器还包括如果所述故障信息满足所述控制转移过滤标准的全体,则把所述故障传递给所述客户软件。
3.如权利要求1所述的方法,其特征在于,所述故障信息为故障标识符、与所述故障相关联的误码以及与所述故障相关联的一个或多个附加数据值其中的至少一项。
4.如权利要求1所述的方法,其特征在于,所述故障表示中断、异常和平台事件其中的任一项。
5.如权利要求1所述的方法,其特征在于,所述故障信息包括多个值,所述多个值中的每个值指示特定条件的出现。
6.如权利要求5所述的方法,其特征在于,所述故障信息的值的一个或多个组合要求向所述虚拟机监控器的转移。
7.如权利要求1所述的方法,其特征在于,所述过滤标准采用在一个或多个指定字段中存储的数据来定义。
8.如权利要求7所述的方法,其特征在于,所述一个或多个指定字段包括匹配字段和掩码字段。
9.如权利要求8所述的方法,其特征在于,确定所述故障信息是否满足所述过滤标准的全体还包括:
采用按位进行的“与”算子将所述故障信息与所述掩码字段中存储的数据组合;以及
确定所述组合的结果是否与所述匹配字段中存储的数据匹配。
10.如权利要求9所述的方法,其特征在于,确定所述故障信息是否满足所述过滤标准的全体还包括:
确定所述组合的结果是否与所述匹配字段中存储的数据匹配;以及
识别重定向图中相应位的值,所述相应位的值指示所述故障是否要求控制转移到所述虚拟机监控器。
11.如权利要求9所述的方法,其特征在于,确定所述故障信息是否满足所述过滤标准的全体还包括:
确定所述组合的结果与所述匹配字段中存储的数据不匹配;以及
识别重定向图中相应位的值;以及
对所述相应位的值取反,所述相应位的取反值指示所述故障是否要求控制转移到所述虚拟机监控器。
12.一种用于在客户软件的操作期间控制出现的故障的系统,所述系统包括:
用于接收关于与所述客户软件的所述操作相关联的故障的故障信息的部件;
用于确定所述故障信息是否满足一个或多个过滤标准的全体的部件;
用于如果所述故障信息满足所述过滤标准的全体,则禁止把控制转移到虚拟机监控器的部件,其中禁止把控制转移到虚拟机监控器包括把所述故障传递给所述客户软件;以及
用于如果所述故障信息不满足所述过滤标准中的至少一个,则把控制转移到所述虚拟机监控器的部件。
13.如权利要求12所述的系统,其特征在于:
所述过滤标准是一个或多个控制转移过滤标准;以及
所述用于禁止把控制转移到虚拟机监控器的部件包括用于如果所述故障信息满足所述控制转移过滤标准的全体,则把所述故障传递给所述客户软件的部件。
14.如权利要求13所述的系统,其特征在于,所述控制转移过滤标准采用在一个或多个指定字段中存储的数据来定义,所述一个或多个指定字段包括匹配字段和掩码字段。
15.如权利要求14所述的系统,其特征在于,所述用于确定所述故障信息是否满足一个或多个过滤标准的全体的部件包括:
用于采用按位进行的“与”算子将所述故障信息与所述掩码字段中存储的数据组合的部件;以及
用于确定所述组合的结果是否与所述匹配字段中存储的数据匹配的部件。
CNB038199009A 2002-06-29 2003-06-13 对在虚拟机体系结构中客户软件操作期间出现的故障的控制 Expired - Lifetime CN100468351C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/184,774 2002-06-29
US10/184,774 US7124327B2 (en) 2002-06-29 2002-06-29 Control over faults occurring during the operation of guest software in the virtual-machine architecture

Publications (2)

Publication Number Publication Date
CN1679001A CN1679001A (zh) 2005-10-05
CN100468351C true CN100468351C (zh) 2009-03-11

Family

ID=29779452

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038199009A Expired - Lifetime CN100468351C (zh) 2002-06-29 2003-06-13 对在虚拟机体系结构中客户软件操作期间出现的故障的控制

Country Status (7)

Country Link
US (1) US7124327B2 (zh)
EP (1) EP1520230A2 (zh)
KR (1) KR100681975B1 (zh)
CN (1) CN100468351C (zh)
AU (1) AU2003251509A1 (zh)
TW (1) TWI232372B (zh)
WO (1) WO2004003749A2 (zh)

Families Citing this family (201)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1556082A1 (en) * 2002-10-22 2005-07-27 Aventis Pasteur Limited Anti-cancer vaccines and high-dose cytokines as adjuvants
US7287197B2 (en) * 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
US7222203B2 (en) * 2003-12-08 2007-05-22 Intel Corporation Interrupt redirection for virtual partitioning
US8171553B2 (en) 2004-04-01 2012-05-01 Fireeye, Inc. Heuristic based capture with replay to virtual machine
US8566946B1 (en) 2006-04-20 2013-10-22 Fireeye, Inc. Malware containment on connection
US9106694B2 (en) 2004-04-01 2015-08-11 Fireeye, Inc. Electronic message analysis for malware detection
US7587537B1 (en) 2007-11-30 2009-09-08 Altera Corporation Serializer-deserializer circuits formed from input-output circuit registers
US8584239B2 (en) 2004-04-01 2013-11-12 Fireeye, Inc. Virtual machine with dynamic data flow analysis
US8549638B2 (en) 2004-06-14 2013-10-01 Fireeye, Inc. System and method of containing computer worms
US8881282B1 (en) 2004-04-01 2014-11-04 Fireeye, Inc. Systems and methods for malware attack detection and identification
US9027135B1 (en) 2004-04-01 2015-05-05 Fireeye, Inc. Prospective client identification using malware attack detection
US8528086B1 (en) 2004-04-01 2013-09-03 Fireeye, Inc. System and method of detecting computer worms
US8898788B1 (en) 2004-04-01 2014-11-25 Fireeye, Inc. Systems and methods for malware attack prevention
US8793787B2 (en) 2004-04-01 2014-07-29 Fireeye, Inc. Detecting malicious network content using virtual environment components
US7370181B2 (en) * 2004-06-22 2008-05-06 Intel Corporation Single stepping a virtual machine guest using a reorder buffer
US7305592B2 (en) * 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
US7539986B2 (en) * 2004-06-30 2009-05-26 Intel Corporation Method for guest operating system integrity validation
US7886293B2 (en) * 2004-07-07 2011-02-08 Intel Corporation Optimizing system behavior in a virtual machine environment
US7840962B2 (en) * 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US20060126800A1 (en) * 2004-12-15 2006-06-15 Microsoft Corporation Fault injection object
US20060126799A1 (en) * 2004-12-15 2006-06-15 Microsoft Corporation Fault injection
US7404107B2 (en) * 2004-12-15 2008-07-22 Microsoft Corporation Fault injection selection
US7886126B2 (en) 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US8214830B2 (en) * 2005-01-19 2012-07-03 Intel Corporation Performance in a virtualization architecture with a processor abstraction layer
US7647589B1 (en) * 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US8286162B2 (en) * 2005-12-30 2012-10-09 Intel Corporation Delivering interrupts directly to a virtual processor
US7703126B2 (en) * 2006-03-31 2010-04-20 Intel Corporation Hierarchical trust based posture reporting and policy enforcement
US7555628B2 (en) 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
US7665005B2 (en) * 2006-08-25 2010-02-16 Intel Corporation In situ processor margin testing
US8615643B2 (en) 2006-12-05 2013-12-24 Microsoft Corporation Operational efficiency of virtual TLBs
US9946982B2 (en) 2007-02-28 2018-04-17 Red Hat, Inc. Web-based support subscriptions
US7739554B2 (en) * 2007-02-28 2010-06-15 Red Hat, Inc. Method and system for automatic resolution and dispatching subscription service
US8214483B2 (en) * 2007-02-28 2012-07-03 Red Hat, Inc. Method and system for continuous availability subscription service
US7694189B2 (en) 2007-02-28 2010-04-06 Red Hat, Inc. Method and system for remote monitoring subscription service
US8578337B2 (en) * 2007-02-28 2013-11-05 Red Hat, Inc. Method and system for quality assurance subscription service
US8055951B2 (en) * 2007-04-10 2011-11-08 International Business Machines Corporation System, method and computer program product for evaluating a virtual machine
US7984483B2 (en) * 2007-04-25 2011-07-19 Acxess, Inc. System and method for working in a virtualized computing environment through secure access
US9223600B1 (en) 2007-05-07 2015-12-29 Hewlett Packard Enterprise Development Lp In-processor dynamic address redirection table for substituting instruction strings
US8799620B2 (en) * 2007-06-01 2014-08-05 Intel Corporation Linear to physical address translation with support for page attributes
US8151264B2 (en) * 2007-06-29 2012-04-03 Intel Corporation Injecting virtualization events in a layered virtualization architecture
US7882274B2 (en) * 2007-09-20 2011-02-01 Virtual Desktop Technologies, Inc. Computer system with multiple terminals
US8510756B1 (en) * 2007-12-06 2013-08-13 Parallels IP Holdings GmbH Guest operating system code optimization for virtual machine
US7779305B2 (en) * 2007-12-28 2010-08-17 Intel Corporation Method and system for recovery from an error in a computing device by transferring control from a virtual machine monitor to separate firmware instructions
WO2009123640A1 (en) * 2008-04-04 2009-10-08 Hewlett-Packard Development Company, L.P. Virtual machine manager system and methods
CN101645119B (zh) * 2008-08-07 2012-05-23 中国科学院软件研究所 一种基于虚拟硬件环境的恶意代码自动分析方法及系统
US8997219B2 (en) 2008-11-03 2015-03-31 Fireeye, Inc. Systems and methods for detecting malicious PDF network content
US8850571B2 (en) 2008-11-03 2014-09-30 Fireeye, Inc. Systems and methods for detecting malicious network content
US8832829B2 (en) 2009-09-30 2014-09-09 Fireeye, Inc. Network-based binary file extraction and analysis for malware detection
US8893124B2 (en) 2011-03-31 2014-11-18 Intel Corporation Method, apparatus and system for limiting access to virtualization information in a memory
US10303501B2 (en) * 2011-08-30 2019-05-28 Hewlett-Packard Development Company, L.P. Virtual high privilege mode for a system management request
US9519782B2 (en) 2012-02-24 2016-12-13 Fireeye, Inc. Detecting malicious network content
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
CN102902599B (zh) 2012-09-17 2016-08-24 华为技术有限公司 虚拟机内部故障处理方法、装置及系统
US20140189310A1 (en) 2012-12-27 2014-07-03 Nvidia Corporation Fault detection in instruction translations
US9223602B2 (en) * 2012-12-28 2015-12-29 Intel Corporation Processors, methods, and systems to enforce blacklisted paging structure indication values
US10572665B2 (en) 2012-12-28 2020-02-25 Fireeye, Inc. System and method to create a number of breakpoints in a virtual machine via virtual machine trapping events
US8990944B1 (en) 2013-02-23 2015-03-24 Fireeye, Inc. Systems and methods for automatically detecting backdoors
US9367681B1 (en) 2013-02-23 2016-06-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications using symbolic execution to reach regions of interest within an application
US9009822B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for multi-phase analysis of mobile applications
US9824209B1 (en) 2013-02-23 2017-11-21 Fireeye, Inc. Framework for efficient security coverage of mobile software applications that is usable to harden in the field code
US9195829B1 (en) 2013-02-23 2015-11-24 Fireeye, Inc. User interface with real-time visual playback along with synchronous textual analysis log display and event/time index for anomalous behavior detection in applications
US9159035B1 (en) 2013-02-23 2015-10-13 Fireeye, Inc. Framework for computer application analysis of sensitive information tracking
US9009823B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications installed on mobile devices
US9176843B1 (en) 2013-02-23 2015-11-03 Fireeye, Inc. Framework for efficient security coverage of mobile software applications
US10235278B2 (en) * 2013-03-07 2019-03-19 International Business Machines Corporation Software testing using statistical error injection
US9355247B1 (en) 2013-03-13 2016-05-31 Fireeye, Inc. File extraction from memory dump for malicious content analysis
US9104867B1 (en) 2013-03-13 2015-08-11 Fireeye, Inc. Malicious content analysis using simulated user interaction without user involvement
US9565202B1 (en) 2013-03-13 2017-02-07 Fireeye, Inc. System and method for detecting exfiltration content
US9626509B1 (en) 2013-03-13 2017-04-18 Fireeye, Inc. Malicious content analysis with multi-version application support within single operating environment
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
US9311479B1 (en) 2013-03-14 2016-04-12 Fireeye, Inc. Correlation and consolidation of analytic data for holistic view of a malware attack
US9430646B1 (en) 2013-03-14 2016-08-30 Fireeye, Inc. Distributed systems and methods for automatically detecting unknown bots and botnets
US9413781B2 (en) 2013-03-15 2016-08-09 Fireeye, Inc. System and method employing structured intelligence to verify and contain threats at endpoints
US10713358B2 (en) 2013-03-15 2020-07-14 Fireeye, Inc. System and method to extract and utilize disassembly features to classify software intent
US9251343B1 (en) 2013-03-15 2016-02-02 Fireeye, Inc. Detecting bootkits resident on compromised computers
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US9635039B1 (en) 2013-05-13 2017-04-25 Fireeye, Inc. Classifying sets of malicious indicators for detecting command and control communications associated with malware
US9424138B2 (en) 2013-06-14 2016-08-23 Nvidia Corporation Checkpointing a computer hardware architecture state using a stack or queue
US9536091B2 (en) 2013-06-24 2017-01-03 Fireeye, Inc. System and method for detecting time-bomb malware
US10133863B2 (en) 2013-06-24 2018-11-20 Fireeye, Inc. Zero-day discovery system
US9888016B1 (en) 2013-06-28 2018-02-06 Fireeye, Inc. System and method for detecting phishing using password prediction
US9300686B2 (en) 2013-06-28 2016-03-29 Fireeye, Inc. System and method for detecting malicious links in electronic messages
US10515214B1 (en) 2013-09-30 2019-12-24 Fireeye, Inc. System and method for classifying malware within content created during analysis of a specimen
US9736179B2 (en) 2013-09-30 2017-08-15 Fireeye, Inc. System, apparatus and method for using malware analysis results to drive adaptive instrumentation of virtual machines to improve exploit detection
US9690936B1 (en) 2013-09-30 2017-06-27 Fireeye, Inc. Multistage system and method for analyzing obfuscated content for malware
US10089461B1 (en) 2013-09-30 2018-10-02 Fireeye, Inc. Page replacement code injection
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
US10192052B1 (en) 2013-09-30 2019-01-29 Fireeye, Inc. System, apparatus and method for classifying a file as malicious using static scanning
US9171160B2 (en) 2013-09-30 2015-10-27 Fireeye, Inc. Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses
US9628507B2 (en) 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
US9921978B1 (en) 2013-11-08 2018-03-20 Fireeye, Inc. System and method for enhanced security of storage devices
US9189627B1 (en) 2013-11-21 2015-11-17 Fireeye, Inc. System, apparatus and method for conducting on-the-fly decryption of encrypted objects for malware detection
US9747446B1 (en) 2013-12-26 2017-08-29 Fireeye, Inc. System and method for run-time object classification
US9756074B2 (en) 2013-12-26 2017-09-05 Fireeye, Inc. System and method for IPS and VM-based detection of suspicious objects
US9507935B2 (en) 2014-01-16 2016-11-29 Fireeye, Inc. Exploit detection system with threat-aware microvisor
US9262635B2 (en) 2014-02-05 2016-02-16 Fireeye, Inc. Detection efficacy of virtual machine-based analysis with application specific events
US9241010B1 (en) 2014-03-20 2016-01-19 Fireeye, Inc. System and method for network behavior detection
US10242185B1 (en) 2014-03-21 2019-03-26 Fireeye, Inc. Dynamic guest image creation and rollback
US9591015B1 (en) 2014-03-28 2017-03-07 Fireeye, Inc. System and method for offloading packet processing and static analysis operations
US9432389B1 (en) 2014-03-31 2016-08-30 Fireeye, Inc. System, apparatus and method for detecting a malicious attack based on static analysis of a multi-flow object
US9223972B1 (en) 2014-03-31 2015-12-29 Fireeye, Inc. Dynamically remote tuning of a malware content detection system
US9973531B1 (en) 2014-06-06 2018-05-15 Fireeye, Inc. Shellcode detection
US9438623B1 (en) 2014-06-06 2016-09-06 Fireeye, Inc. Computer exploit detection using heap spray pattern matching
US9594912B1 (en) 2014-06-06 2017-03-14 Fireeye, Inc. Return-oriented programming detection
US10084813B2 (en) 2014-06-24 2018-09-25 Fireeye, Inc. Intrusion prevention and remedy system
US10805340B1 (en) 2014-06-26 2020-10-13 Fireeye, Inc. Infection vector and malware tracking with an interactive user display
US9398028B1 (en) 2014-06-26 2016-07-19 Fireeye, Inc. System, device and method for detecting a malicious attack based on communcations between remotely hosted virtual machines and malicious web servers
US10002252B2 (en) 2014-07-01 2018-06-19 Fireeye, Inc. Verification of trusted threat-aware microvisor
US9672354B2 (en) * 2014-08-18 2017-06-06 Bitdefender IPR Management Ltd. Systems and methods for exposing a result of a current processor instruction upon exiting a virtual machine
US9363280B1 (en) 2014-08-22 2016-06-07 Fireeye, Inc. System and method of detecting delivery of malware using cross-customer data
US10671726B1 (en) 2014-09-22 2020-06-02 Fireeye Inc. System and method for malware analysis using thread-level event monitoring
US9773112B1 (en) 2014-09-29 2017-09-26 Fireeye, Inc. Exploit detection of malware and malware families
US10027689B1 (en) 2014-09-29 2018-07-17 Fireeye, Inc. Interactive infection visualization for improved exploit detection and signature generation for malware and malware families
US9690933B1 (en) 2014-12-22 2017-06-27 Fireeye, Inc. Framework for classifying an object as malicious with machine learning for deploying updated predictive models
US10075455B2 (en) 2014-12-26 2018-09-11 Fireeye, Inc. Zero-day rotating guest image profile
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
US9838417B1 (en) 2014-12-30 2017-12-05 Fireeye, Inc. Intelligent context aware user interaction for malware detection
CN104680067B (zh) * 2015-02-15 2017-12-19 安一恒通(北京)科技有限公司 文件的检测方法及装置
US10148693B2 (en) 2015-03-25 2018-12-04 Fireeye, Inc. Exploit detection system
US9690606B1 (en) 2015-03-25 2017-06-27 Fireeye, Inc. Selective system call monitoring
US9438613B1 (en) 2015-03-30 2016-09-06 Fireeye, Inc. Dynamic content activation for automated analysis of embedded objects
US9483644B1 (en) 2015-03-31 2016-11-01 Fireeye, Inc. Methods for detecting file altering malware in VM based analysis
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US10417031B2 (en) 2015-03-31 2019-09-17 Fireeye, Inc. Selective virtualization for security threat detection
US9654485B1 (en) 2015-04-13 2017-05-16 Fireeye, Inc. Analytics-based security monitoring system and method
US9594904B1 (en) 2015-04-23 2017-03-14 Fireeye, Inc. Detecting malware based on reflection
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
US10715542B1 (en) 2015-08-14 2020-07-14 Fireeye, Inc. Mobile application risk analysis
US10176321B2 (en) 2015-09-22 2019-01-08 Fireeye, Inc. Leveraging behavior-based rules for malware family classification
US10033747B1 (en) 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
US10601865B1 (en) 2015-09-30 2020-03-24 Fireeye, Inc. Detection of credential spearphishing attacks using email analysis
US10706149B1 (en) 2015-09-30 2020-07-07 Fireeye, Inc. Detecting delayed activation malware using a primary controller and plural time controllers
US10817606B1 (en) 2015-09-30 2020-10-27 Fireeye, Inc. Detecting delayed activation malware using a run-time monitoring agent and time-dilation logic
US9825976B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Detection and classification of exploit kits
US10210329B1 (en) 2015-09-30 2019-02-19 Fireeye, Inc. Method to detect application execution hijacking using memory protection
US9825989B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Cyber attack early warning system
US10284575B2 (en) 2015-11-10 2019-05-07 Fireeye, Inc. Launcher for setting analysis environment variations for malware detection
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
US10846117B1 (en) 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
CN105468434A (zh) * 2015-12-11 2016-04-06 浪潮(北京)电子信息产业有限公司 一种处理虚拟机异常的方法及装置
US10108446B1 (en) 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
US10133866B1 (en) 2015-12-30 2018-11-20 Fireeye, Inc. System and method for triggering analysis of an object for malware in response to modification of that object
US10565378B1 (en) 2015-12-30 2020-02-18 Fireeye, Inc. Exploit of privilege detection framework
US10621338B1 (en) 2015-12-30 2020-04-14 Fireeye, Inc. Method to detect forgery and exploits using last branch recording registers
US10050998B1 (en) 2015-12-30 2018-08-14 Fireeye, Inc. Malicious message analysis system
US11552986B1 (en) 2015-12-31 2023-01-10 Fireeye Security Holdings Us Llc Cyber-security framework for application of virtual features
US10581874B1 (en) 2015-12-31 2020-03-03 Fireeye, Inc. Malware detection system with contextual analysis
US9824216B1 (en) 2015-12-31 2017-11-21 Fireeye, Inc. Susceptible environment detection system
US10601863B1 (en) 2016-03-25 2020-03-24 Fireeye, Inc. System and method for managing sensor enrollment
US10476906B1 (en) 2016-03-25 2019-11-12 Fireeye, Inc. System and method for managing formation and modification of a cluster within a malware detection system
US10671721B1 (en) 2016-03-25 2020-06-02 Fireeye, Inc. Timeout management services
US10785255B1 (en) 2016-03-25 2020-09-22 Fireeye, Inc. Cluster configuration within a scalable malware detection system
US10893059B1 (en) 2016-03-31 2021-01-12 Fireeye, Inc. Verification and enhancement using detection systems located at the network periphery and endpoint devices
US10169585B1 (en) 2016-06-22 2019-01-01 Fireeye, Inc. System and methods for advanced malware detection through placement of transition events
US10462173B1 (en) 2016-06-30 2019-10-29 Fireeye, Inc. Malware detection verification and enhancement by coordinating endpoint and malware detection systems
US10592678B1 (en) 2016-09-09 2020-03-17 Fireeye, Inc. Secure communications between peers using a verified virtual trusted platform module
US10491627B1 (en) 2016-09-29 2019-11-26 Fireeye, Inc. Advanced malware detection using similarity analysis
US10795991B1 (en) 2016-11-08 2020-10-06 Fireeye, Inc. Enterprise search
US10587647B1 (en) 2016-11-22 2020-03-10 Fireeye, Inc. Technique for malware detection capability comparison of network security devices
US10635479B2 (en) * 2016-12-19 2020-04-28 Bitdefender IPR Management Ltd. Event filtering for virtual machine security applications
US10581879B1 (en) 2016-12-22 2020-03-03 Fireeye, Inc. Enhanced malware detection for generated objects
US10552610B1 (en) 2016-12-22 2020-02-04 Fireeye, Inc. Adaptive virtual machine snapshot update framework for malware behavioral analysis
US10523609B1 (en) 2016-12-27 2019-12-31 Fireeye, Inc. Multi-vector malware detection and analysis
US10904286B1 (en) 2017-03-24 2021-01-26 Fireeye, Inc. Detection of phishing attacks using similarity analysis
US10554507B1 (en) 2017-03-30 2020-02-04 Fireeye, Inc. Multi-level control for enhanced resource and object evaluation management of malware detection system
US10791138B1 (en) 2017-03-30 2020-09-29 Fireeye, Inc. Subscription-based malware detection
US10902119B1 (en) 2017-03-30 2021-01-26 Fireeye, Inc. Data extraction system for malware analysis
US10798112B2 (en) 2017-03-30 2020-10-06 Fireeye, Inc. Attribute-controlled malware detection
US10503904B1 (en) 2017-06-29 2019-12-10 Fireeye, Inc. Ransomware detection and mitigation
US10855700B1 (en) 2017-06-29 2020-12-01 Fireeye, Inc. Post-intrusion detection of cyber-attacks during lateral movement within networks
US10601848B1 (en) 2017-06-29 2020-03-24 Fireeye, Inc. Cyber-security system and method for weak indicator detection and correlation to generate strong indicators
US10893068B1 (en) 2017-06-30 2021-01-12 Fireeye, Inc. Ransomware file modification prevention technique
US10747872B1 (en) 2017-09-27 2020-08-18 Fireeye, Inc. System and method for preventing malware evasion
US10805346B2 (en) 2017-10-01 2020-10-13 Fireeye, Inc. Phishing attack detection
US11108809B2 (en) 2017-10-27 2021-08-31 Fireeye, Inc. System and method for analyzing binary code for malware classification using artificial neural network techniques
US11240275B1 (en) 2017-12-28 2022-02-01 Fireeye Security Holdings Us Llc Platform and method for performing cybersecurity analyses employing an intelligence hub with a modular architecture
US11005860B1 (en) 2017-12-28 2021-05-11 Fireeye, Inc. Method and system for efficient cybersecurity analysis of endpoint events
US11271955B2 (en) 2017-12-28 2022-03-08 Fireeye Security Holdings Us Llc Platform and method for retroactive reclassification employing a cybersecurity-based global data store
US10826931B1 (en) 2018-03-29 2020-11-03 Fireeye, Inc. System and method for predicting and mitigating cybersecurity system misconfigurations
US10956477B1 (en) 2018-03-30 2021-03-23 Fireeye, Inc. System and method for detecting malicious scripts through natural language processing modeling
US11558401B1 (en) 2018-03-30 2023-01-17 Fireeye Security Holdings Us Llc Multi-vector malware detection data sharing system for improved detection
US11003773B1 (en) 2018-03-30 2021-05-11 Fireeye, Inc. System and method for automatically generating malware detection rule recommendations
US11075930B1 (en) 2018-06-27 2021-07-27 Fireeye, Inc. System and method for detecting repetitive cybersecurity attacks constituting an email campaign
US11314859B1 (en) 2018-06-27 2022-04-26 FireEye Security Holdings, Inc. Cyber-security system and method for detecting escalation of privileges within an access token
US11228491B1 (en) 2018-06-28 2022-01-18 Fireeye Security Holdings Us Llc System and method for distributed cluster configuration monitoring and management
US11316900B1 (en) 2018-06-29 2022-04-26 FireEye Security Holdings Inc. System and method for automatically prioritizing rules for cyber-threat detection and mitigation
US11182473B1 (en) 2018-09-13 2021-11-23 Fireeye Security Holdings Us Llc System and method for mitigating cyberattacks against processor operability by a guest process
US11763004B1 (en) 2018-09-27 2023-09-19 Fireeye Security Holdings Us Llc System and method for bootkit detection
US11368475B1 (en) 2018-12-21 2022-06-21 Fireeye Security Holdings Us Llc System and method for scanning remote services to locate stored objects with malware
US11258806B1 (en) 2019-06-24 2022-02-22 Mandiant, Inc. System and method for automatically associating cybersecurity intelligence to cyberthreat actors
US11556640B1 (en) 2019-06-27 2023-01-17 Mandiant, Inc. Systems and methods for automated cybersecurity analysis of extracted binary string sets
US11392700B1 (en) 2019-06-28 2022-07-19 Fireeye Security Holdings Us Llc System and method for supporting cross-platform data verification
US11113094B1 (en) 2019-08-28 2021-09-07 Parallels International Gmbh Physical memory management for virtual machines
US11886585B1 (en) 2019-09-27 2024-01-30 Musarubra Us Llc System and method for identifying and mitigating cyberattacks through malicious position-independent code execution
US11637862B1 (en) 2019-09-30 2023-04-25 Mandiant, Inc. System and method for surfacing cyber-security threats with a self-learning recommendation engine
CN111274086B (zh) * 2020-01-15 2023-06-13 湖北工程学院 一种计算机软件故障监测系统

Family Cites Families (148)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699532A (en) 1970-04-21 1972-10-17 Singer Co Multiprogramming control for a data handling system
JPS50117336A (zh) * 1973-11-30 1975-09-13
US3996449A (en) 1975-08-25 1976-12-07 International Business Machines Corporation Operating system authenticator
US4162536A (en) 1976-01-02 1979-07-24 Gould Inc., Modicon Div. Digital input/output system and method
US4037214A (en) 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4247905A (en) 1977-08-26 1981-01-27 Sharp Kabushiki Kaisha Memory clear system
US4278837A (en) 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4276594A (en) 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
US4207609A (en) 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
JPS5823570B2 (ja) 1978-11-30 1983-05-16 国産電機株式会社 液面検出装置
JPS5576447A (en) 1978-12-01 1980-06-09 Fujitsu Ltd Address control system for software simulation
US4307447A (en) 1979-06-19 1981-12-22 Gould Inc. Programmable controller
US4319323A (en) 1980-04-04 1982-03-09 Digital Equipment Corporation Communications device for data processing system
US4419724A (en) 1980-04-14 1983-12-06 Sperry Corporation Main bus interface package
US4366537A (en) 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys
US4403283A (en) 1980-07-28 1983-09-06 Ncr Corporation Extended memory system and method
DE3034581A1 (de) 1980-09-13 1982-04-22 Robert Bosch Gmbh, 7000 Stuttgart Auslesesicherung bei einchip-mikroprozessoren
JPS58140862A (ja) 1982-02-16 1983-08-20 Toshiba Corp 相互排他方式
US4521852A (en) 1982-06-30 1985-06-04 Texas Instruments Incorporated Data processing device formed on a single semiconductor substrate having secure memory
JPS59111561A (ja) 1982-12-17 1984-06-27 Hitachi Ltd 複合プロセツサ・システムのアクセス制御方式
US4759064A (en) 1985-10-07 1988-07-19 Chaum David L Blind unanticipated signature systems
US4975836A (en) 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
DE3689287T2 (de) * 1985-02-18 1994-05-26 Nec Corp Datenverarbeitungsgerät.
JPS61206043A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd 仮想計算機システムにおける割込制御方法
JPS61206057A (ja) 1985-03-11 1986-09-12 Hitachi Ltd アドレス変換装置
FR2592510B1 (fr) 1985-12-31 1988-02-12 Bull Cp8 Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire
FR2601476B1 (fr) 1986-07-11 1988-10-21 Bull Cp8 Procede pour authentifier une donnee d'habilitation externe par un objet portatif tel qu'une carte a memoire
FR2601525B1 (fr) 1986-07-11 1988-10-21 Bull Cp8 Dispositif de securite interdisant le fonctionnement d'un ensemble electronique apres une premiere coupure de son alimentation electrique
FR2601535B1 (fr) 1986-07-11 1988-10-21 Bull Cp8 Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission
FR2618002B1 (fr) 1987-07-10 1991-07-05 Schlumberger Ind Sa Procede et systeme d'authentification de cartes a memoire electronique
US5007082A (en) 1988-08-03 1991-04-09 Kelly Services, Inc. Computer software encryption apparatus
US5079737A (en) 1988-10-25 1992-01-07 United Technologies Corporation Memory management unit for the MIL-STD 1750 bus
US5434999A (en) 1988-11-09 1995-07-18 Bull Cp8 Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal
FR2640798B1 (fr) 1988-12-20 1993-01-08 Bull Cp8 Dispositif de traitement de donnees comportant une memoire non volatile electriquement effacable et reprogrammable
JPH02171934A (ja) 1988-12-26 1990-07-03 Hitachi Ltd 仮想計算機システム
JPH02208740A (ja) 1989-02-09 1990-08-20 Fujitsu Ltd 仮想計算機制御方式
US5442645A (en) 1989-06-06 1995-08-15 Bull Cp8 Method for checking the integrity of a program or data, and apparatus for implementing this method
JP2590267B2 (ja) 1989-06-30 1997-03-12 株式会社日立製作所 仮想計算機における表示制御方式
US5022077A (en) 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
JP2825550B2 (ja) 1989-09-21 1998-11-18 株式会社日立製作所 多重仮想空間アドレス制御方法および計算機システム
CA2010591C (en) 1989-10-20 1999-01-26 Phillip M. Adams Kernels, description tables and device drivers
CA2027799A1 (en) 1989-11-03 1991-05-04 David A. Miller Method and apparatus for independently resetting processors and cache controllers in multiple processor systems
US5075842A (en) 1989-12-22 1991-12-24 Intel Corporation Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism
US5108590A (en) 1990-09-12 1992-04-28 Disanto Dennis Water dispenser
US5230069A (en) 1990-10-02 1993-07-20 International Business Machines Corporation Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system
US5317705A (en) 1990-10-24 1994-05-31 International Business Machines Corporation Apparatus and method for TLB purge reduction in a multi-level machine system
US5287363A (en) 1991-07-01 1994-02-15 Disk Technician Corporation System for locating and anticipating data storage media failures
US5437033A (en) 1990-11-16 1995-07-25 Hitachi, Ltd. System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode
US5255379A (en) 1990-12-28 1993-10-19 Sun Microsystems, Inc. Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor
US5453003A (en) 1991-01-09 1995-09-26 Pfefferle; William C. Catalytic method
US5319760A (en) 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5522075A (en) * 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
US5455909A (en) 1991-07-05 1995-10-03 Chips And Technologies Inc. Microprocessor with operation capture facility
JPH06236284A (ja) 1991-10-21 1994-08-23 Intel Corp コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム
US5627987A (en) 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5574936A (en) 1992-01-02 1996-11-12 Amdahl Corporation Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
US5486529A (en) 1992-04-16 1996-01-23 Zeneca Limited Certain pyridyl ketones for treating diseases involving leukocyte elastase
US5421006A (en) 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5237616A (en) 1992-09-21 1993-08-17 International Business Machines Corporation Secure computer system having privileged and unprivileged memories
US5293424A (en) 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
US5796835A (en) 1992-10-27 1998-08-18 Bull Cp8 Method and system for writing information in a data carrier making it possible to later certify the originality of this information
JP2765411B2 (ja) 1992-11-30 1998-06-18 株式会社日立製作所 仮想計算機方式
US5668971A (en) 1992-12-01 1997-09-16 Compaq Computer Corporation Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer
JPH06187178A (ja) 1992-12-18 1994-07-08 Hitachi Ltd 仮想計算機システムの入出力割込み制御方法
US5483656A (en) 1993-01-14 1996-01-09 Apple Computer, Inc. System for managing power consumption of devices coupled to a common bus
US5469557A (en) 1993-03-05 1995-11-21 Microchip Technology Incorporated Code protection in microcontroller with EEPROM fuses
FR2703800B1 (fr) 1993-04-06 1995-05-24 Bull Cp8 Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre.
FR2704341B1 (fr) 1993-04-22 1995-06-02 Bull Cp8 Dispositif de protection des clés d'une carte à puce.
JPH06348867A (ja) 1993-06-04 1994-12-22 Hitachi Ltd マイクロコンピュータ
FR2706210B1 (fr) 1993-06-08 1995-07-21 Bull Cp8 Procédé d'authentification d'un objet portatif par un terminal hors ligne, objet portatif et terminal correspondants.
US5555385A (en) 1993-10-27 1996-09-10 International Business Machines Corporation Allocation of address spaces within virtual machine compute system
US5825880A (en) 1994-01-13 1998-10-20 Sudia; Frank W. Multi-step digital signature method and system
US5459869A (en) 1994-02-17 1995-10-17 Spilo; Michael L. Method for providing protected mode services for device drivers and other resident software
US5604805A (en) 1994-02-28 1997-02-18 Brands; Stefanus A. Privacy-protected transfer of electronic information
FR2717286B1 (fr) 1994-03-09 1996-04-05 Bull Cp8 Procédé et dispositif pour authentifier un support de données destiné à permettre une transaction ou l'accès à un service ou à un lieu, et support correspondant.
US5684881A (en) 1994-05-23 1997-11-04 Matsushita Electric Industrial Co., Ltd. Sound field and sound image control apparatus and method
US5473692A (en) 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
US5539828A (en) 1994-05-31 1996-07-23 Intel Corporation Apparatus and method for providing secured communications
JPH0883211A (ja) 1994-09-12 1996-03-26 Mitsubishi Electric Corp データ処理装置
DE69534757T2 (de) * 1994-09-15 2006-08-31 International Business Machines Corp. System und Verfahren zur sicheren Speicherung und Verteilung von Daten unter Verwendung digitaler Unterschriften
FR2725537B1 (fr) 1994-10-11 1996-11-22 Bull Cp8 Procede de chargement d'une zone memoire protegee d'un dispositif de traitement de l'information et dispositif associe
US5606617A (en) 1994-10-14 1997-02-25 Brands; Stefanus A. Secret-key certificates
US5564040A (en) 1994-11-08 1996-10-08 International Business Machines Corporation Method and apparatus for providing a server function in a logically partitioned hardware machine
US5560013A (en) 1994-12-06 1996-09-24 International Business Machines Corporation Method of using a target processor to execute programs of a source architecture that uses multiple address spaces
US5555414A (en) 1994-12-14 1996-09-10 International Business Machines Corporation Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals
US5615263A (en) 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5764969A (en) 1995-02-10 1998-06-09 International Business Machines Corporation Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization
FR2731536B1 (fr) 1995-03-10 1997-04-18 Schlumberger Ind Sa Procede d'inscription securisee d'informations dans un support portable
US5717903A (en) 1995-05-15 1998-02-10 Compaq Computer Corporation Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device
JP3451595B2 (ja) 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
US5684948A (en) 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
US5633929A (en) 1995-09-15 1997-05-27 Rsa Data Security, Inc Cryptographic key escrow system having reduced vulnerability to harvesting attacks
US5737760A (en) 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
US6093213A (en) * 1995-10-06 2000-07-25 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (SMM) in a processor
JP3693721B2 (ja) 1995-11-10 2005-09-07 Necエレクトロニクス株式会社 フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法
US5657445A (en) 1996-01-26 1997-08-12 Dell Usa, L.P. Apparatus and method for limiting access to mass storage devices in a computer system
US5835594A (en) 1996-02-09 1998-11-10 Intel Corporation Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US5809546A (en) 1996-05-23 1998-09-15 International Business Machines Corporation Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers
US5729760A (en) 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US5740178A (en) 1996-08-29 1998-04-14 Lucent Technologies Inc. Software for controlling a reliable backup memory
US5844986A (en) 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US5935242A (en) * 1996-10-28 1999-08-10 Sun Microsystems, Inc. Method and apparatus for initializing a device
US5852717A (en) 1996-11-20 1998-12-22 Shiva Corporation Performance optimizations for computer networks utilizing HTTP
US5901225A (en) 1996-12-05 1999-05-04 Advanced Micro Devices, Inc. System and method for performing software patches in embedded systems
US5757919A (en) 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
JP4000654B2 (ja) * 1997-02-27 2007-10-31 セイコーエプソン株式会社 半導体装置及び電子機器
US6044478A (en) * 1997-05-30 2000-03-28 National Semiconductor Corporation Cache with finely granular locked-down regions
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6175924B1 (en) * 1997-06-20 2001-01-16 International Business Machines Corp. Method and apparatus for protecting application data in secure storage areas
US6035374A (en) * 1997-06-25 2000-03-07 Sun Microsystems, Inc. Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency
US5978475A (en) * 1997-07-18 1999-11-02 Counterpane Internet Security, Inc. Event auditing system
US5919257A (en) * 1997-08-08 1999-07-06 Novell, Inc. Networked workstation intrusion detection system
US5935247A (en) * 1997-09-18 1999-08-10 Geneticware Co., Ltd. Computer system having a genetic code that cannot be directly accessed and a method of maintaining the same
US6108644A (en) * 1998-02-19 2000-08-22 At&T Corp. System and method for electronic transactions
US6131166A (en) * 1998-03-13 2000-10-10 Sun Microsystems, Inc. System and method for cross-platform application level power management
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US6609199B1 (en) * 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6237061B1 (en) * 1999-01-05 2001-05-22 Netlogic Microsystems, Inc. Method for longest prefix matching in a content addressable memory
US6282650B1 (en) * 1999-01-25 2001-08-28 Intel Corporation Secure public digital watermark
US7111290B1 (en) * 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US6560627B1 (en) * 1999-01-28 2003-05-06 Cisco Technology, Inc. Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore
US6188257B1 (en) * 1999-02-01 2001-02-13 Vlsi Technology, Inc. Power-on-reset logic with secure power down capability
US7225333B2 (en) * 1999-03-27 2007-05-29 Microsoft Corporation Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US6615278B1 (en) * 1999-03-29 2003-09-02 International Business Machines Corporation Cross-platform program, system, and method having a global registry object for mapping registry equivalent functions in an OS/2 operating system environment
US6684326B1 (en) * 1999-03-31 2004-01-27 International Business Machines Corporation Method and system for authenticated boot operations in a computer system of a networked computing environment
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6275933B1 (en) * 1999-04-30 2001-08-14 3Com Corporation Security system for a computerized apparatus
US6529909B1 (en) * 1999-08-31 2003-03-04 Accenture Llp Method for translating an object attribute converter in an information services patterns environment
JP3710671B2 (ja) * 2000-03-14 2005-10-26 シャープ株式会社 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法
US6678825B1 (en) * 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
GB0020416D0 (en) * 2000-08-18 2000-10-04 Hewlett Packard Co Trusted system
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7631160B2 (en) * 2001-04-04 2009-12-08 Advanced Micro Devices, Inc. Method and apparatus for securing portions of memory
US6976136B2 (en) * 2001-05-07 2005-12-13 National Semiconductor Corporation Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
US7676430B2 (en) * 2001-05-09 2010-03-09 Lenovo (Singapore) Ptd. Ltd. System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset
US7191464B2 (en) * 2001-10-16 2007-03-13 Lenovo Pte. Ltd. Method and system for tracking a secure boot in a trusted computing environment
US7103771B2 (en) * 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US20030126453A1 (en) * 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7308576B2 (en) * 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
US7107460B2 (en) * 2002-02-15 2006-09-12 International Business Machines Corporation Method and system for securing enablement access to a data security device
US7343493B2 (en) * 2002-03-28 2008-03-11 Lenovo (Singapore) Pte. Ltd. Encrypted file system using TCPA
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
US7318141B2 (en) * 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MICROPROCESSING AND MICROPROGRAMMING. SHANG RONG TSAI ET AL,81-96,ON THE ARCHITECTURAL SUPPORT FORLOGICAL MACHINE SYSTEMS. 1988
MICROPROCESSING AND MICROPROGRAMMING. SHANG RONG TSAI ET AL,81-96,ON THE ARCHITECTURAL SUPPORT FORLOGICAL MACHINE SYSTEMS. 1988 *

Also Published As

Publication number Publication date
AU2003251509A1 (en) 2004-01-19
KR100681975B1 (ko) 2007-02-15
US7124327B2 (en) 2006-10-17
TW200408935A (en) 2004-06-01
WO2004003749A2 (en) 2004-01-08
CN1679001A (zh) 2005-10-05
TWI232372B (en) 2005-05-11
EP1520230A2 (en) 2005-04-06
WO2004003749A3 (en) 2005-02-03
US20040003323A1 (en) 2004-01-01
KR20050016918A (ko) 2005-02-21

Similar Documents

Publication Publication Date Title
CN100468351C (zh) 对在虚拟机体系结构中客户软件操作期间出现的故障的控制
CN100468324C (zh) 处理与虚拟机体系结构中客户软件的操作相关联的故障
US8458791B2 (en) Hardware-implemented hypervisor for root-of-trust monitoring and control of computer system
US10467407B2 (en) Method and system for detecting kernel corruption exploits
US9548986B2 (en) Sensitive data tracking using dynamic taint analysis
US9529614B2 (en) Automatically bridging the semantic gap in machine introspection
CN1849585B (zh) 使用多个虚拟机监控器处理特许事件的方法、系统和产品
US20220309134A1 (en) System and method for translating mapping policy into code
CN101339518B (zh) 在分层虚拟化体系结构中插入虚拟化事件的装置和方法
US20030188178A1 (en) System and method providing region-granular, hardware-controlled memory encryption
US20220374415A1 (en) Systems and methods for updating metadata
CN104205064A (zh) 将程序事件记录事件向运行时间检测事件的变换
CN1920797A (zh) 存储器访问控制装置
WO2020097177A1 (en) Systems and methods for stalling host processor
WO2008017796A1 (en) Apparatus and method for performing integrity checks on software
CN104380264A (zh) 运行时间检测报告
CN104364769A (zh) 处理器特性的运行时间检测监控
US20170286672A1 (en) System, Apparatus And Method For Filtering Memory Access Logging In A Processor
WO2019213061A1 (en) Systems and methods for checking safety properties
US10248785B2 (en) Application memory protection using a host page table switching virtual machine function
US8091090B2 (en) Method for providing scratch registers for use by a virtual-machine monitor
Peglow et al. Security analysis of hybrid Intel CPU/FPGA platforms using IOMMUs against I/O attacks
WO2023175289A1 (en) Read-as-x property for page of memory address space
CN111767119A (zh) 一种不触发系统保护的内核挂钩方法
Bielat et al. Final Evaluation Report American Telephone and Telegraph Company, System V/MLS Release 1.2. 0 Running on UNIX System V, Release 3.1. 1 Rating Maintenance Plan

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
CX01 Expiry of patent term

Granted publication date: 20090311

CX01 Expiry of patent term