CN103547997B - 一种处理器模式锁定方法、系统及设备 - Google Patents

一种处理器模式锁定方法、系统及设备 Download PDF

Info

Publication number
CN103547997B
CN103547997B CN201280011393.5A CN201280011393A CN103547997B CN 103547997 B CN103547997 B CN 103547997B CN 201280011393 A CN201280011393 A CN 201280011393A CN 103547997 B CN103547997 B CN 103547997B
Authority
CN
China
Prior art keywords
processor
tupe
value
control
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201280011393.5A
Other languages
English (en)
Other versions
CN103547997A (zh
Inventor
A·桑顿
J-I·李
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN103547997A publication Critical patent/CN103547997A/zh
Application granted granted Critical
Publication of CN103547997B publication Critical patent/CN103547997B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本公开内容的实现方式涉及一种用于以下方法、系统和计算机可读介质,该方法、系统和计算机可读介质用于:在第一处理模式中操作数据处理装置中的处理器;设置处理器的控制寄存器的一个或者多个控制位以配置处理器在不同的第二处理模式中操作;在执行于数据处理装置上的虚拟机中提供虚拟寄存器,虚拟寄存器具有与控制寄存器的控制位对应的一个或者多个锁定位;设置虚拟寄存器的一个或者多个锁定位的值;以及响应于设置一个或者多个锁定位的值,防止处理器被配置用于在第一处理模式中操作。

Description

一种处理器模式锁定方法、系统及设备
优先权要求
本申请要求对通过引用将其全部内容结合于此、于2012年1月9日提交的第13/346,547号美国专利申请和于2011年1月13日提交的第61/432,526号美国临时专利申请的优先权。
技术领域
本公开内容涉及处理器模式锁定。
背景技术
云计算是基于网络的计算,在该计算中,在数据中心或者“服务器群”中容纳的服务器的大型汇集通常按照需要向远程终端用户提供计算资源和数据存储装置。一些云计算服务向终端用户提供对软件应用(比如字处理器和其他常用应用)的访问,这些终端用户通过web浏览器或者其他客户端侧软件与应用交互。用户的电子数据文件通常被存储于服务器群中而不是用户的计算设备上。在服务器群上维护软件应用和用户数据简化终端用户计算设备的管理。一些云计算服务允许终端用户在虚拟机中执行软件应用。
发明内容
一般而言,可以在包括以下动作的方法中体现在本说明书中描述的主题内容的一个创新方面:在第一处理模式中操作数据处理装置中的处理器;设置处理器的控制寄存器的一个或者多个控制位以配置处理器在不同的第二处理模式中操作;在执行于数据处理装置上的虚拟机中提供虚拟寄存器,虚拟寄存器具有与控制寄存器的控制位对应的一个或者多个锁定位;设置虚拟寄存器的一个或者多个 锁定位的值;以及响应于设置一个或者多个锁定位的值,防止处理器被配置用于在第一处理模式中操作。这一方面的其他实施例包括对应系统、装置和计算机程序。
这些和其他方面可以可选地包括以下特征中的一个或者多个特征。可以截获用于改变控制寄存器的一个或者多个控制位的值的尝试。设置一个或者多个锁定位的值还可以包括指示监视一个或者多个控制位的值。操作处理器可以包括在引导处理器的操作系统期间在第一处理模式中操作处理器。第一处理模式可以是16位处理模式并且第二处理模式可以是32位处理模式。第一处理模式可以是16位处理模式并且第二处理模式可以是64位处理模式。响应于设置一个或者多个锁定位的值,处理器可以被配置用于仅在第二处理模式中操作。
可以实施在本说明中描述的主题内容的特定实施例以便实现以下优点中的一个或者多个优点。计算设备能够从在第一处理模式之下操作改变成在第二处理模式之下操作。一旦计算设备在第二处理模式之下操作,则防止计算设备再次在第一处理模式之下操作。
在附图和以下描述中阐述在本说明书中描述的主题内容的一个或者多个实施例的细节。主题内容的其他特征、方面和优点将从描述、附图和权利要求变得清楚。
附图说明
图1图示根据本公开内容的示例虚拟机系统架构。
图2-图4图示示例虚拟机系统的简化示意图示。
图5图示用于控制虚拟机系统的处理模式的示例技术的流程图。
具体实施方式
图1是示例虚拟机系统100的示意图示。该系统包括一个或者多个主机机器,如例如主机机器102和主机机器104。一般而言,主 机机器是一个或者多个数据处理装置,比如架装式服务器或者其他计算设备。主机机器可以具有不同能力和计算机架构。主机机器可以通过内部数据通信网络116相互通信。内部网络可以包括例如包括一个或者多个有线(例如,以太网)或者无线(例如,WI-FI)网络。在一些实现方式中,内部网络116是内联网。主机机器也可以通过一个或者多个网关120与外部网络(比如因特网122)上的设备通信,该一个或者多个网关120是负责在内部网络116与因特网122之间路由(route)数据通信流量的数据处理装置。其他类型的外部网络是可能的。
每个主机机器执行主机操作系统或者其他软件,该主机操作系统或者其他软件虚拟化下层主机机器硬件并且管理一个或者多个虚拟机的并行执行。例如,主机操作系统106管理虚拟机(VM)110和VM 112,而主机OS 108管理单个VM 114。每个VM包括下层主机机器硬件的并且被称为虚拟硬件(例如,虚拟硬件110a、112a和114a)的模拟版本。由虚拟硬件执行的软件被称为客户软件。在一些实现方式中,客户软件无法确定它是否在由虚拟硬件或者由物理主机机器执行。如果在VM中执行的客户软件或者VM本身出故障或者中止,则在主机机器上执行的其他VM将不会受影响。主机机器的微处理器可以包括处理器级机制,这些机制用于通过允许在主机机器的微处理器上直接执行客户软件指令而无需代码重写、重新编译或者指令模拟来使虚拟硬件高效执行软件应用。
向每个VM(例如,VM 110、112和114)分配来自下层主机操作系统的虚拟存储器的一组虚拟存储器页面并且分配来自一个或者多个虚拟盘驱动的虚拟盘块以用于由在VM上执行的客户软件使用。例如,主机操作系统106向VM 110和VM 112分配存储器页面和盘块,并且主机操作系统108为VM 114完成相同操作。在一些实现方式中,给定VM无法访问已经向其他VM指派的存储器页面。例如,VM 110无法访问已经向VM 112指派的存储器页面。可以跨越VM重启而持续虚拟盘驱动。例如,在耦合到主机机器的或者通 过内部网络116可用的物理盘驱动上分配虚拟盘块。除了虚拟存储器和盘资源之外,可以向VM分配网络地址,它们的相应客户软件可以通过这些网络地址与通过内部网络116或者因特网122可达的其他过程通信。例如,在VM 110上执行的客户软件可以与在VM 112或者VM 114上执行的客户软件通信。在一些实现方式中,向每个VM分配一个或者多个唯一网际协议(IP)版本4或者版本6地址。在一些实现方式中,向每个VM分配一个或者多个介质访问控制(MAC)地址。在一些实现方式中,每个VM以网络地址转译(NAT)方式共享TCP/UDP(传输控制协议/用户数据报协议)端口空间。其他地址方案是可能的。VM IP地址在内部网络116上可见,并且在一些实现方式中,如果例如使用适当路由协议来通报地址则在因特网122上可见。
VM的客户软件可以包括客户操作系统(例如,客户操作系统110b、112b和114b),该客户操作系统是如下软件,该软件控制相应客户软件应用(例如,客户应用110c、112c和114c)在VM内的执行并且向那些应用提供服务。例如,客户操作系统可以是UNIX操作系统的变型。其他操作系统也是可能的。每个VM可以执行相同客户操作系统或者不同客户操作系统上。在更多实现方式中,VM无需客户操作系统以便执行客户软件应用。客户操作系统对资源(比如网络和虚拟盘存储装置)的访问由下层主机操作系统控制。在一些实现方式中,可以运用管理程序作为允许多个操作系统在主机机器上并行运行的硬件虚拟化技术。类型1(或者本机、裸金属)管理程序在主机的硬件上直接运行以控制硬件并且管理客户操作系统,而类型2(或者主控的)管理程序在常规操作系统环境内运行。
通过示例并且参照虚拟机110,在客户应用110c或者客户操作系统110b例如尝试对虚拟盘执行输入/输出操作、发起网络通信或者执行特权操作时,虚拟硬件110a被中断,从而使得主机操作系统106可以代表虚拟机110执行动作。主机操作系统106可以利用在内核过程空间106b、用户过程空间106a或者二者中执行的过程执行这 些动作。
内核过程空间106b是为主机操作系统106的内核106d而保留的虚拟存储器,该内核106d可以例如包括内核扩展和设备驱动程序。内核过程空间具有提升的特权(有时被称为“监管程序模式”),也就是说,内核106d可以执行某些特权操作,这些操作脱离对在用户过程空间106a中运行的过程的限制。特权操作的示例包括访问不同地址空间、访问主机机器中的特殊功能处理器单元(比如存储器管理单元)等等。用户过程空间106a是为用户模式过程而保留的虚拟存储器的单独部分。用户模式过程无法直接执行特权操作。
图2是示例虚拟机系统200的简化示意图示。系统200包括主机机器202,该主机机器202包含执行主机操作系统204的处理器203(例如,中央处理单元),其中主机操作系统204管理VM 206。处理器203管理控制寄存器208,并且主机操作系统204管理监视模块210和截获器模块212。监视模块210监视控制寄存器208的状态,并且截获器模块212截获用于改变控制寄存器208的状态的尝试,以下进一步描述二者。
主机机器202可以利用不同处理模式(例如16位、32位、64位等)来操作。处理器203的处理模式涉及由处理器203寻址的数据和存储器。在一些示例中,在16位处理模式中操作的处理器203处理由16位代表的数据和存储器地址;并且同样地,在32位处理模式中操作的处理器203处理由32位代表的数据和存储器地址。
在一些示例中,在引导主机操作系统204期间,处理器203在一个处理模式(例如,16位处理模式)中操作。在引导主机操作系统204之后,处理器203可以被配置用于在另一处理模式(例如,32位或者64位处理模式)中操作。向另一处理模式切换可以例如使处理器203能够在更高处理速率操作并且增加处理器203可以寻址的在存储器中的位置的数目。控制寄存器208的一个或者多个相邻或者非相邻控制位的值控制处理器203的处理模式的选择。在一些实现方式中,单个控制位(例如,控制位214)的值配置处理器203 的处理模式。控制寄存器208可以例如是32位寄存器,而控制位214为第31位。其他控制寄存器宽度是可能的。例如,设置控制位214以具有值“1”配置处理器203在引导系统200期间在特定处理模式(例如,16位处理模式)中操作。为了向另一处理模式(例如,32位或者64位)切换,控制位214的值被改变。例如,设置控制位214以具有值“0”指示处理器203利用另一处理模式(例如32位或者64位处理模式)。在一些示例中,处理器203控制控制位214的设置。在一些其他示例中,主机操作系统204控制控制位214的设置。
在引导主机操作系统204期间,处理器203可以在初始处理模式中操作。在一些示例中,如图2中所示,设置控制位214为“1”以配置处理器203在初始处理模式中操作。在引导主机操作系统204之后,处理器204可以被配置用于在不同处理模式中操作。在一些示例中,如图3中所示,设置控制位214为“0”以配置处理器203在稍后处理模式中操作。一旦处理器203已经完成利用初始处理模式(例如,利用16位处理模式引导)并且已经切换成在稍后处理模式之下操作,则防止处理器203再次利用初始处理模式,例如,“锁定”处理器203的处理模式。
在一些示例中,处理器203的初始处理模式可能造成系统200的安全弱点问题。因此,最小化处理器203对初始处理模式的使用可以最小化或者减轻安全弱点问题。在一些实现方式中,处理器203仅在需要时(比如在引导主机操作系统204)期间运用初始处理模式。在一些示例中,初始处理模式是16位处理模式。为了防止处理器203被配置用于在已经被配置成不同处理模式之后使用初始处理模式,监视控制位(例如,控制位214)的值,从而使得仅利用稍后处理模式。
图4示出包括由VM 206提供的虚拟寄存器400的系统200。在各种实现方式中,对控制寄存器208并且具体为控制寄存器208的控制位的监视由虚拟寄存器400支配。虚拟寄存器400的一个或者多个相邻或者非相邻锁定位的值指示控制寄存器208的控制位的 监视状态。例如,锁定位402的值确定是否启用或者停用监视模块210监视控制位214。在一些示例中,VM 206可以包括多个虚拟寄存器400。
在一些实现方式中,虚拟寄存器400是32位寄存器,其中设置锁定位402为虚拟寄存器400的第31位。其他寄存器宽度是可能的。在更多实现方式中,设置锁定位402以具有值“0”指示启用监视模块210以监视控制位214的值并且检测用于改变控制位214的值的尝试。设置控制位402以具有值“1”指示停用监视模块210监视控制位214的值。在一些示例中,VM206控制锁定位402的设置。
为此,在设置锁定位402的值以指示监视模块210监视控制位214的值时,处理器203仅运用选择的处理模式(例如,在引导主机操作系统204之后的稍后处理模式)。在进行尝试改变控制位214的值从而造成处理器203切换处理模式(例如,处理器203从另一处理模式向特定处理模式切换)时,截获器模块212截获尝试。在截获尝试时,系统200防止控制位214被改变,从而使得处理器203不改变处理模式。在一些示例中,在截获器模块212截获尝试时,可以触发报警以指示入侵系统100。在一些示例中,在截获器模块212截获尝试时,停止处理器203的任何处理。
图5是用于配置处理器203的处理模式的示例技术500的流程图。处理器203在初始处理模式中操作(502)。设置控制位(例如,控制位214)的值以配置处理器203在另一处理模式中操作(504)。提供具有与控制位214对应的锁定位402的虚拟寄存器400(506)。设置锁定位402的值以指示监视控制位214的值以提供仅在设置锁定位402的值之后利用另一处理模式(508)。另外,在设置锁定位402的值之后,处理器203不能在初始处理模式中操作。
可以在数字电子电路装置中或者在计算机软件、固件或者硬件(包括在本说明书中公开的结构及其结构等效物)中或者在它们中的一项或者多项的组合中实施在本说明书中描述的主题内容和操作的实施例。可以将在本说明书中描述的主题内容的实施例实施为在 计算机存储介质上编码的用于由数据处理装置执行或者控制数据处理装置的操作的一个或者多个计算机程序、即一个或者多个计算机程序指令模块。备选地或者附加地,可以在人为生成的传播的信号(例如,机器生成的电、光或者电磁信号)上对程序指令编码,该信号被生成用于对信息编码以用于向适当接收器装置传输以供数据处理装置执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储衬底、随机或者串行存取存储器阵列或者设备或者它们中的一项或者多项的组合或者被包括于计算机可读存储设备、计算机可读存储衬底、随机或者串行存取存储器阵列或者设备或者它们中的一项或者多项的组合中。另外,尽管计算机存储介质不是传播的信号,但是计算机存储介质可以是在人为生成的传播的信号中编码的计算机程序指令的源或者目的地。计算机存储介质也可以是一个或者多个单独物理部件或者介质(例如,多个CD、盘或者其他存储设备)或者被包括于一个或者多个单独物理部件或者介质中。
可以将在本说明书中描述的操作实施为由数据处理装置对在一个或者多个计算机可读存储设备上存储的或者从其他来源接收的数据执行的操作。
术语“数据处理装置”涵盖所有种类的用于处理数据的装置、设备和机器,举例而言包括可编程处理器、计算机、片上系统或者前述各项中的多项或者组合。该装置可以包括专用逻辑电路装置,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。该装置除了硬件之外也可以包括为讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或者它们中的一项或者多项的组合的代码。该装置和执行环境可以实现各种不同计算模型基础结构,比如web服务、分布式计算和网格计算基础结构。
可以用包括编译或者解译语言、说明或者过程语言的任何形式的编程语言编写计算机程序(也被称为程序、软件、软件应用、脚本或者代码),并且可以用任何形式部署它,包括部署为独立程序 或者部署为适合于在计算环境中使用的模块、部件、子例程、对象或者其他单元。计算机程序可以、但是无需对应于文件系统中的文件。程序可以被存储于保持其他程序或者数据的文件(例如,存储于标记语言文档中的一个或者多个脚本)的一部分中、专用于讨论的程序的单个文件中或者多个协同文件(例如,存储一个或者多个模块、子程序或者代码部分的文件)中。计算机程序可以被部署用于在一个计算机上或者在位于一个地点或者分布于多个地点并且由通信网络互连的多个计算机上执行。
在本说明书中描述的过程和逻辑流程可以由一个或者多个可编程处理器执行,该一个或者多个可编程处理器执行一个或者多个计算机程序以通过对输入数据操作并且生成输出来执行动作。过程和逻辑流也可以由专用逻辑电路装置(例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路))执行并且也可以将装置实施为专用逻辑电路装置。
举例而言,适合于执行计算机程序的处理器包括通用微处理器和专用微处理器二者以及任何种类的数字计算机中的任何一个或者多个处理器。一般而言,处理器将从只读存储器或者随机存取存储器或者二者接收指令和数据。计算机的基本单元是用于根据指令执行动作的处理器以及用于存储指令和数据的一个或者多个存储器设备。一般而言,计算机也将包括用于存储数据的一个或者多个海量存储设备(例如,磁盘、磁光盘或者光盘)或者被操作地耦合用于从该一个或者多个海量存储设备接收数据或者向该一个或者多个海量存储设备发送数据或者二者。然而,计算机无需具有这样的设备。另外,计算机可以被嵌入于另一设备中,聊举数例,例如,移动电话、个人数字助理(PDA)、移动音频或者视频播放器、游戏控制台、全球定位系统(GPS)接收器或者便携存储设备(例如,通用串行总线(USB)快闪驱动)。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,举例而言包括半导体存储器设备,例如,EPROM、EEPROM和闪存设备; 磁盘,例如,内部硬盘或者可去除盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路装置补充或者并入于专用逻辑电路装置中。
为了提供与用户的交互,可以在计算机上实施在本说明书中描述的主题内容的实施例,该计算机具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器)以及用户可以用来向计算机提供输入的键盘和指点设备,例如,鼠标或者跟踪球。其他种类的设备也可以用来提供与用户的交互;例如,向用户提供的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈或者触觉反馈;并且可以用包括声音、话音或者触觉输入的任何形式接收来自用户的输入。此外,计算机可以通过向用户使用的设备发送文档和从该设备接收文档(例如,通过响应于从用户的客户端设备上的web浏览器接收的请求向web浏览器发送网页)来与用户交互。
可以在计算系统中实施在本说明书中描述的主题内容的实施例,该计算系统包括例如作为数据服务器的后端部件或者包括中间件部件(例如,应用服务器)或者包括前端部件(例如,具有图形用户界面或者Web浏览器(用户可以通过该图形用户界面或者Web浏览器与在本说明书中描述的主题内容的实现方式交互——)的客户端计算机)或者一个或者多个这样的后端、中间件或者前端部件的任何组合。系统的部件可以由任何数字数据通信形式或者介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网(例如,因特网)和对等网络(例如,自组织对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器一般相互远离并且通常通过通信网络交互。客户端和服务器的关系借助在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器向客户端设备传输数据(例如,HTML页面)(例如,用于向与客户端设备交互的用户显示数据和从该用 户接收用户输入)。可以在服务器从客户端设备接收在客户端设备生成的数据(例如,用户交互的结果)。
尽管本说明书包含许多具体实现方式细节,但是不应将这些解释为限制任何发明的或者可以要求保护的内容的范围,而是对具体发明的具体实施例特有的特征的解释。在本说明书中在分开的实施例的背景中描述的某些特征也可以在单个实施例中被组合实施。相反地,在单个实施例的背景中描述的各种特征也可以在多个实施例中分开地或者在任何适当子组合中被实施。另外,虽然上文可以将特征描述为在某些组合中动作并且甚至起初这样要求保护,但是来自要求保护的组合的一个或者多个特征可以在一些情况下从该组合中被删除,并且要求保护的组合可以涉及子组合或者子组合的变型。
类似地,尽管在附图中以特定顺序描绘操作,但是这不应被理解为要求以所示特定顺序或者以依次顺序执行这样的操作或者执行所有所示操作以实现希望的结果。在某些境况中,多任务和并行处理可以是有利的。另外,在上文描述的实施例中的各种系统部件的分离不应被理解为在所有实施例中要求这样的分离,并且应当理解描述的程序部件和系统一般可以一起集成于单个软件产品中或者被封装到多个软件产品中。
已经这样描述了主题内容的具体实施例。其他实施例在所附权利要求的范围内。在一些情况下,在权利要求中记载的动作可以按不同顺序被执行而仍然实现希望的结果。此外,在附图中描绘的过程未必需要所示特定顺序或者依次顺序以实现希望的结果。在某些实现方式中,多任务和并行处理可以是有利的。

Claims (14)

1.一种由数据处理装置实施的方法,所述方法包括:
在第一处理模式中操作所述数据处理装置的处理器;
确定所述处理器在所述第一处理模式中的初始操作阶段完成;
在确定所述处理器在所述第一处理模式中的所述初始操作阶段完成之后:
设置所述处理器的控制寄存器的一个或者多个控制位的值以配置所述处理器在不同的第二处理模式中操作;
在执行于所述数据处理装置上的虚拟机中提供虚拟寄存器,所述虚拟寄存器具有一个或者多个锁定位;
使能由所述虚拟寄存器对所述控制寄存器的所述一个或者多个控制位的所述值的监视,所述使能包括:
i)由所述虚拟机将所述虚拟寄存器的所述一个或者多个锁定位设置成特定值,其中所述一个或者多个锁定位对应于所述控制寄存器的所述一个或者多个控制位,并且所述一个或者多个锁定位的所述特定值指示所述一个或者多个控制位的监视状态;以及
ii)响应于将所述虚拟寄存器的所述一个或者多个锁定位设置成所述特定值,监视所述控制寄存器的所述一个或者多个控制位的所述值;
在对所述控制寄存器的所述一个或者多个控制位的所述值的所述监视期间,检测用于改变所述一个或者多个控制位的所述值的尝试,并且作为响应而截获所述尝试;以及
响应于截获所述尝试,防止对所述一个或者多个控制位的所述值的改变,从而使得i)所述处理器在所述初始操作阶段的完成之后无法在所述第一处理模式中操作,以及ii)所述处理器在所述初始操作阶段的完成之后仅在所述不同的第二处理模式中操作。
2.根据权利要求1所述的方法,其中操作所述处理器还包括在引导所述处理器的操作系统期间在所述第一处理模式中操作所述处理器。
3.根据权利要求1所述的方法,其中所述第一处理模式是16位处理模式并且所述第二处理模式是32位处理模式。
4.根据权利要求1所述的方法,其中所述第一处理模式是16位处理模式并且所述第二处理模式是64位处理模式。
5.一种数据处理系统,包括:
具有在其上存储的指令的计算机可读介质;以及
数据处理装置,被配置用于执行所述指令以执行操作,所述操作包括:
在第一处理模式中操作所述数据处理装置的处理器;
确定所述处理器在所述第一处理模式中的初始操作阶段完成;
在确定所述处理器在所述第一处理模式中的所述初始操作阶段完成之后:
设置所述处理器的控制寄存器的一个或者多个控制位的值以配置所述处理器在不同的第二处理模式中操作;
在执行于所述数据处理装置上的虚拟机中提供虚拟寄存器,所述虚拟寄存器具有一个或者多个锁定位;
使能由所述虚拟寄存器对所述控制寄存器的所述一个或者多个控制位的所述值的监视,所述使能包括:
i)由所述虚拟机将所述虚拟寄存器的所述一个或者多个锁定位设置成特定值,其中所述一个或者多个锁定位对应于所述控制寄存器的所述一个或者多个控制位,并且所述一个或者多个锁定位的所述特定值指示所述一个或者多个控制位的监视状态;以及
ii)响应于将所述虚拟寄存器的所述一个或者多个锁定位设置成所述特定值,监视所述控制寄存器的所述一个或者多个控制位的所述值;
在对所述控制寄存器的所述一个或者多个控制位的所述值的所述监视期间,检测用于改变所述一个或者多个控制位的所述值的尝试,并且作为响应而截获所述尝试;以及
响应于截获所述尝试,防止对所述一个或者多个控制位的所述值的改变,从而使得i)所述处理器在所述初始操作阶段的完成之后无法在所述第一处理模式中操作,以及ii)所述处理器在所述初始操作阶段的完成之后仅在所述不同的第二处理模式中操作。
6.根据权利要求5所述的系统,其中操作所述处理器还包括在引导所述处理器的操作系统期间在所述第一处理模式中操作所述处理器。
7.根据权利要求5所述的系统,其中所述第一处理模式是16位处理模式并且所述第二处理模式是32位处理模式。
8.根据权利要求5所述的系统,其中所述第一处理模式是16位处理模式并且所述第二处理模式是64位处理模式。
9.根据权利要求5所述的系统,其中响应于设置所述一个或者多个锁定位的所述值,所述操作还包括配置所述处理器仅在所述第二处理模式中操作。
10.一种数据处理设备,包括:
用于在第一处理模式中操作所述数据处理装置的处理器的装置;
用于确定所述处理器在所述第一处理模式中的初始操作阶段完成的装置;
用于在确定所述处理器在所述第一处理模式中的所述初始操作阶段完成之后进行以下操作的装置:
设置所述处理器的控制寄存器的一个或者多个控制位的值以配置所述处理器在不同的第二处理模式中操作;
在执行于所述数据处理装置上的虚拟机中提供虚拟寄存器,所述虚拟寄存器具有一个或者多个锁定位;
使能由所述虚拟寄存器对所述控制寄存器的所述一个或者多个控制位的所述值的监视,所述使能包括:
i)由所述虚拟机将所述虚拟寄存器的所述一个或者多个锁定位设置成特定值,其中所述一个或者多个锁定位对应于所述控制寄存器的所述一个或者多个控制位,并且所述一个或者多个锁定位的所述特定值指示所述一个或者多个控制位的监视状态;以及
ii)响应于将所述虚拟寄存器的所述一个或者多个锁定位设置成所述特定值,监视所述控制寄存器的所述一个或者多个控制位的所述值;
在对所述控制寄存器的所述一个或者多个控制位的所述值的所述监视期间,检测用于改变所述一个或者多个控制位的所述值的尝试,并且作为响应而截获所述尝试;以及
响应于截获所述尝试,防止对所述一个或者多个控制位的所述值的改变,从而使得i)所述处理器在所述初始操作阶段的完成之后无法在所述第一处理模式中操作,以及ii)所述处理器在所述初始操作阶段的完成之后仅在所述不同的第二处理模式中操作。
11.根据权利要求10所述的数据处理设备,其中操作所述处理器还包括在引导所述处理器的操作系统期间在所述第一处理模式中操作所述处理器。
12.根据权利要求10所述的数据处理设备,其中所述第一处理模式是16位处理模式并且所述第二处理模式是32位处理模式。
13.根据权利要求10所述的数据处理设备,其中所述第一处理模式是16位处理模式并且所述第二处理模式是64位处理模式。
14.根据权利要求10所述的数据处理设备,其中响应于设置所述一个或者多个锁定位的所述值,所述数据处理设备还包括用于配置所述处理器仅在所述第二处理模式中操作的装置。
CN201280011393.5A 2011-01-13 2012-01-11 一种处理器模式锁定方法、系统及设备 Active CN103547997B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161432526P 2011-01-13 2011-01-13
US61/432,526 2011-01-13
US13/346,547 US20120185688A1 (en) 2011-01-13 2012-01-09 Processor mode locking
US13/346,547 2012-01-09
PCT/US2012/020954 WO2012097073A2 (en) 2011-01-13 2012-01-11 Processor mode locking

