一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

在安全虚拟机环境中测试存储保护硬件的制作方法

2021-10-24 12:44:00 来源:中国专利 TAG:虚拟机 保护 环境 硬件 测试

在安全虚拟机环境中测试存储保护硬件


背景技术:

1.本发明一般涉及计算机技术,更具体地,涉及用于测试由安全接口控件在安全虚拟机(vm)环境中使用的存储保护硬件的模式。
2.云计算和云存储向用户提供了在第三方数据中心存储和处理他们的数据的能力。云计算促进了快速且容易地向客户提供vm的能力,无需客户购买硬件或为物理服务器提供地面空间。客户可以根据客户的偏好或要求的变化来容易地扩展或收缩vm。通常,云计算提供商提供物理上驻留在提供商的数据中心处的服务器上的vm。客户通常关心vm中数据的安全性,特别是因为计算提供商通常在同一服务器上存储不止一个客户的数据。客户可能期望他们自己的代码/数据与云计算提供商的代码/数据之间的安全性,以及他们自己的代码/数据与在提供商的站点运行的其他vm的代码/数据之间的安全性。此外,客户可能期望来自提供商的管理者的安全性以及防止来自在机器上运行的其它代码的潜在安全性破坏。
3.为了处理这种敏感情形,云服务提供商可以实现安全控制以确保适当的数据隔离和逻辑存储分离。在实现云基础设施中广泛使用虚拟化导致了针对云服务的客户的独特安全问题,因为虚拟化改变了操作系统(os)与底层硬件(无论是计算、存储还是甚至联网硬件)之间的关系。这引入了虚拟化作为附加层,其本身必须被正确地配置、管理和保护。
4.通常,在主机管理程序的控制下作为客户机运行的vm依赖于该管理程序对该客户机透明地提供虚拟化服务。这些服务包括存储器管理、指令仿真以及中断处理。
5.在存储器管理的情况下,vm可以将它的数据从盘中移动(页入)以驻留在存储器中,并且vm还可以将它的数据移回(页出)到盘中。当页面驻留在存储器中时,vm(客户机)使用动态地址转换(dat)来将存储器中的页面从客户机虚拟地址映射到客户机绝对地址。此外,主机管理程序具有它自己的用于存储器中的客户机页的dat映射(从主机虚拟地址到主机绝对地址),并且它可以独立地且对客户机透明地将客户机页页入和页出存储器。通过主机dat表,管理程序提供两个分离的客户机vm之间的存储器隔离或客户机存储器的共享。主机还能够访问客户机存储器以在必要时代表客户机模拟客户机操作。


技术实现要素:

6.根据本发明的一个或多个实施例,非限制性示例方法包括由在主机服务器上执行的非受信实体接收分派安全实体的请求。由主机服务器的安全接口控件确定主机服务器是否处于用于测试辅助安全(as)实体的as调试模式。基于确定主机服务器处于as调试模式,将安全客户机实体状态从用于安全实体的状态描述符加载到硬件中的as实体状态,以在分派安全实体时测试对存储器中被注册为安全且属于as实体的页面的访问。技术效果和益处可以包括测试由安全接口控件使用的硬件的能力,而不需要安全接口控件的基础架构在测试期间是可操作的。这可以导致对硬件的更早且更全面的测试。
7.根据本发明的附加或替代实施例,安全实体被分派。技术效果和益处可以包括执行硬件的测试。
8.根据本发明的附加或替代实施例,as实体状态包括域和模式位。
9.根据本发明的附加或替代实施例,确定是基于一个或多个硬件位。
10.根据本发明的附加或替代实施例,基于确定主机服务器不处于as调试模式,将安全客户机实体状态从用于安全实体的状态描述符加载到硬件中的安全客户机实体状态,以在分派安全实体时测试对存储器中被注册为安全的页面的访问。技术效果和益处可以包括测试由安全客户机使用的硬件的能力。
11.根据本发明的附加或替代实施例,非受信实体是管理程序,而安全实体是安全虚拟机(vm)。
12.根据本发明的附加或替代实施例,安全实体是测试用例。
13.根据本发明的一个或多个实施例,非限制性示例方法包括由在主机服务器上执行的非受信实体接收分派安全实体的请求。由主机服务器的安全接口控件确定安全实体是否处于用于测试辅助安全(as)实体的as模式。基于确定安全实体处于as调试模式,将as实体状态从用于安全实体的状态描述符加载到硬件中的as实体状态,以在分派安全实体后测试对存储器中被注册为安全且属于as实体的页面的访问。技术效果和益处可以包括测试由安全接口控件使用的硬件的能力,而不需要安全接口控件的基础架构在测试期间是可操作的。这可以导致对硬件的更早且更全面的测试。
14.根据本发明的附加或替代实施例,基于确定安全实体处于as调试模式,由主机服务器的安全接口控件确定安全客户机实体是否也处于安全客户机模式。基于确定安全实体也处于安全客户机模式,将安全客户机实体状态从用于安全实体的状态描述符加载到硬件中的安全客户机实体状态,以在分派安全实体时测试对存储器中被注册为安全的页面的访问。技术效果和益处可以包括测试as实体和安全客户机实体两者的能力。
15.根据本发明的附加或替代实施例,安全实体被分派。技术效果和益处可以包括执行硬件的测试。
16.根据本发明的附加或替代实施例,安全客户机实体状态包括域和模式位。
17.根据本发明的附加或替代实施例,as实体状态包括域和模式位。
18.根据本发明的附加或替代实施例,确定是基于安全实体的状态描述符中的位。
19.根据本发明的附加或替代实施例,非受信实体是管理程序,而安全实体是安全虚拟机(vm)。
20.根据本发明的附加或替代实施例,安全实体是测试用例。
21.本发明的其它实施例在计算机系统和计算机程序产品中实现上述方法的特征。
22.附加特征及优点通过本公开的技术来实现。本发明的其它实施例和方面在此被详细描述,并且被认为是本发明的一部分。为了更好地理解本发明的优点和特征,参考说明书和附图。
附图说明
23.在说明书的结尾处的权利要求中特别指出并清楚地要求了本文描述的专有权的细节。从下面结合附图的详细描述中,本发明的实施例的前述和其它特征和优点将变得显而易见,其中:
24.图1描绘了根据本发明的一个或多个实施例的用于区域安全的表;
25.图2描绘了根据本发明的一个或多个实施例的用于执行dat的虚拟地址空间和绝
对地址空间;
26.图3描绘了根据本发明的一个或多个实施例的支持在管理程序下运行的虚拟机(vm)的嵌套多部分dat;
27.图4描绘了根据本发明的一个或多个实施例的安全客户机存储的映射;
28.图5描绘了根据本发明的一个或多个实施例的动态地址转换(dat)操作的系统示意图;
29.图6描绘了根据本发明的一个或多个实施例的安全接口控件存储器的系统示意图;
30.图7描绘了根据本发明的一个或多个实施例的导入操作的处理流程;
31.图8描绘了根据本发明的一个或多个实施例的导入操作的处理流程;
32.图9描绘了根据本发明的一个或多个实施例的所捐献存储器操作的过程;
33.图10描绘了根据本发明的一个或多个实施例的将非安全管理程序页转变成安全接口控件的安全页的处理流程;
34.图11描绘了根据本发明的一个或多个实施例的由安全接口控件进行的安全存储访问的处理流程;
35.图12描绘了根据本发明的一个或多个实施例的由安全接口控件和硬件进行的访问标记的处理流程;
36.图13描绘了根据本发明的一个或多个实施例的由程序和安全接口控件进行的转换以支持安全和非安全访问的处理流程;
37.图14描绘了根据本发明的一个或多个实施例的由程序和安全接口控件进行的具有安全存储保护的dat的处理流程;
38.图15描绘了根据本发明的一个或多个实施例的用于启动安全vm的测试用例的处理流程;
39.图16描绘了根据本发明的一个或多个实施例的状态描述符的示例;
40.图17描绘了根据本发明的一个或多个实施例的用于启动安全vm的测试用例的处理流程;
41.图18示出了根据本发明的一个或多个实施例的云计算环境;
42.图19描绘了根据本发明的一个或多个实施例的抽象模型层;
43.图20描绘了根据本发明的一个或多个实施例的系统;以及
44.图21描绘了根据本发明的一个或多个实施例的处理系统。
45.在此描绘的图是说明性的。在不脱离本发明的精神的情况下,可以对其中所描述的图或操作进行许多变化。例如,可以以不同的顺序执行动作,或者可以添加、删除或修改动作。此外,术语“耦合”及其变型描述了在两个元件之间具有通信路径,并且并不暗示元件之间的直接连接而在它们之间没有中间元件/连接。所有这些变化都被认为是说明书的一部分。
具体实施方式
46.本发明的一个或多个实施例验证由安全接口控件使用的硬件在正确地工作,以防止对安全接口控件所使用的数据结构的非授权访问。如本文进一步描述的,安全接口控件
向在计算机系统上执行的虚拟机(vm)提供安全环境。根据本发明的一个或多个实施例,通过将硬件置于特殊测试模式(在此被称为“辅助安全模式”或“as调试模式”)来执行硬件的验证,该特殊测试模式不需要安全接口控件的基础架构在测试期间是可操作的。此外,由于用于访问被标记为安全的存储器位置的硬件和用于访问包含安全接口控件数据(例如,数据结构)的存储器位置的硬件的相似性,因此,避免创建操纵安全接口控件的基础架构的复杂测试用例。相反,用于在处于安全客户机模式时测试对安全客户机存储的数据访问的相同测试用例可被应用于在处于as调试模式时测试对安全接口控件存储的数据访问。这些测试用例可被用于在测试期间完全运用硬件。
47.在主机管理程序的控制下作为客户机运行的虚拟机(vm)依赖于该管理程序对该客户机透明地提供虚拟化服务。这些服务可以应用于安全实体与另一个非受信实体之间的任何接口,该接口传统上允许该另一个实体访问安全资源。如前所述,这些服务可以包括但不限于存储器管理、指令仿真、和中断处理。例如,对于中断和异常注入,管理程序通常读取和/或写入客户机的前缀区域(低核)。如本文所使用的术语“虚拟机”或“vm”是指物理机器(计算设备、处理器等)及其处理环境(操作系统(os)、软件资源等)的逻辑表示。vm被维护为在底层主机机器(物理处理器或处理器组)上执行的软件。从用户或软件资源的角度来看,vm看起来是它自己的独立物理机器。如本文所使用的术语“管理程序”和“vm监控器(vmm)”是指管理和允许多个vm使用在同一主机上的多个(有时是不同的)os来执行的处理环境或平台服务。应当理解,部署vm包括vm的安装过程和vm的激活(或启动)过程。在另一个示例中,部署vm包括vm的激活(或启动)过程(例如,在vm先前被安装或已经存在的情况下)。
48.为了促进和支持安全客户机,存在如下的技术挑战:在管理程序与安全客户机之间需要附加的安全性而不依赖管理程序,以使得管理程序不能从vm访问数据,并且因此不能以上述方式提供服务。
49.本文描述的安全执行提供了一种硬件机制,以保证安全存储与非安全存储之间以及属于不同安全用户的安全存储之间的隔离。对于安全客户机,在“非受信”非安全管理程序与安全客户机之间提供附加的安全性。为了这样做,管理程序通常代表客户机所做的许多功能需要被结合到机器中。本文描述了一种新的安全接口控件(本文也被称为“uv”)以在管理程序与安全客户机之间提供安全接口。术语“安全接口控件”和“uv”在本文可互换使用。安全接口控件与硬件合作工作以提供该附加的安全性。另外,低级管理程序可以为该非受信管理程序提供虚拟化,并且如果低级管理程序以可信代码/软件实现,则它还可以是安全接口控件的一部分。
50.在一个示例中,安全接口控件以内部安全且可信的硬件和/或固件实现。该可信固件可包括例如处理器毫代码或pr/sm逻辑分区代码。对于安全客户机或实体,安全接口控件提供安全环境的初始化和维护以及这些安全实体在硬件上的分派的协调。当安全客户机在主动使用数据并且它驻留在主机存储中时,它在安全存储中被保持为“没有危险”。安全客户机存储可被该单个安全客户机访问,这由硬件严格地执行。也就是说,硬件防止任何非安全实体(包括管理程序或其它非安全客户机)或不同的安全客户机访问该数据。在该示例中,安全接口控件作为最低级别的固件的可信部分运行。最低级别或毫代码实际上是硬件的扩展,并被用于实现例如在ibm的中定义的复杂指令和功能。毫代码可以访问所有的存储部分,在安全执行的上下文中,存储包括它自己的安全uv存储、非安全
管理程序存储、安全客户机存储和共享存储。这允许它提供安全客户机或支持该客户机的管理程序所需的任何功能。安全接口控件还具有对硬件的直接访问,这允许硬件在由安全接口控件建立的条件的控制下有效地提供安全检查。
51.根据本发明的一个或多个实施例,在硬件中提供安全存储位以标记安全页。当该位被设置时,硬件防止任何非安全客户机或管理程序访问该页面。此外,每个安全页或共享页被注册在区域安全表中,并用安全客户机域标识(id)来标记。当页面是非安全时,它在区域安全表中被如此标记。该区域安全表由每分区或区域的安全接口控件来维护,并且是由安全接口控件利用并在系统处于辅助安全模式时测试的数据结构的示例。每个主机绝对页有一个条目,该条目由硬件用在由安全实体进行的任何dat转换中以验证页面仅由拥有它的安全客户机或实体访问。
52.根据本发明的一个或多个实施例,安全接口控件有它自己的安全uv存储,该安全uv存储仅可由安全接口控件自身访问。该存储由安全接口控件和硬件使用以对安全客户机提供所需的安全性。安全接口控件使用该安全存储来存储关于它自己、被启用以运行安全客户机的区域、安全客户机、和安全虚拟cpu的信息。与安全客户机存储类似,安全接口控件存储也被标记为安全页,以防止任何非安全实体的访问。此外,安全接口控件存储有它自己的安全域id,该安全域id用于防止任何其他安全实体访问安全接口控件存储。
53.根据本发明的一个或多个实施例,软件使用uv调用(uvc)指令来请求安全接口控件执行特定动作。例如,uvc指令可以由管理程序使用以初始化安全接口控件、创建安全客户机域(例如,安全客户机配置)、以及在该安全配置内创建虚拟cpu。它也可以用于导入(解密和分配给安全客户机域)和导出(加密和允许主机访问)安全客户机页,作为管理程序页入或页出操作的一部分。此外,安全客户具有定义与系统管理程序共享的存储、使其安全的能力。
54.这些uvc命令可以与许多其它架构指令类似地由机器固件执行。机器不进入安全接口控件模式,而是机器在它当前正在其中运行的模式中执行安全接口控件功能。硬件维持固件状态和软件状态两者,因此,不存在上下文切换以便处理这些操作。该低开销以如下方式允许在软件、可信固件和硬件的不同层之间的紧密联系的协作:最小化并降低安全接口控件的复杂性,同时仍然提供必要的安全级别。
55.根据本发明的一个或多个实施例,为了支持安全接口控件和硬件所需的控制块结构以正确地维护安全客户机和支持管理程序环境,管理程序在初始化安全客户机环境时向安全接口控件捐献存储。结果,为了准备1)初始化区域以运行安全客户机,2)创建安全客户机域,以及3)创建在每个域中运行的安全cpu,管理程序发出查询uvc指令以确定其中捐献所需的存储量。一旦存储已被捐献,则它被标记为安全,并被注册为属于安全接口控件;并且禁止任何非安全或安全客户机实体的访问。这保持该情况,直到相关联的实体(例如,安全客户机cpu、安全客户机域或区域)被破坏的时候为止。
56.在一个示例中,用于支持区域特定的uv控制块的uv存储的第一区段被捐献给安全接口控件,作为初始化uvc的一部分,并驻留在本文中被称为uv2存储的地方。用于支持基本和可变安全客户机配置控制块(针对每个安全客户机域)的uv存储的第二区段和第三区段被捐献作为创建安全客户机配置uvc的一部分,并分别驻留在uvs存储和uvv存储中。用于支持安全cpu控制块的uv存储的第四部分和最后部分也驻留在uvs空间中,并被捐献作为创建
安全客户cpu uvc的一部分。当这些区域中的每一个被捐献时,安全控制接口将它们标记为安全(以防止它们被任何非安全实体访问),并且还在区域安全表中将它们注册为属于安全控制接口(以防止它们被任何安全客户机实体访问)。为了在uv空间内提供进一步的隔离,uv2空间(其不与任何特定安全客户机域相关联)也用唯一的uv2安全域来标记,同时uvs和uvv空间都进一步用相关联的特定安全客户机域来标记。在该示例中,uvv空间驻留在主机虚拟空间中,并且因此可以进一步用主机虚拟到主机绝对映射来识别。
57.尽管安全接口控件可以访问所有的存储(非安全存储、安全客户机存储和uv存储),但是,本发明的一个或多个实施例非常具体地提供了允许安全接口控件访问uv存储的机制。使用在安全客户机域之间提供隔离的相同硬件机制,本发明的实施例可以在uv存储内提供类似的隔离。这保证安全控制接口仅在被预期和指定时访问uv存储;仅访问用于所指定的期望的安全客户机的安全客户机存储;以及仅在被指定时访问非安全存储。也就是说,安全控制接口可以非常明确地指定它意图访问的存储,以使得硬件可以保证它确实访问该存储。此外,它还可以指定它仅意图访问与所指定的安全客户机域相关联的uv存储。
58.当安全接口控件在访问安全接口控件或uv存储时,该方法提供了附加的安全性。然而,该方法引入的缺点是需要相对复杂的uv调用基础架构,以便测试硬件uv存储器保护。根据本发明的一个或多个实施例,为了降低硬件故障的风险,uv或安全接口控件存储保护硬件与安全客户机存储保护硬件非常相似(在某些情况下相同)。这允许为验证安全客户机存储保护所做的许多测试也适用于测试安全uv存储保护硬件。为了允许在不包括提供必要uv调用基础架构的软件的测试环境中和在基础架构可用之前在更全面的测试环境中进行更好的测试,定义as调试模式。该替代模式允许安全客户测试用例在用于执行硬件的uv存储保护部分时保持基本不变。然后,该替代模式可用于更精细的测试,其中测试用例在安全客户机与as调试模式之间切换,并确保这两者之间存在足够的隔离。该测试可以全部独立地进行,而没有单个实现可能施加的限制。
59.为了提供安全性,当管理程序透明地将安全客户机数据页入和页出时,与硬件一起工作的安全接口控件提供并保证数据的解密和加密。为了实现这一点,需要管理程序在页入和页出客户机安全数据时发出新的uvc。基于由安全接口控件在这些新uvc期间建立的控制,硬件将保证这些uvc确实由管理程序发出。
60.在这个新的安全环境中,每当管理程序页出安全页时,需要发出从安全存储(导出)uvc的新转换。响应于该导出uvc,安全接口控件将:1)指示页面被uv“锁定”,2)加密页面,3)将页面设置为非安全,以及4)重置uv锁定。一旦完成了导出uvc,管理程序就可以立刻将被加密的客户机页面页出。
61.此外,每当管理程序在页入安全页时,它必须发出到安全存储(导入)uvc的新转换。响应于该导入uvc,uv或安全接口控件将:1)在硬件中将页面标记为安全,2)指示页面被uv“锁定”,3)解密页面,4)将权限设置成特定的安全客户机域,以及5)重置uv锁定。每当由安全实体进行访问时,硬件在转换期间对该页面执行授权检查。这些检查包括:1)验证页面确实属于正试图访问它的安全客户机域的检查,以及2)确保管理程序在该页面已经驻留在客户机存储器中时还没有改变该页面的主机映射的检查。一旦页面被标记为安全,则硬件防止管理程序或非安全客户机vm访问任何安全页。附加的转换步骤防止另一个安全vm的访问,并且防止管理程序的重新映射。
62.现在转向图1,一般性地示出了根据本发明的一个或多个实施例的用于区域安全的表100。图1所示的区域安全表100由(安全接口控件存储中的)安全接口控件维护,并由安全接口控件和硬件使用以保证对由安全实体访问的任何页面的安全访问。区域安全表100通过主机绝对地址110来索引。也就是说,对于主机绝对存储的每个页面存在一个条目。每个条目包括用于验证该条目属于进行访问的安全实体的信息。
63.进一步地,如图1所示,区域安全表100包括安全域id 120(其标识与该页面相关联的安全域);uv位130(其指示该页面被捐献给安全接口控件并由安全接口控件拥有);禁用地址比较(da)位140(用于在诸如当被定义为主机绝对的安全接口控件页不具有相关联的主机虚拟地址时的情况下禁用主机地址对比较);共享(sh)位150(其指示与非安全管理程序共享该页面)和主机虚拟地址160(其指示被注册用于该主机绝对地址的主机虚拟地址,其被称为主机地址对)。注意,主机地址对指示主机绝对地址和相关联的已注册主机虚拟地址。主机地址对表示该页的映射,一旦由管理程序导入,并且该比较保证主机在该页面正由客户机使用时没有重新映射该页。
64.动态地址转换(dat)用于将虚拟存储映射到实际存储。当客户机vm在管理程序的控制下作为可分页客户机运行时,客户机使用dat来管理驻留在它的存储器中的页面。另外,主机在页面驻留在它的存储器中时独立地使用dat来管理那些客户机页(连同它自己的页面)。管理程序使用dat来提供不同vm之间的存储隔离和/或共享,以及防止客户机访问管理程序存储。当客户机在非安全模式下运行时,管理程序可以访问所有的客户机的存储。
65.dat使一个应用能够与另一个应用隔离,同时仍然允许它们共享公共资源。而且,它允许实现vm可用于os的新版本以及应用程序的并发处理的设计和测试的vm。虚拟地址标识虚拟存储中的位置。地址空间是连续的虚拟地址序列连同特定变换参数(包括dat表),这些特定变换参数允许每个虚拟地址被转换成相关联的绝对地址,该绝对地址用存储中的字节位置来标识该地址。
66.dat使用多表查找来将虚拟地址转换成关联的绝对地址。该表结构通常由存储管理器定义和维护。该存储管理器通过页出一个页面以例如带来另一页,在多个程序之间透明地共享绝对存储。例如,当页面被页出时,存储管理器将在相关联的页表中设置无效位。当程序试图访问已被页出的页面时,硬件将向存储管理器提交程序中断,通常被称为页错误。作为响应,存储管理器将页入所请求的页,并重置无效位。这都是对程序透明地完成的,并且允许存储管理器对存储虚拟化并在各种不同用户之间共享它。
67.当cpu使用虚拟地址来访问主存储时,首先通过dat将虚拟地址转换成实际地址,然后通过加前缀来转换成绝对地址。用于特定地址空间的最高级别表的名称(来源和长度)被称为地址空间控制元素(asce),并定义相关联的地址空间。
68.现在转向图2,一般性地示出了根据本发明的一个或多个实施例的用于执行dat的示例性虚拟地址空间202、204和绝对地址空间206。在图2所示的示例中,存在两个虚拟地址空间:虚拟地址空间202(由地址空间控制元素(asce)a 208定义)和虚拟地址空间204(由asce b 210定义)。虚拟页a1.v 212a1、a2.v 212a2和a3.v 212a3由存储管理器在多表(分段230和页表232a、232b)查找中使用asce a 208映射到绝对页a1.a 2320a1、a2.a 2320a2和a3.a 2320a3。类似地,虚拟页b1.v 214b1和b2.v 214b2使用asce b 210在双表234和236查找中被分别映射到绝对页b1.a 222b1和b2.a 222b2。
69.现在转向图3,一般性地示出了根据本发明的一个或多个实施例的用于支持在管理程序下运行的vm的嵌套多部分dat转换的示例。在图3所示的例子中,客户机a虚拟地址空间a 302(由客户机asce(gasce)a 304定义)和客户机b虚拟地址空间b 306(由gasceb 308定义)都驻留在共享主机(管理程序)虚拟地址空间325中。如图所示,属于客户机a的虚拟页a1.gv 310a1、a2.gv 310a2和a3.gv 310a3由客户机a存储管理器使用gascea 304分别映射到客户机绝对页a1.hv 340a1、a2.hv 340a2和a3.hv 340a3;属于客户机b的虚拟页b1.gv 320b1和b2.gv 320b2由客户机b存储管理器使用gasceb 308独立地分别映射到客户机绝对页b1.hv 360b1和b2.hv 360b2。在该示例中,这些客户机绝对页直接映射到共享主机虚拟地址空间325中,随后经历到主机绝对地址空间330的附加的主机dat转换。如图所示,主机虚拟地址a1.hv 340a1、a3.hv 340a3和b1.hv 360b1由主机存储管理器使用主机asce(hasce)350映射到a1.ha 370a1、a3.ha 370a3和b1.ha 370b1。属于客户机a的主机虚拟地址a2.hv 340a2和属于客户机b的b2.hv 360b2都被映射到同一主机绝对页ab2.ha 380。这使得数据能够在这两个客户机之间共享。在客户机dat转换期间,每个客户机表地址被当作客户机绝对,并经历附加的嵌套主机dat转换。
70.这里描述的本发明的实施例提供了安全的客户机和uv存储保护。禁止非安全客户机和管理程序对安全存储的访问。管理程序规定,对于给定的驻留安全客户机页,以下情况发生。相关联的主机绝对地址仅可通过单个管理程序(主机)dat映射来访问。也就是说,存在映射到被分配给安全客户机的任何给定主机绝对地址的单个主机虚拟地址。与给定安全客户机页相关联的管理程序dat映射(主机虚拟到主机绝对)在它被页入时不改变。针对单个安全客户机,映射与安全客户机页相关联的主机绝对页。
71.根据本发明的一个或多个实施例,还禁止安全客户机之间的存储共享。在单个安全客户机与在该安全客户机控制下的管理程序之间共享存储。uv存储是安全存储,并可由安全控制接口而不是客户机/主机访问。存储由管理程序分配给安全控制接口。根据本发明的一个或多个实施例,硬件和安全控制接口禁止对这些规则的任何尝试违反。
72.现在转向图4,一般性地示出了根据本发明的一个或多个实施例的安全客户机存储的映射的示例。图4类似于图3,除了图4的示例不允许在安全客户机a与安全客户机b之间共享存储之外。在图3的非安全示例中,属于客户机a的主机虚拟地址a2.hv 340a2和属于客户机b的主机虚拟地址b2.hv 360b2两者被映射到同一主机绝对页ab2.ha 380。在图4的安全客户机存储示例中,属于客户机a的主机虚拟地址a2.hv 340a2映射到主机绝对地址a2.ha 490a,而属于客户机b的b2.hv 360b2映射到它自己的b2.ha 490b。在该示例中,在安全客户机之间不存在共享。
73.当安全客户机页驻留在盘上时,它被加密。当管理程序页入安全客户机页时,它发出uv调用(uvc),该uvc使得安全控制接口将页面标记为安全(除非共享),对页面解密(除非共享),并将页面(在区域安全表中)注册为属于适当的安全客户机(例如客户机a)。此外,它将相关联的主机虚拟地址(例如,a3.hv 340a3)注册到该主机绝对页(被称为主机地址对)。如果管理程序未发出正确的uvc,则它在试图访问安全客户机页时接收到异常。当管理程序页出客户机页时,发出类似的uvc,该uvc在将客户机页标记为非安全并将其在区域安全表中注册为非安全之前加密客户机页(除非共享)。
74.在具有五个给定主机绝对页k、p、l、m和n的示例中,当管理程序将它们页入时,每
个主机绝对页被安全接口控件标记为安全。这防止非安全客户机和管理程序访问它们。主机绝对页k、p和m在管理程序将它们页入时被注册为属于客户机a;主机绝对页l和n在被管理程序页入时被注册到客户机b。共享页面,即在单个安全客户机与管理程序之间共享的页面,在分页期间不被加密或解密。它们没有被标记为安全(允许管理程序访问),而是在区域安全表中被注册到单个安全客户机域。
75.根据本发明的一个或多个实施例,当非安全客户机或管理程序试图访问由安全客户机拥有的页面时,管理程序接收到安全存储访问(pic3d)异常。不需要附加的转换步骤来确定这一点。
76.根据一个或多个实施例,当安全实体试图访问页面时,硬件执行验证存储确实属于该特定安全客户机的附加转换检查。如果不是,则向管理程序提交非安全访问(pic3e)异常。另外,如果正被转换的主机虚拟地址与来自区域安全表中的注册主机地址对的主机虚拟地址不匹配,则识别出安全存储违反(

3f’x)异常。为了能够与管理程序共享,只要转换检查允许访问,则安全客户机可以访问未被标记为安全的存储。
77.现在转到图5,一般性地示出了根据本发明的一个或多个实施例的dat操作的系统示意图500。系统示意图500包括主机主虚拟地址空间510和主机归属虚拟地址空间520,页面从这些空间被转换(例如,参见主机dat转换525;注意,虚线表示通过dat转换525的映射)到管理程序(主机)绝对地址空间530。例如,图5示出了由两个不同的主机虚拟地址空间共享主机绝对存储以及不仅在两个客户之间而且还与主机本身共享那些主机虚拟地址之一。在这一点,主机主虚拟地址空间510和主机归属虚拟地址空间520是两种主机虚拟地址空间的示例,每个主机虚拟地址空间分别由单独的asce(主机主asce(hpasce)591)和主机归属asce(hhasce)592寻址。注意,所有安全接口控件存储(虚拟和实际两者)都由管理程序捐献并被标记为安全。一旦被捐献,安全接口控件存储仅可由安全接口控件访问,只要存在相关联的安全实体。
78.如图所示,主机主虚拟地址空间510包括客户机a绝对页a1.hv、客户机a绝对页a2.hv、客户机b绝对页b1.hv\以及主机虚拟页h3.hv。主机归属虚拟地址空间520包括安全接口控件虚拟页u1.hv、主机虚拟页h1.hv、以及主机虚拟页h2.hv。
79.根据本发明的一个或多个实施例,所有安全客户机(例如,安全客户机a和安全客户机b)存储在本文所描述的区域安全表中被注册为属于安全客户机配置,并且相关联的主机虚拟地址(例如,a1.hv、a2.hv、b1.hv)也被注册为主机地址对的一部分。在一个或多个实施例中,所有安全客户机存储被映射在主机主虚拟空间中。此外,所有安全接口控件存储也在区域安全表中被注册为属于安全接口控件,并且可以基于相关联的安全客户机域而在区域安全表中被进一步区分。根据本发明的一个或多个实施例,uv虚拟存储被映射在主机归属虚拟空间中,并且相关联的主机虚拟地址被注册为主机地址对的一部分。根据一个或多个实施例,uv实际存储不具有相关联的主机虚拟映射,并且区域安全表中的da位(其指示虚拟地址比较被禁用)被设置成指示这一点。主机存储被标记为非安全,并且还在区域安全表中被注册为非安全。
80.因此,在“客户绝对=主机虚拟”的情况下,管理程序(主机)主dat表(由hpasce 591定义)如下地转换主机主虚拟地址空间510的页面:客户机a绝对页a1.hv被映射到属于安全客户机a的主机绝对a1.ha;客户机a绝对页a2.hv被映射到属于安全客户机a的主机绝
对a2.ha;客户机b绝对页b1.hv被映射到属于安全客户机b的主机绝对b1.ha;以及主机虚拟页h3.hv被映射到主机绝对页h3.ha非安全主机(并且由于它是不安全的,因此,没有主机地址对)。进一步地,管理程序(主机)归属dat表(由hhasce 592定义)如下地转换主机归属虚拟地址空间520的页面:安全接口控件虚拟页u1.hv被映射到被定义为安全uv虚拟的主机绝对页u1.ha;主机虚拟页h1.hv被映射到被定义为非安全的主机绝对页h1.ha;以及主机虚拟页h2.hv被映射到被定义为非安全的主机绝对页h2.ha。由于h1.ha或h2.ha是不安全的,因此,不存在与h1.ha或h2.ha相关联的主机