Publications (2)

Publication Number Publication Date
CN103547997A CN103547997A (zh) 2014-01-29
CN103547997B true CN103547997B (zh) 2017-03-01

Family

ID=46491657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280011393.5A Active CN103547997B (zh) 2011-01-13 2012-01-11 一种处理器模式锁定方法、系统及设备

Country Status (6)

Country Link
US (1) US20120185688A1 (zh)
EP (1) EP2663922B1 (zh)
CN (1) CN103547997B (zh)
AU (1) AU2012200562B2 (zh)
DE (1) DE202012013448U1 (zh)
WO (1) WO2012097073A2 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135037B1 (en) 2011-01-13 2015-09-15 Google Inc. Virtual network protocol
US9419921B1 (en) 2011-01-13 2016-08-16 Google Inc. Network address translation for virtual machines
US8533343B1 (en) 2011-01-13 2013-09-10 Google Inc. Virtual network pairs
US8874888B1 (en) 2011-01-13 2014-10-28 Google Inc. Managed boot in a cloud system
US8745329B2 (en) 2011-01-20 2014-06-03 Google Inc. Storing data across a plurality of storage nodes
US8812586B1 (en) 2011-02-15 2014-08-19 Google Inc. Correlating status information generated in a computer network
US9063818B1 (en) 2011-03-16 2015-06-23 Google Inc. Automated software updating based on prior activity
US8261295B1 (en) 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
US8533796B1 (en) 2011-03-16 2013-09-10 Google Inc. Providing application programs with access to secured resources
US9237087B1 (en) 2011-03-16 2016-01-12 Google Inc. Virtual machine name resolution
US10228959B1 (en) 2011-06-02 2019-03-12 Google Llc Virtual network for virtual machine communication and migration
US9075979B1 (en) 2011-08-11 2015-07-07 Google Inc. Authentication based on proximity to mobile device
US8966198B1 (en) 2011-09-01 2015-02-24 Google Inc. Providing snapshots of virtual storage devices
US8958293B1 (en) 2011-12-06 2015-02-17 Google Inc. Transparent load-balancing for cloud computing services
US9178698B1 (en) 2011-12-21 2015-11-03 Google Inc. Dynamic key management
US8800009B1 (en) 2011-12-30 2014-08-05 Google Inc. Virtual machine service access
US8983860B1 (en) 2012-01-30 2015-03-17 Google Inc. Advertising auction system
US9672052B1 (en) 2012-02-16 2017-06-06 Google Inc. Secure inter-process communication
US8996887B2 (en) 2012-02-24 2015-03-31 Google Inc. Log structured volume encryption for virtual machines
US8677449B1 (en) 2012-03-19 2014-03-18 Google Inc. Exposing data to virtual machines
US9069806B2 (en) 2012-03-27 2015-06-30 Google Inc. Virtual block devices
US8953439B1 (en) 2012-12-31 2015-02-10 Juniper Networks, Inc. Separation of control plane functions using virtual machines in network device
US9430255B1 (en) 2013-03-15 2016-08-30 Google Inc. Updating virtual machine generated metadata to a distribution service for sharing and backup

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5682310A (en) * 1994-07-22 1997-10-28 Advanced Micro Devices Inc. Computer system including in-circuit emulation mode for debugging system management software

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778444A (en) * 1996-05-06 1998-07-07 Motorola, Inc. Method and apparatus for reset-sensitive and controlled register write accesses in a data processing system with user and test modes
US6076157A (en) * 1997-10-23 2000-06-13 International Business Machines Corporation Method and apparatus to force a thread switch in a multithreaded processor
US6178482B1 (en) * 1997-11-03 2001-01-23 Brecis Communications Virtual register sets
US6018759A (en) * 1997-12-22 2000-01-25 International Business Machines Corporation Thread switch tuning tool for optimal performance in a computer processor
CN1152306C (zh) * 2001-01-23 2004-06-02 英业达股份有限公司 防止多处理器计算机中各处理器间进程发生冲突的方法
US20030028781A1 (en) * 2001-05-10 2003-02-06 Strongin Geoffrey S. Mechanism for closing back door access mechanisms in personal computer systems
US6832317B1 (en) * 2001-05-10 2004-12-14 Advanced Micro Devices, Inc. Personal computer security mechanism
US6862641B1 (en) * 2001-05-10 2005-03-01 Advanced Micro Devices, Inc. Interruptable and re-enterable system management mode programming code
US6823451B1 (en) * 2001-05-10 2004-11-23 Advanced Micro Devices, Inc. Integrated circuit for security and manageability
US6968460B1 (en) * 2001-05-10 2005-11-22 Advanced Micro Devices, Inc. Cryptographic randomness register for computer system security
US6898697B1 (en) * 2002-03-29 2005-05-24 Advanced Micro Devices, Inc. Efficient method for mode change detection and synchronization
US7552255B1 (en) * 2003-07-30 2009-06-23 Intel Corporation Dynamically partitioning pipeline resources
US7478388B1 (en) * 2004-04-21 2009-01-13 Vmware, Inc. Switching between multiple software entities using different operating modes of a processor in a computer system
US7260702B2 (en) * 2004-06-30 2007-08-21 Microsoft Corporation Systems and methods for running a legacy 32-bit x86 virtual machine on a 64-bit x86 processor
WO2007076624A1 (en) * 2005-12-30 2007-07-12 Intel Corporation Virtual machine to detect malicious code
US8010966B2 (en) * 2006-09-27 2011-08-30 Cisco Technology, Inc. Multi-threaded processing using path locks
US7836285B2 (en) * 2007-08-08 2010-11-16 Analog Devices, Inc. Implementation of variable length instruction encoding using alias addressing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5682310A (en) * 1994-07-22 1997-10-28 Advanced Micro Devices Inc. Computer system including in-circuit emulation mode for debugging system management software

Also Published As

Publication number Publication date
EP2663922B1 (en) 2019-10-23
EP2663922A4 (en) 2016-06-01
EP2663922A2 (en) 2013-11-20
AU2012200562A1 (en) 2012-08-02
WO2012097073A2 (en) 2012-07-19
US20120185688A1 (en) 2012-07-19
WO2012097073A3 (en) 2012-10-26
CN103547997A (zh) 2014-01-29
DE202012013448U1 (de) 2017-01-20
AU2012200562B2 (en) 2013-06-20

Similar Documents

Publication Publication Date Title
CN103547997B (zh) 一种处理器模式锁定方法、系统及设备
CN103890715B (zh) 路由器和虚拟受信任运行时bios
US10831889B2 (en) Secure memory implementation for secure execution of virtual machines
CN103843004B (zh) 装置定制白名单
CN104052789B (zh) 用于虚拟联网系统的负载平衡的方法和系统
CN103645957B (zh) 一种虚拟机资源管控方法及装置
CN107430663A (zh) 确定用于进程的信誉
EP2856313B1 (en) Dynamically erectable computer system
CN102981907A (zh) 用于虚拟机分配的系统和方法
JP6211158B2 (ja) コンピュータセキュリティを増強する防御技術
JP2021022400A (ja) 分析システム、方法、及び、プログラム
KR20200126794A (ko) 블록체인 기반의 인증을 위한 컨테이너 클러스터 시스템
CA3040887A1 (en) Fpga platform as a service (paas)
CN105556473A (zh) 一种i/o任务处理的方法、设备和系统
CN109324873A (zh) 虚拟化安全管理方法、运行内核驱动的设备及存储介质
Healy et al. Single system image: A survey
CN107889551A (zh) 用于识别恶意软件的异常检测
CN108874501A (zh) 软件定义的微服务
KR101173911B1 (ko) 가상 머신 사이에 스위칭 방식의 선택을 이용한 망 분리 시스템
CN109196508A (zh) 云网络中的数据安全
CN108027728A (zh) 动态寄存器虚拟化
KR101467877B1 (ko) 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법
CN110383255A (zh) 管理对物理设备的客户分区访问
Nair et al. High availability of kernel-based virtual machine using nested virtualization
US10996969B1 (en) Controlling access by a network interface

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: Google limited liability company

Address before: American California

Patentee before: Google Inc.