地址对。
81.在操作时,如果安全客户机试图访问被分配给安全接口控件的安全页,则由硬件向管理程序提交安全存储违反(

3f’x)异常。如果非安全客户机或管理程序试图访问任何安全页面(包括被分配给安全接口控件的那些页面),则由硬件向管理程序提交安全存储访问(

3d’x)异常。可替代地,可以针对对安全接口控件空间进行的尝试访问,提交错误条件。如果硬件检测到安全分配中关于安全接口控件访问的不匹配(例如,存储在区域安全表中被注册为属于安全客户机而不是属于安全接口控件,或者在所使用的主机地址对中存在与注册对的不匹配),则提交检查。
82.换句话说,主机主虚拟地址空间510包括主机虚拟页a1.hv、a2.hv(属于安全客户机a)和b1.hv(属于安全客户机b),其分别映射到主机绝对a1.ha、a2.ha和b1.ha。另外,主机主虚拟地址空间510包括主机(管理程序)页h3.hv,其映射到主机绝对h3.ha。主机归属虚拟空间520包括两个主机虚拟页h1.hv和h2.hv,其映射到主机绝对页h1.ha和h2.ha中。主机主虚拟地址空间510和主机归属虚拟地址空间520两者都映射到单个主机绝对530中。属于安全客户机a和安全客户机b的存储页被标记为安全,并在图1所示的区域安全表100中被注册到它们的安全域和相关联的主机虚拟地址。另一方面,主机存储被标记为非安全。当管理程序在定义安全客户机时,它必须将主机存储捐献给安全接口控件以用于支持这些安全客户机所需的安全控制块。该存储可以在主机绝对空间或主机虚拟空间中(在一个示例中,具体地,在主机归属虚拟空间中)被定义。返回到图5,主机绝对页u1.ha和u2.ha安全uv绝对是被定义为主机绝对存储的安全接口控件存储。结果,这些页面被标记为安全,并在图1所示的区域安全表100中被注册为属于安全接口控件并被注册到相关联的安全域。由于页面被定义为主机绝对地址,因此,不存在相关联的主机虚拟地址,因此,da位被设置在区域安全表100中。
83.在转换之后,可以在图6中找到管理程序(主机)绝对地址空间530的示例。图6描绘了根据本发明的一个或多个实施例的关于安全接口控件存储器的系统示意图600。系统示意图600示出了管理程序(主机)绝对地址空间630包括主机绝对页a2.ha安全客户机a(针对a2.hv);主机绝对页b1.ha安全客户机b(针对b1.hv);主机绝对页h1.ha非安全(主机);主机绝对页h2.ha非安全(主机);主机绝对页u3.ha安全uv实际(无hv映射);主机绝对页u1.ha安全uv虚拟(针对u1.hv);以及主机绝对页a1.ha安全客户机a(针对a1.hv)。
84.现在转向图7,一般性地示出了根据本发明的一个或多个实施例的用于导入操作的处理流程700。当安全客户机访问已由管理程序页出的页面时,出现诸如在处理流程700中所示的事件序列,以便安全地将该页面带回。处理流程700在框705处,其中安全客户机访问客户机虚拟页。由于该页面例如是无效的,因此,硬件向管理程序提交由程序中断代码11(pic11)指示的主机页错误(参见框715)。管理程序进而针对该客户机页标识可用的非安全
主机绝对页(参见框720),并将加密的客户机页页入到所标识的主机绝对页(参见框725)。
85.然后在框730处,主机绝对页被映射到适当的(基于主机虚拟地址的)主机dat表中。然后,在框735处,管理程序主机重新分派安全客户机。在框740处,安全客户机重新访问客户机安全页。页错误不再存在,但由于这是安全客户机访问,并且页面在图100的区域安全表100中未被标记为安全,因此,在框745处,硬件向管理程序提交非安全存储异常(pic3e)。该pic3e防止客户机访问该安全页,直到必要的导入已被发出。接下来,处理流程700进行到“a”,其被连接到图8。
86.现在转向图8,一般性地示出根据本发明的一个或多个实施例的用于执行导入操作的处理流程800。响应于pic3e,行为良好的管理程序(例如,以预期的方式无错误地执行)将发出导入uvc(参见框805)。注意,此时,要被导入的页面被标记为非安全,并且只能由管理程序、其它非安全实体、和安全接口控件访问。它不能被安全客户机访问。
87.作为导入uvc的一部分,充当安全接口控件的可信固件检查以查看页面是否已被安全接口控件锁定(参见判决框810)。如果是,则处理流程800进行到框820。在框820处,“忙碌”返回代码被返回到管理程序,作为响应,管理程序将延迟(参见框825)并重新发出导入uvc(处理流程800返回到框805)。如果页面尚未被锁定,则处理流程800进行到判决框822。
88.在判决框822处,安全接口控件检查以查看页面是否是与非安全管理程序共享的页面。如果它是共享的(处理流程800进行到判决框824),则安全接口控件将主机绝对地址在区域安全表中注册到相关联的安全客户机域、主机虚拟地址并注册为共享。该页面保持被标记为非安全。这完成了导入uvc,并且页面现在可用于被客户机访问。处理继续,管理程序重新分派客户机(框830),并且安全客户机成功访问页面(框835)。
89.如果要被导入的主机虚拟页不与管理程序共享(处理流程800进行到框840),则安全接口控件将页面标记为安全,以使得管理程序不再能访问该页面。在框845处,安全接口控件锁定该页面,以使得没有其它uvc可以修改页面状态。一旦锁定被设置(在框850处),则安全接口控件将验证客户机页的内容在被加密时没有改变。如果它们确实改变了,则错误返回代码被返回给管理程序,否则,安全接口控件将解密该安全页面。
90.在框855处,安全接口控件解锁该页面,允许其它uvc访问,并将页面在区域安全表中注册为安全并与适当的客户机域和主机虚拟地址相关联,以完成主机地址hv

ha对。这允许客户机的访问并完成uvc。
91.现在转向图9,一般性地示出了根据本发明的一个或多个实施例的关于所捐献存储器操作的处理流程900。处理流程900在框905处开始,其中管理程序向安全接口控件发出查询uvc。在框910处,安全接口控件返回数据(例如,查询uvc)。该数据可以包括:所需的基本区域特定主机绝对存储量;所需的基本安全客户机域特定主机绝对存储量;每mb所需的可变安全客户机域特定主机虚拟存储量;和/或所需的基本安全客户机cpu特定主机绝对存储量。
92.在框915处,管理程序保留基本主机绝对区域特定存储(例如,基于由查询uvc返回的大小)。在框920处,管理程序向安全接口控件发出初始化。在这一点,管理程序可发出初始化uvc,其为在针对整个区域的安全客户机配置之间进行协调所需的uv控制块提供所捐献的存储。该初始化uvc指定基本区域特定存储原点。
93.在框925处,安全接口控件通过将所捐献的存储注册到uv并标记为安全来实现初
始化(例如,初始化uvc)。对于初始化uvc,安全接口控件可将所捐献的存储标记为安全;向区域安全表分配该所捐献的存储中的一些;以及将所捐献的存储在区域安全表中注册到唯一的安全域以用于uv使用,但是没有注册到相关联的安全客户机域,并注册为没有相关联的主机虚拟地址对。
94.在框930处,管理程序保留存储(例如,基本和可变安全客户机域特定存储)。例如,管理程序保留基本和可变(例如,基于安全客户机域存储的大小)安全客户机域特定存储(例如,由查询uvc返回的大小)。在框935处,管理程序向安全接口控件发出创建配置。在这一点,管理程序可以发出指定基本和可变安全客户机域特定存储原点的创建安全客户机配置uvc。进一步地,创建安全客户机配置uvc提供用于支持该安全客户机配置所需的uv控制块的所捐献的存储。
95.在框940处,安全接口控件实现创建配置(例如,创建安全客户机配置uvc)。对于创建安全客户机配置uvc,安全接口控件可将所捐献的存储标记为安全;将所捐献的存储注册在区域安全表中以用于uv使用;以及将所捐献的存储注册到相关联的安全客户机域。所捐献的基本(主机绝对)存储被注册为没有相关联的主机虚拟地址对。所捐献的可变(主机虚拟)存储被注册到相关联的主机虚拟地址对。
96.在框945处,管理程序保留基本安全客户机cpu特定存储(例如,由查询uv返回的大小)。在框950处,管理程序指定存储原点。例如,管理程序向uv发出指定基本安全客户机cpu特定存储原点的创建安全客户机cpu。在框955处,安全接口控件实现创建cpu(例如,创建安全客户机cpu uvc)。对于创建安全客户机cpu uvc,安全接口控件可以将所捐献的存储标记为安全,并将所捐献的存储注册在区域安全表中以用于uv使用,但是没有注册到相关联的安全客户机域,并且注册为不具有相关联的主机虚拟地址对。
97.管理程序(非安全)页a、b和c可由非安全实体(包括管理程序)访问。进一步地,管理程序(非安全)页a、b和c被标记为非安全(ns),并且在区域安全表(例如,图1所示的区域安全表100)中被注册为非安全和非共享。在箭头1005处,发出初始化uvc,其将客户机页a转变成与整个区域(uv2)相关联的安全接口控件实际存储页1010。安全接口控件实际存储1010可被标记为安全,并且在区域安全表(例如,图1所示的区域安全表100)中被注册为不具有安全客户机域和管理程序到主机绝对(hv

ha)映射的uv。相反,它被注册到唯一的uv2安全域,并且da位被设置为1。注意,安全接口控件实际存储1010可以由安全接口控件作为实际来访问。
98.在箭头1025处,从管理程序(非安全)页b发出创建sg配置或创建sg cpu uvc,其将该页面转移到与安全客户机域(uvs)相关联的安全接口控件实际存储1030。安全接口控件实际存储1030可被标记为安全的,并且在区域安全表(例如,图1所示的区域安全表100)中被注册为具有相关联的安全客户机域且没有管理程序到主机绝对(hv

ha)映射(即,da位=1)的uv。注意,安全接口控件实际存储1010可作为代表安全客户机域的实际而被安全接口控件访问。
99.在箭头1045处,从管理程序(非安全)页c发出创建sg配置uvc,其将该页面转移到与安全客户机域(uvv)相关联的安全接口控件虚拟存储1050。安全接口控件虚拟存储1050可被标记为安全,并且在区域安全表(例如,图1所示的区域安全表100)中被注册为具有安全客户机域和管理程序到主机绝对(hv

ha)映射的uv。注意,安全接口控件虚拟存储1050
可作为代表安全客户机域的uv虚拟来被访问。
100.现在转向图11,描绘了根据一个或多个实施例的关于由程序或安全接口控件进行的安全存储访问的处理流程1100。这表示安全接口控件将要访问客户机存储或安全接口控件存储并且必须正确对该访问进行标记以便允许硬件验证该访问的安全性的情况。1100描述了由安全接口控件对存储访问的这种标记。处理流程1100在框1110处开始,其中安全接口控件确定它是否正在进行对安全接口控件存储的访问。
101.如果这不是对安全接口控件存储的访问,则处理流程1100进行到判决框1112(如由“否”箭头所示)。在判决框1112,安全接口控件确定它是否正在进行对安全客户机存储的访问。如果这不是对安全客户机存储的访问,则处理流程1100进行到“b”(其被连接到图12的处理流程1200),其将使用用于非安全访问的默认设置。如果这是对安全客户机存储的访问,则处理流程1100进行到判决框1113,其中安全接口控件确定是否正在使用默认安全客户机域。如果是,则处理流程1100进行到“b”(其被连接到图12的处理流程1200),其将使用用于安全客户机访问的默认设置。如果否,则处理流程1100进行到框1114。在框1114,适当的安全客户机域被加载到sg安全域寄存器中(并进行到“b”,其被连接到图12的处理流程1200)。
102.如果这是对安全接口控件存储的访问,则处理流程1100进行到框1120(如由“是”箭头所示)。在框1120处,访问被标记为安全uv(例如,使用uv安全域寄存器)。
103.然后,处理流程1100进行到判决框1130,其中安全接口控件确定这是否是对uvv空间(例如sg

config变量表格)的访问。如果是对uvv空间的访问,则处理流程1100进行到框1134(如由“是”箭头所示)。在框1134处,访问被标记为虚拟。在框1136处,适用的安全客户机域被加载到uv安全域寄存器中。在框1138处,准备好开始dat转换和访问存储。返回到判决框1130,如果这不是对uvv空间的访问,则处理流程1100进行到框1140(如由“否”箭头所示)。在框1140处,访问被标记为实际。
104.在判决框1150,安全接口控件确定这是否是对uvs空间(例如sg配置或cpu表)的访问。如果这是对uvs空间的访问,则处理流程1100进行到框1136(如由“是”箭头所示)。如果这不是对uvs空间的访问,则处理流程1100进行到框1170(如由“否”箭头所示)。然后,该访问会是对uv2空间(例如,区域安全表)的访问。在框1170处,唯一的uv2安全域被加载到uv安全域寄存器中。
105.图12描绘了根据本发明的一个或多个实施例的处理流程1200。当客户机被分派时,sie条目(sie entry)固件可以向硬件指示客户机正在运行(例如,客户机模式活动),并且可以指示客户机是否是安全的。如果客户机是安全的,则相关联的安全客户机域可以被加载到硬件中(例如,在sg安全域寄存器中)。当程序正在访问存储时,硬件可以基于程序在访问时的当前状态来对该访问进行标记。图12示出了处理流程1200中的该过程的示例。在框1205处,硬件可以确定机器当前是否正在客户机模式下运行,如果不是,则硬件可在框1210处将该访问标记为主机访问,并在框1215处将该访问标记为非安全访问。如果在框1205处机器正在客户机模式下运行,则在框1220处该访问可被标记为客户机访问,并在框1225处进一步确定当前客户机是否是安全客户机。如果客户机是不安全的,则在框1215处,该访问被标记为非安全。如果客户机是安全的,则在框1230处,硬件可以将客户机标记为安全,这可以将安全客户机与在安全客户机被分派时被加载的sg安全域寄存器相关联。对于
非安全客户机和安全客户机两者,可在框1235处检查dat状态。如果dat关闭,则在框1240出,访问被标记为实际。如果dat开启,则在框1245处,访问可被标记为虚拟。一旦在框1240处访问随着dat关闭被标记为实际,或者在框1245处访问随着dat开启被标记为虚拟,则在框1250处,硬件准备好开始转换和访问存储,如在图13中进一步描述的。
106.图13描绘了根据本发明的一个或多个实施例的处理流程1300中的由硬件进行的转换以支持安全访问和非安全访问两者的示例。在框1305,硬件可以确定访问是否被标记为客户机转换,如果是并且在框1310处访问是虚拟的,则在框1315处可执行客户机dat。在客户机dat转换期间,可以存在对客户机dat表的嵌套中间获取。如果原始转换被标记为安全的,则表获取可以被标记为客户机实际且安全。表获取也可遵循处理流程1300的转换过程。在框1315处针对被标记为客户机虚拟的访问以及在框1310处针对被标记为客户机实际(虚拟=否)的任何访问执行了客户机dat之后,在框1320处可应用客户机加前缀和客户机存储器偏移。在完成客户机转换过程时,在框1325处,如果原始客户机转换被标记为安全,则所得到的地址可被标记为主机虚拟且安全。过程1300可以继续,如针对被标记为主机虚拟的任何访问所示的。如果原始访问在框1305处是主机访问(客户机=否)并且在框1330处是虚拟的,则在框1335处可以执行主机dat。在框1335处,主机表获取可被标记为非安全。在框1335处执行了主机dat之后,或者如果在框1330处原始主机访问被标记为实际(虚拟=否),则在框1340可应用主机加前缀。在框1345处,所得到的地址可以是主机绝对地址。
107.图14描绘了根据本发明的一个或多个实施例的处理流程1400中的可由硬件执行的具有安全存储保护的dat转换的示例。从图13的框1345继续,如果在框1405处识别安全uv访问,则在框1410处,硬件可以验证存储是否被注册为安全uv存储,如果否,则在框1415处提交错误。当访问uv存储时,安全uv访问可由安全接口控件进行。如果在框1410处存储被注册为安全uv存储,则保护检查可以继续,如可针对任何安全访问执行,除了uv安全域寄存器(由安全接口控件在进行安全uv访问之前设置)在框1420处可被用作用于域检查的指定安全域,在框1420处,处理继续。另外,在框1425处针对uv访问而被检测到的任何违反(入口点d)可在框1430处作为错误被提交,而不是在框1435处作为异常向管理程序提交,如在框1425处针对安全客户机违反(安全uv=否)所做的。
108.对于在框1405处未被标记为安全uv访问的访问,在框1440处,硬件确定访问是否是安全客户机访问,如果不是并且如果在框1445处页面被标记为安全,则在框1435处,可向管理程序提交异常。否则,如果在框1440处访问不是安全客户机访问并且在框1445处页面未被标记为安全,则在框1450处,转换成功。
109.如果在框1440处访问是安全客户机访问或者在框1410处访问是对被注册为安全uv存储的存储的安全uv访问,则在框1420处,硬件可以进行检查以确保存储被注册到与访问相关联的安全实体。如果是安全uv访问,则可以从(由安全控制接口基于正被访问的安全uv存储而加载的)uv安全域寄存器获得指定安全域,并且对于安全客户机访问,从(在分派安全实体时被加载的)sg安全域寄存器获得指定安全域。如果在框1420处,正被访问的存储未被注册到指定安全域,则对于在框1425处的安全uv访问,在框1430处出现错误,并且对于在框1425处的安全客户机访问(安全uv=否),在框1435处,向管理程序提交异常。
110.对于在框1440和框1410处对存储(其在框1420处被注册到指定安全域)的安全访问,如果在框1455处禁用虚拟地址检查(即da位=1)并且在框1460处访问是实际的,则在框
1450处,完成转换。然而,如果在框1455处da位=1但在框1460处访问是虚拟的(实际=否),则对于在框1425处的安全uv访问,在框1430处出现错误,并且对于在框1425处的安全客户机访问(安全uv=否),在框1435处向管理程序提交异常。如果在框1455处da位=0并且在框1475处访问是虚拟访问,则在框1470处,硬件可以确定访问的主机虚拟到主机绝对映射是否与针对该主机绝对地址所注册的映射相匹配。如果是,则在框1450处,转换成功完成。如果在框1470处映射不匹配,则对于在框1425处的安全uv访问,在框1430处出现错误,并且对于在框1425处的安全客户机访问(安全uv=否),在框1435处,向管理程序提交异常。如果da位=0并且在框1475处访问是实际访问(虚拟=否),则对于在框1425处的安全uv访问,在框1430处出现错误,并且对于在框1425处的安全客户机访问(安全uv=否),在框1435处,向管理程序提交异常;或者,在框1450处,转换可成功完成。可以检查在框1480处的i/o子系统的任何访问以查看在框1445处页面是否被标记为安全,如果页面是安全的,则在框1435处,可以向管理程序提交异常;如果页面未被标记为安全,则在框1450处,转换成功。
111.可以通过区域安全表接口1485来集中管理存储注册和映射的各种检查。例如,框1410、1420、1455、1470和1475可以与关联于同一区域的区域安全表进行接口,以管理各种访问。
112.图15至图17和所附的文本描述了根据本发明的实施例的测试存储保护硬件。根据本发明的一个或多个实施例,如图15所示,在硬件中设置内部辅助安全(as)调试位以指示测试用例应当在as调试模式下执行。此外,图17所示的是其中测试用例明确规定客户机在as模式下运行的实施例。当处于as模式时,测试as实体和相关联的硬件。如这里所使用的,术语“辅助安全”或“as实体”是指as模式位和相关联的as域值,并且术语“安全客户机”或“sg实体”是指sg模式位和相关联的sg域值。根据本发明的一个或多个实施例,现有的测试用例发出开始解释执行(sie)指令以分派安全客户机。如果as调试位是“关”,则作为sie条目的一部分,安全接口控件进入安全客户机模式,并且如果as调试位是“开”,则安全接口控件改为进入as调试模式。不需要对现有的测试用例进行改变。在一个或多个其他实施例中,不使用内部硬件as调试位(其将状态描述符中的安全客户机模式位视为指示as模式),而是在状态描述符中定义仅用于调试的独立as模式字段,以允许稍微修改的测试用例指定安全客户机处于as调试模式。在这种情况下,测试用例具有在安全客户机模式与as模式之间切换的能力,并可更好地测试两种类型的存储之间的隔离。在硬件中存在as实体和sg实体两者。在as调试模式中(图15所描绘的),只有sg实体在状态描述符中存在,但它被加载到硬件中的as实体中。当不处于as调试模式但是针对特殊as模式测试提供支持时(如图17所示),在状态描述符中存在as实体(其被加载到as实体硬件中)和sg实体(其被加载到sg实体硬件中)两者。
113.当在安全客户机模式中分派安全客户机时,在硬件中设置sg模式位以指示安全客户机域(sg域)寄存器应当被用作用于访问的安全域id,该sg域寄存器也由安全接口控件从关于安全客户机的分派的状态描述符加载到硬件中。sg模式位和sg域寄存器可以被称为安全客户机的安全客户机实体状态。这与as调试模式形成对比,在as调试模式中,当分派安全客户机时,在硬件中设置as模式位(而不是sg模式位)以指示as域寄存器应当用作用于访问的安全域id,该as域寄存器由安全接口控件从关于安全客户机的分派的状态描述符中的sg域字段加载到硬件中。as模式位和as域寄存器可以被称为as实体状态。sg域寄存器和as域
寄存器存在于硬件中并且彼此不同。将由访问指示的指定安全域id与针对正被访问的页面而注册的域的安全标识符进行比较,以验证对页面的授权访问。在处于安全客户机模式时的正常安全客户机操作期间,sg域(和相关联的硬件)被用于存储访问。as域(和相关联的硬件)可仅由安全接口控件指定,然后只在非常有限的情况下使用(例如,在仅在访问uv存储时的特定uvc指令期间)。该新的测试模式允许在更多种类情况下对as访问的更广泛的测试。这在图15中描述。
114.现在转向图15,一般地示出了根据本发明的一个或多个实施例的充当管理程序的测试用例启动安全vm的示例方法的流程图1500。图15描绘了位被用于指示管理程序在其中正在执行的主机服务器是否处于as调试模式的实施例。如图15的示例方法所示,在框1505,创建状态描述符(sd)作为sie指令的操作数。sd包含定义要在被分配给安全vm的(一个或多个)处理器上被仿真的硬件状态的字段。
115.现在转向图16,一般地示出了根据本发明的一个或多个实施例的sd1600的示例结构。在一个或多个示例中,对于安全vm和非安全vm两者使用相同的sd格式。根据本发明的一个或多个实施例,sd 1600包括模式控制字段1602,用于指示正被分派的vm是安全的还是非安全的。在一个或多个示例中,模式控制字段1602可以是位。进一步地,如果模式控制字段1602指示sd 1600是用于安全vm,则唯一标识指定符1604提供用于正被分派的特定安全vm的安全客户机域id。对于非安全vm,不使用唯一标识指定符1604,并可包括默认值,诸如0(或指示字段不被使用的任何其他值)。如图16所示,sd 1600还包括用于定义客户机状态的一个或多个sd字段1606。
116.返回参考图15,管理程序发出sie指令,其中sd 1600作为操作数,该指令的执行由安全接口控件完成。sie指令用于启动vm并将(一个或多个)处理器和其它计算资源分配给vm。在框510,安全接口控件基于sd 600中的模式控制字段1602来确定要被分派的vm是否是安全的。如果非安全vm要被分派,则处理继续,在框1515处分派非安全vm。
117.如果在框1510处确定安全vm要被分派,则处理在框1520继续,其中安全接口控件验证vm的状态正确性。在框1540,确定系统是否处于as调试模式。如果系统处于as调试模式,则处理在框1535继续,其中安全接口控件在硬件中设置as模式位(以将计算资源配置为在as调试模式中被分配给vm)。处理在框1545处继续,其中安全接口控件将安全客户机域id 1604从sd 1600加载到as域寄存器中。处理在框1550继续。
118.如果在框1540处确定系统不处于as调试模式,则处理在框1525处继续,其中安全接口控件在硬件中设置sg模式位以将计算资源配置为被分配给处于安全客户机模式的vm。在框1530处,安全客户机域id 1604被加载到sg域寄存器中。处理在框1550处继续。
119.在框1550中,客户机状态被从sd字段1606加载到硬件中。然后,执行1560所分派的vm,直到到达退出条件1565。退出条件可以包括指令或中断解释、退出vm的用户请求等。
120.现在转向图17,一般地示出了根据本发明的一个或多个实施例的充当管理程序的测试用例启动安全vm的示例方法的流程图1700。图17描绘了状态描述符中的位被用于指示安全vm是否处于as模式的实施例。在图17所示的实施例中,安全vm还可以处于包括as模式和sg模式两者的双重安全模式。如图17的示例方法所示,在框1705,创建sd作为sie指令的操作数。sd(诸如图16的sd 1600)包含定义要在被分配给安全vm的(一个或多个)处理器上被仿真的硬件状态的字段。返回参考图16,在一个实施例中,模式控制字段1602包含两个
位,一个位指示安全客户机模式,另一个位指示辅助安全模式。这些位可以四种可能组合中的任何一种来指定:两个位都“关”以表示非安全vm,单个位“开”以指示安全客户机模式或者as模式,或者两个位都“开”以指示“双安全”模式(即,安全客户机模式和as模式两者)。在这种情况下,会有两个唯一标识指定符1604,一个表示安全客户机域(在指定安全客户机模式时使用),另一个表示as域(在指定辅助安全模式时使用)。
121.返回图17,管理程序发出sie指令,其中sd作为操作数,该指令的执行由安全接口控件完成。sie指令用于启动vm并将(一个或多个)处理器和其它计算资源分配给vm。在框1710,安全接口控件确定要被分派的vm是否是安全的。如果非安全vm要被分派,则处理继续,在框1715处分派非安全vm。
122.如果在框1710处确定安全vm要被分派,则处理在框1720继续,其中安全接口控件验证vm的状态正确性。在框1740处,确定安全vm是否处于辅助安全(as)模式(例如,基于安全vm的sd中的位)。如果安全vm不处于as模式,则处理在框1748处继续。否则,如果安全vm处于as模式,则处理在框1735处继续,其中安全接口控件在硬件中设置as模式位(以将计算资源配置为被分配给处于as模式的vm)。处理在框1745处继续,安全接口控件将安全vm的安全客户机域id从sd加载到as域寄存器中。处理在框1748处继续。
123.在框1748处,确定安全vm是否处于安全客户机(sg)模式。如果安全vm不处于sg模式,则处理在框1750处继续。否则,如果安全vm处于sg模式,则处理在框1725处继续,其中安全接口控件在硬件中设置sg模式位以将计算资源配置为被分配给处于安全客户机模式的vm。在框1730处,安全vm的安全客户机域id被加载到sg域寄存器中。处理在框1750处继续。
124.在框1750处,客户机状态被从sd的sd字段加载到硬件中。然后,执行1760所分派的vm,直到达到退出条件1765。退出条件可以包括指令或中断解释、退出vm的用户请求等。
125.应当理解,尽管本公开包括关于云计算的详细描述,但是本文所记载的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
126.云计算是一种服务交付模式,用于实现对共享的可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、vm和服务)池池的方便、按需的网络访问,可配置计算资源可以以最小的管理成本或与服务提供商进行最少的交互来快速供应和释放。这种云模式可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
127.特征如下:
128.按需自助式服务:云的消费者可以单方面自动地按需提供计算能力(诸如服务器时间和网络存储),而无需与服务提供者进行人工交互。
129.广泛的网络接入:能力在网络上可用并通过促进异构的瘦或厚客户端平台(例如,移动电话、膝上型计算机和pda)的使用的标准机制来接入。
130.资源池:提供商的计算资源被归入资源池以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和再分配。一般情况下,消费者不能控制或不知道所提供的资源的确切位置,但是可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
131.迅速弹性:可以迅速且有弹性地(在一些情况下自动地)提供能力以快速向外扩展并被迅速释放以快速缩小。对于消费者,可用于提供的能力通常看起来是无限的,并可以在
任何时间以任何数量购买。
132.可测量的服务:云系统通过利用在适于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象程度的计量能力,自动地控制和优化资源使用。可以监视、控制和报告资源使用情况,为所利用的服务的提供者和消费者双方提供透明度。
133.服务模型如下:
134.软件即服务(saas):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可通过诸如网络浏览器的瘦客户机接口(例如,基于网络的电子邮件)来从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置以外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、或甚至单个应用能力等的底层云基础架构。
135.平台即服务(paas):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用是使用由提供商支持的编程语言和工具创建的。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
136.基础架构即服务(iaas):向消费者提供的能力是提供消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其它基础计算资源。消费者既不管理也不控制底层云基础架构,但对操作系统、存储、所部署的应用具有控制权,对所选择的网络组件(例如,主机防火墙)可能具有有限的控制权。
137.部署模型如下:
138.私有云:云基础架构单独为某个组织运行。它可以由该组织或第三方管理,并且可以存在于该组织内部或外部。
139.共同体云:云基础架构被若干组织共享,并支持具有共同利害关系(例如,任务、安全要求、政策和合规考虑)的特定共同体。它可以由该组织或第三方管理,并且可以存在于该组织内部或外部。
140.公共云:云基础架构可用于一般公众或大型产业群,并由销售云服务的组织拥有。
141.混合云:云基础架构由两个或更多云(私有云、共同体云或公共云)组成,这些云依然是独特实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
142.云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语义的互操作性。计算的核心是包括互连节点网络的基础架构。
143.现在参考图18,描述了说明性的云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备例如是个人数字助理(pda)或蜂窝电话54a、台式计算机54b、膝上型计算机54c和/或汽车计算机系统54n。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络(诸如如上文所描述的私有云、共同体云、公共云或混合云或其组合)中。这允许云计算环境50提供基础架构即服务、平台即服务和/或软件即服务,而云消费者不需要为其在本地计算设备上维护资源。应当理解,图18中所示的各类计算设备54a

n仅仅是示意性的,计算节点10和云计算环境50可以在任何类型的网络和/或网络可寻址连接上(例如,使用网络浏览器)与任何类型的计算设备通信。
144.现在参考图19,示出了由云计算环境50(图18)提供的一组功能抽象层。首先应当
理解,图19所示的组件、层和功能仅仅是示意性的,本发明的实施例不限于此。如图所示,提供了以下层和相应的功能:
145.硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于risc(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
146.虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用程序和操作系统74;以及虚拟客户端75。
147.在一个示例中,管理层80可以提供以下描述的功能。资源供应功能81提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取。计量和定价功能82提供对在云计算环境内使用资源的成本跟踪,并为这些资源的消耗提供账单或发票。在一个示例中,这些资源可以包括应用软件许可。安全功能为云消费者和任务提供身份认证,并为数据和其他资源提供保护。用户门户功能83为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能84提供云计算资源的分配和管理,以满足所需的服务水平。服务水平协议(sla)计划和履行功能85提供对根据sla针对其预测未来需求的云计算资源的预安排和采购。
148.工作负载层90提供可以利用云计算环境的功能的示例。在该层中,可提供的工作负载和功能的示例包括:地图绘制与导航91;软件开发及生命周期管理92;虚拟教室的教学提供93;数据分析处理94;交易处理95;以及控制对虚拟机的安全存储的访问96。可以理解,这些仅是一些示例,在其他实施例中,这些层可包括不同的服务。
149.现在转到图20,描绘了根据本发明的一个或多个实施例的系统2000。系统2000包括示例节点10(例如,托管节点),其例如经由网络165与一个或多个客户端设备20a

20e直接或间接地进行通信。节点10可以是云计算提供商的数据中心或主机服务器。节点10执行便于部署一个或多个vm 15(15a

15n)的管理程序12。节点10还包括硬件/固件层11,其提供对vm 15a

n和管理程序12所需的功能的直接支持以及便于管理程序12向vm 15提供一个或多个服务。在当前的实现中,在硬件/固件层11与管理程序12之间、在硬件/固件层11与vm 15之间、在管理程序12与vm 15之间、以及在管理程序12与vm 15之间经由硬件/固件层11提供通信。根据一个或多个实施例,在硬件/固件层11中提供安全接口控件,并且消除管理程序12与vm 15之间的直接通信。
150.例如,节点10可以促进客户端设备20a部署vm 15a

15n中的一个或多个。可以响应于来自不同客户端设备20a

20e的相应请求来部署vm 15a

15n。例如,vm 15a可由客户端设备20a部署,vm 15b可由客户端设备20b部署,vm 15c可由客户端设备20c部署。节点10还可以促进客户端提供物理服务器(而不是作为vm运行)。这里描述的示例将在节点10中提供资源体现为vm的一部分,然而,所描述的技术方案也可以被应用于作为物理服务器的一部分来提供资源。
151.在一个示例中,客户端设备20a

20e可以属于相同的实体,诸如个人、企业、政府机构、公司内的部门、或任何其他实体,并且节点10可以作为该实体的私有云来操作。在这种情况下,节点10单独托管由属于该实体的客户端设备20a

20e部署的vm 15a

15n。在另一个示例中,客户端设备20a

20e可以属于不同的实体。例如,第一实体可以拥有客户端设备
20a,而第二实体可以拥有客户端设备20b。在这种情况下,节点10可以作为托管来自不同实体的vm的公共云来操作。例如,vm 15a

15n可以以其中vm 15a不便于访问vm 15b的遮蔽方式来部署。例如,节点10可以使用ibm z处理器资源/系统管理器(pr/sm)逻辑分区(lpar)特征来遮蔽vm 15a

15n。因此,这些特征(例如pr/sm lpar提供分区之间的隔离)便于节点10在不同的逻辑分区中针对在同一物理节点10上的不同实体部署两个或更多个vm 15a

15n。pr/sm lpar管理程序被实现在具有特定硬件以提供这种隔离的可信内部固件中。
152.客户端设备20a

20e中的客户端设备20a是通信装置,例如计算机、智能电话、平板计算机、台式计算机、膝上型计算机、服务器计算机、或请求节点10的管理程序12部署vm的任何其它通信装置。客户端设备20a可经由网络165发送由节点10的管理程序12接收的请求。vm 15a

15n中的vm 15a是管理程序12响应于来自客户端设备20a

20e中的客户端设备20a的请求而部署的vm镜像。管理程序12是vm监视器(vmm),其可以是创建并运行vm的软件、固件或硬件。管理程序12促进vm 15a使用节点10的硬件组件来执行程序和/或存储数据。采用适当的特征和修改,管理程序12可以是ibm zoracle的vm服务器、citrix的xenserver、vmware的esx、microsoft hyper

v管理程序或任何其它管理程序。管理程序12可以是直接在节点10上执行的本机管理程序,或者是在另一个管理程序上执行的托管管理程序。
153.现在转向图21,示出了根据本发明的一个或多个实施例的用于实现本文的教导的节点10。节点10可以是电子计算机架构,其包括和/或采用任何数量的计算设备和计算设备的组合以及利用各种通信技术的网络,如本文所述。节点10可以容易地可伸缩、可扩展和模块化,能够改变成不同的服务或独立地重新配置一些特征。
154.在该实施例中,节点10具有处理器2101,其可以包括一个或多个中央处理单元(cpu)2101a、2101b、2101c等。处理器2101(也称为处理电路、微处理器、计算单元)经由系统总线2102耦合到系统存储器2103和各种其它组件。系统存储器2103包括只读存储器(rom)2104和随机存取存储器(ram)2105。rom 2104被耦合到系统总线2102,并且可以包括基本输入/输出系统(bios),其控制节点10的某些基本功能,ram是被耦合到系统总线2102以由处理器2101使用的读写存储器。
155.图21的节点10包括硬盘2107,其是可由处理器2101读取执行的有形存储介质的示例。硬盘2107存储软件2108和数据2109。软件2108被存储为由处理器2101在节点10上执行的指令以执行过程,例如参考图1

20描述的过程。数据2109包括以各种数据结构组织的定性或定量变量的值集合,以支持软件2108的操作并由其使用。
156.图21的节点10包括一个或多个适配器(例如,硬盘控制器、网络适配器、图形适配器等),其相互连接并支持处理器2101、系统存储器2103、硬盘2107、和节点10的其他组件(例如,外围设备和外部设备)之间的通信。在本发明的一个或多个实施例中,一个或多个适配器可以被连接到一个或多个i/o总线,该一个或多个i/o总线经由中间总线桥被连接到系统总线2102,并且该一个或多个i/o总线可以利用公共协议,例如外围部件互连(pci)协议。
157.如图所示,节点10包括将键盘2121、鼠标2122、扬声器2123和麦克风2124互连到系统总线2102的接口适配器2120。节点10包括将系统总线2102与显示器2131互连的显示适配
器2130。显示适配器2130(和/或处理器2101)可以包括图形控制器以提供图形性能,例如gui 2132的显示和管理。通信适配器2141将系统总线2102与网络2150互连,使得节点10能够与诸如服务器2151和数据库2152的其它系统、设备、数据和软件通信。在本发明的一个或多个实施例中,软件2108和数据2109的操作可由服务器2151和数据库2152在网络2150上实现。例如,网络2150、服务器2151和数据库2152可组合以提供软件2108和数据2109的内部迭代作为平台即服务、软件即服务和/或基础架构即服务(例如,作为分布式系统中的网络应用)。
158.本文描述的实施例必然根植于计算机技术,尤其是托管vm的计算机服务器。进一步地,本发明的一个或多个实施例通过促进托管vm的计算机服务器托管安全vm来促进对计算技术本身的操作的改进,特别是托管vm的计算机服务器,在安全vm中,甚至管理程序也被禁止访问与安全vm相关联的存储器、寄存器和其他这样的数据。此外,本发明的一个或多个实施例通过使用安全接口控件(这里也被称为“uv”)来提供对vm托管计算服务器的改进的重要步骤,其中安全接口控件包括硬件、固件(例如,毫代码)或其组合,以便于安全vm和管理程序的分离,并因此保持由计算服务器托管的vm的安全性。安全接口控件提供轻量级的中间操作以促进安全性,而在如本文所述的vm的初始化/退出期间不增加保护vm状态的实质开销。
159.本文所公开的本发明的实施例可包括控制对vm的安全存储的访问的系统、方法和/或计算机程序产品(在本文中是系统)。注意,对于每个说明,元件的标识符被重复用于不同附图的其他类似元件。
160.在此参考相关附图描述了本发明的各种实施例。在不脱离本发明的范围的情况下,可以设计本发明的替代实施例。在以下描述和附图中,阐述了元件之间的各种连接和位置关系(例如,上方、下方、相邻等)。除非另有说明,这些连接和/或位置关系可以是直接的或间接的,并且本发明并不旨在在这方面进行限制。因此,实体的耦合可以是指直接耦合或间接耦合,并且实体之间的位置关系可以是直接或间接位置关系。此外,本文所述的各种任务和过程步骤可被并入具有本文未详细描述的附加步骤或功能的更综合的程序或过程中。
161.以下定义和缩写用于权利要求和说明书的解释。如本文所使用的,术语“包含”、“包括”、“具有”、“含有”或其任何其它变型旨在涵盖非排他性的包括。例如,包括一系列要素的组合物、混合物、过程、方法、制品、或装置并不一定仅限于那些要素,而是可以包括未明确列出的或对于此类组合物、混合物、过程、方法、制品、或装置固有的其他要素。
162.另外,术语“示例性”在本文中用于表示“用作示例、实例或说明”。在此描述为“示例性”的任何实施例或设计不一定被解释为比其它实施例或设计更优选或有利。术语“至少一个”和“一个或多个”可被理解为包括大于或等于一的任何整数,即,一、二、三、四等。术语“多个”可以被理解为包括大于或等于二的任何整数,即二、三、四、五等。术语“连接”可以包括间接“连接”和直接“连接”两者。
163.术语“大约”、“基本上”、“近似”及其变型旨在包括与基于提交本技术时可用的设备的特定量的测量相关联的误差度。例如,“大约”可以包括给定值的
±
8%或
±
5%或
±
2%的范围。
164.本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括在其上具有计算机可读程序指令的(一个或多个)计算机可读存
储介质,计算机可读程序指令用于使处理器执行本发明的各方面。
165.计算机可读存储介质可以是可保持并存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或前述存储设备的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd

rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如在上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码设备、以及上述设备的任何适当的组合。如本文所使用的计算机可读存储介质不应被解释为是暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
166.本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
167.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或者以一种或多种编程语言(包括面向对象的编程语言,例如smalltalk、c 等)和过程编程语言(例如“c”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为独立的软件包执行、部分在用户的计算机上并且部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种场景下,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的各方面。
168.在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
169.这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,以使得经由计算机或其他可编程数据处理装置的处理器而执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,已使得在其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
170.计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设
备上,以使一系列操作步骤将在计算机、其他可编程装置或其他设备上执行,以产生计算机实现的过程,以使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
171.附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
172.本文所用的术语仅是为了描述特定实施例的目的,而不是旨在进行限制。如本文所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还将理解,术语“包括”和/或“包含”在本说明书中使用时指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件组件和/或其群组的存在或添加。
173.本文已经出于说明的目的呈现了对各种实施例的描述,但其并非旨在是穷尽性的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