对命名空间灵活地区分优先级转让专利

申请号 : CN200880022431.0

文献号 : CN101689181A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : J·M·希恩

申请人 : 微软公司

摘要 :

可通过使用资源的第一命名空间和资源的第二命名空间来提供对计算机上的资源的访问,其中一个或多个名称对两个命名空间是共用的,且那些名称表示资源的不同相应的实例。从应用程序接收对第一资源名称的请求,其中第一资源名称在第一资源命名空间和第二资源命名空间中存在。响应于该请求,通过将一个或多个资源策略应用于第一资源命名空间和第二资源命名空间来确定是从第一命名空间还是从第二命名空间中获取资源。

权利要求 :

1.一种用于解决资源命名空间之间的冲突的方法,其中每一资源命名空间 包括多个资源及其对应的名称,且其中资源命名空间至少部分重叠以使得两个 或多个资源命名空间中的同一名称表示相应资源命名空间中的资源的不同实 例,所述不同实例具有不同的内容,所述方法包括:提供描述不同命名空间适用的条件的上下文信息;

接收对资源的名称的请求,并通过将所述名称与所述上下文信息比较来相 对于彼此区分所述资源命名空间优先级;以及从所述区分优先级的命名空间中获取所述名称的资源。

2.如权利要求1所述的方法,其特征在于,如果资源命名空间不与命名空 间适用的所述条件之一相关联,则所述资源命名空间不被区分优先级。

3.如权利要求1所述的方法,其特征在于,对所述命名空间区分优先级还 包括与所述名称匹配所述上下文信息的程度成比例地加权所述资源命名空间。

4.如权利要求1所述的方法,其特征在于,所述资源命名空间具有默认相 对优先级,且在所述名称匹配所述各个资源命名空间的上下文信息时,根据所 述默认相对优先级来获取所述名称的资源。

5.如权利要求1所述的方法,其特征在于,上下文的条件包括描述可与任 意资源名称比较以确定此类任意资源名称落入所述上下文内的资源名称的开 集的信息。

6.如权利要求5所述的方法,其特征在于,所述条件包括文件目录或注 册表位置。

7.一种在具有对所述计算机上的系统资源的访问虚拟化的虚拟化组件的 计算机上执行的方法,所述计算机具有所述计算机上的资源的第一命名空间和 所述计算机上的资源的第二命名空间,其中一个或多个资源名称对两个命名空 间是共用的,且这些相同的资源名称对应于其各自命名空间中的不同资源,所 述方法包括:提供用于对命名空间区分优先级的多个策略;

接收对第一资源名称的请求,且响应于所述请求通过使用所述策略来对所 述第一资源命名空间和所述第二资源命名空间区分优先级来确定所述第一命 名空间与所述第二资源命名空间的相对优先级;以及根据所述确定,从所述第一资源命名空间或所述第二命名空间获取对应于 所述第一资源名称的资源。

8.如权利要求7所述的方法,其特征在于,还包括:

接收对第二资源名称的请求,且响应于所述请求再次通过使用所选策略来 对所述第一资源命名空间和所述第二资源命名空间区分优先级来确定所述第 一命名空间与所述第二资源命名空间的相对优先级;以及根据所述再次确定,从所述第一资源命名空间或所述第二命名空间获取对 应于所述第二资源名称的资源。

9.如权利要求7所述的方法,其特征在于,还包括从所述资源策略中选择 适用于所述第一资源名称的那些策略,并使用那些策略来确定所述第一与第二 命名空间的相对优先级。

10.如权利要求9所述的方法,其特征在于,基于所述策略是否匹配所 述第一资源名称来选择所述策略。

11.如权利要求7所述的方法,其特征在于,所述策略描述应该被用于 对资源命名空间区分优先级的条件,且在此类条件被满足时,基于所述策略来 对所述资源命名空间区分优先级。

12.如权利要求11所述的方法,其特征在于,使用两个不同的策略来 对命名空间区分优先级。

13.如权利要求12所述的方法,其特征在于,策略在对命名空间区分 优先级中的贡献与所述策略对于所述第一资源名称有多具体是成比例的。

14.一个或多个存储用于允许计算设备执行对两个或多个重叠资源命 名空间灵活地区分优先级的过程的信息的计算机可读介质,所述过程包括:在通过资源名称请求资源之前,存储定义多个资源上下文的策略信息;

在通过所述资源名称请求所述资源时,基于所述策略信息来相对于彼此区 分所述重叠资源命名空间中的两个或多个的优先级;以及通过按所述被区分优先级的资源命名空间的优先级的次序来访问所述被 区分优先级的资源命名空间直到在所述资源命名空间之一中找到所述资源来 获取所述资源。

15.如权利要求14所述的一个或多个存储用于允许计算设备执行过程 的信息的计算机可读介质,其特征在于,执行所述过程以使得所述资源命名空 间相对于彼此地被区分优先级,此优先级次序独立于对资源命名空间区分优先 级的次序。

16.如权利要求14所述的一个或多个存储用于允许计算设备执行过程 的信息的计算机可读介质,其特征在于,所述区分优先级还基于所述资源名称。

17.如权利要求16所述的一个或多个存储用于允许计算设备执行过程 的信息的计算机可读介质,其特征在于,所述过程还包括向执行所述区分优先 级的策略引擎传递所述资源名称、所述资源命名空间、和/或所述策略信息。

18.如权利要求14所述的一个或多个存储用于允许计算设备执行过程 的信息的计算机可读介质,其特征在于,基于所述资源上下文中的哪一个与所 请求的资源名称最相关来对所述命名空间区分优先级。

19.如权利要求14所述的一个或多个存储用于允许计算设备执行过程 的信息的计算机可读介质,其特征在于,将资源上下文与所述请求的上下文进 行比较。

20.如权利要求14所述的一个或多个存储用于允许计算设备执行过程 的信息的计算机可读介质,其特征在于,所述过程还包括接收对第二资源名称 的请求,并基于所述策略信息来相对于彼此地区分所述重叠资源命名空间中的 两个或多个的优先级,其中以为所述第一资源名称区分优先级时不同的次序来 对所述资源命名空间区分优先级。

说明书 :

背景

计算机应用程序通常通过操作系统来访问计算机或系统资源。资源可以是 文件、库、系统服务(例如,剪切和粘贴、打印机)、注册表或配置信息、以 及其它。虚拟化环境或组件虚拟化应用程序对系统资源的访问,从而如同应用 程序直接处理操作系统那样来透明地处理应用程序对系统资源的访问。

虚拟化环境可管理对多组系统资源的访问,这多组系统资源中的一部分可 能重叠或冲突。本机操作系统可具有包括具有诸如“/某路径/某文件名” (“/somepath/someFileName”)等文件名的文件的一组文件资源。应用程序 虚拟化包(或一组阴影资源)可具有使用同一文件名例如“/路径/某文件名” (“/path/someFileName”)的不同文件实例。虚拟化环境将以对应用程序透 明的方式来管理应用程序对“/路径/某文件名”的访问。该应用程序可写入“/ 路径/某文件名”,且虚拟化环境将确定文件“/路径/某文件名”的哪个实例(本 机操作系统文件或虚拟化包文件)将被写入。

在以下讨论涉及管理对资源的访问的技术。

概述

以下概述仅是为了介绍在以下详细描述中讨论的某些概念而包括的。本概 述并不是全面的,并且不旨在描绘所要求保护的主题的范围,该范围由所附的 权利要求书来阐明。

可通过使用资源的第一命名空间和资源的第二命名空间来提供对计算机 上的资源的访问,其中一个或多个名称对两个命名空间是共用的,且那些名称 表示资源的不同的相应实例。从应用程序接收对第一资源名称的请求,其中第 一资源名称在第一资源命名空间和第二资源命名空间中存在。响应于该请求, 通过将一个或多个资源策略应用于第一资源命名空间和第二资源命名空间来 确定是从第一命名空间还是从第二命名空间中获取资源。

许多附带特征将参考以下的详细描述并结合附图考虑以在下文解释。

附图简述

根据附图阅读以下详细描述,将更好地理解本发明,其中使用相同的 附图标记来指代所附描述中的相同部分。

图1示出计算机上的虚拟化环境。

图2示出管理对多组重叠资源的访问的虚拟化层。

图3示出对资源命名空间灵活地区分优先级的安排。

图4示出对资源命名空间区分优先级的一般过程。

图5示出使用策略来对源命名空间区分优先级的过程。

图6示出将不同策略应用于不同资源命名空间的过程。

图7示出与资源命名空间相关联的示例策略。

图8示出以不同顺序应用的图7的策略。

详细描述

概览

以下讨论的实施例涉及管理对计算机系统上的资源的虚拟访问。首先讨论 虚拟环境。随后解释在虚拟环境中使用的用于对命名空间灵活地区分优先级的 通用技术。随后描述用于对命名空间区分优先级的详细特征和实施例。

虚拟环境

图1示出计算机102上的虚拟化环境100。在计算机102上运行的应用程 序104通过该虚拟化环境100来访问各系统资源106、108、和110。虚拟化环 境100管理应用程序104对系统资源106、108、和110的访问。系统资源106、 108、和110可以是计算机上可用的任何类型的资源。例如,系统资源106可 以是系统文件、注册表或数据库条目、初始化或配置文件、动态加载库等。系 统资源108可以是诸如对象通信服务、打印服务、剪切和粘贴服务等系统服务。 系统资源110可以是概况数据、TCP/IP地址和/或端口、互斥、信号量、命名 管道、COM对象、对象代理、字体等。

系统资源106、108、和110可在计算机102上具有不同的可见范围。某 些资源106、108、和110可以是对计算机102上的所有应用程序可见的全局本 机资源。某些系统资源106、108、和110可以是仅可由应用程序104看见或访 问的本地资源。例如,应用程序虚拟化包可包括文件、注册表条目、配置设置、 或仅应用程序104使用的其它资源的实例。还可以存在仅对正在使用虚拟化环 境100的特定用户或应用程序可用的其它半本地资源。值得注意的是,这些本 地或半本地资源中的任何一个可能具有拥有相同名称的对应本机资源实例 (即,计算机102上的全局资源)。即,如背景中所提到的,给定一资源名称, 可能有:具有该名称的全局资源的实例、具有该名称的本地资源的实例、和/ 或具有该相同名称的半本地资源的实例。用于灵活地控制如何处理此类命名空 间冲突的技术在之后更详细地讨论。

虚拟化环境100可使得资源106、108、和110作为一组虚拟资源112出 现。尽管应用程序104可如同直接访问系统资源106、108、和110那样执行读 和/或写操作,但是虚拟化环境中介这些操作。通常,应用程序104的操作将与 在虚拟化环境100不在计算机102上存在时的操作没有任何不同。然而,无论 应用程序在虚拟化环境存在的情况下是否改变其行为,以下讨论的用于管理资 源(如系统资源106、108、和110)的命名空间的实施例将是适用的。

图2示出管理对多组重叠资源152、154、和156的访问的虚拟化层150。 应用程序158通过虚拟化层150来透明地访问资源152、154、和156。在不同 环境下,资源组152、154、和156可具有不同的优先次序和目的。用户组152 的范围仅为应用程序158,包组154的范围是在虚拟化层150下由相同用户运 行的应用程序,而全局组156具有全局范围,主计算机上的任何应用程序或用 户身份可能能够访问资源组156。可使用其它类型的资源。在另一实施例中, 组152可用于所有在虚拟环境中运行的应用程序,而组154可用于运行一应用 程序的所有用户上的所有虚拟环境。虽然资源组152、154、和156被示为按类 型分成类别160、162、和164,但这并不是必需的,而取决于资源如何在特定 计算平台上被访问。在一个实施例中,资源组152、154、或156将是包含具有 相同范围的所有类型的资源的容器,例如全局文件、注册表条目、网络连接、 或本地文件和系统服务等。

资源组152、154、和156可如上所述地重叠,一个资源组可具有与另一 组中的另一资源实例具有相同名称的资源实例。在图2的示例中,资源的实例 “c:\目录\文件1(c:\dir\file1)”在资源组的每一个中。这些实例具有不同内容、 不同大小等。诸如“c:\目录\文件4(c:\dir1\file4)”的另一资源仅在全局资源 组156中。虚拟化层150处理应用程序158的打开名为“c:\目录\文件2 (c:\dir1\file2)”的文件的请求。

虚拟化层150有可能固定用户资源组152、154、和156的优先级。例如, 虚拟化层150可能向用户资源组152给予优先级并打开资源组152中的“c:\ 目录\文件2(c:\dir1\file2)”的实例并将对应文件句柄或文件对象返回给应用 程序158,从而使得应用程序158使用用户资源组152中的实例。在应用程序 访问名为“c:\目录\文件4(c:\dir1\file4)”的文件时,从唯一具有该资源的资 源组154中获取该资源。尽管此静态区分优先级的方法可以是有用的,但是它 有限制。如当前将要讨论的,可增强虚拟化环境150以允许资源命名空间具有 在不同条件或上下文下改变的优先级。

对命名空间灵活地区分优先级

图3示出用于对资源命名空间灵活地区分优先级的安排。在此安排中,向 虚拟化层150提供策略引擎192。策略引擎192可以是对资源命名空间190灵 活地区分优先级的软件组件。虽然该策略引擎192和虚拟化层150被示为单独 的组件,但是这种功能区分是为了方便且其它结构安排是可能的。然而,在大 多数情况下策略引擎192对应用程序194将是不可见的,应用程序194不考虑 虚拟化层150的存在来操作。

图3中还可见到不同的虚拟环境196、198。虚拟化层150能够在不同虚 拟环境中运行应用程序,这些不同虚拟环境孤立地操作以避免或最小化资源冲 突、防止应用程序之间的干扰、允许执行同一应用程序的不同实例等。例如, 虚拟环境196可以用于Adobe软件而虚拟环境198可以用于Microsoft Office 应用程序。因此,虚拟环境196、198可具有其自己的资源命名空间200、202, 以及用于对资源命名空间200、202区分优先级的相应策略204、206。

如之后所述,策略204、206包括可由策略引擎192使用来为应用程序194 所需的不同资源以不同次序对任意资源命名空间组(例如,资源命名空间200、 202)区分优先级的信息。如自命名空间200、202的箭头所示,资源命名空间 200、202可以是对存储在由虚拟化层150管理的资源命名空间的池或高速缓存 208中的实际资源命名空间的引用,从而允许某些资源命名空间(例如,资源 命名空间200、202)被方便地传递到策略引擎192,以及在必要时在各虚拟环 境(例如,虚拟环境196、198)之间共享等。在本说明书全文中,“命名空间” 将用于表示包含实际资源的实例的容器以及对此类命名空间的引用(例如,指 针、全局唯一标识符、对象引用等)两者,通过这些引用命名空间可被访问、 在组件之间传递、共享等。

图4示出对资源命名空间区分优先级的一般过程。应该理解,对命名空间 动态且灵活地区分优先级(例如,为应用程序所需的不同资源对命名空间重新 区分优先级)的总的构思可采用多种方式来达成,而此处所述的实施例仅是这 些方式中的若干个。最初,如前所述,应用程序具有其需要访问的资源的名称。 因此,该名称被提供220给虚拟化层150(或由虚拟化层150截取)(这对应 用程序而言将是透明的)。接着,虚拟化层150和/或策略引擎190中的任一个 确定222哪个策略(例如,策略204)和命名空间可能与所请求的资源相关。 此类命名空间可以是为虚拟环境已知的所有策略和命名空间,因为命名空间中 的任何一个可能提供所需的资源。命名空间和策略还可预先相关联使得给定策 略与哪个(些)命名空间相关是已知的。例如,虚拟化层或环境的用户配置设 置可指定要使用哪些命名空间及其默认优先级。最后,将这些策略应用到224 所确定222的命名空间以对命名空间区分优先级。如之后将变得显而易见的, 如果第一资源是应用程序所需的且使用图4的过程来获取它,且第二资源随后 被需要且使用图4的过程来获取,则即使使用相同的所确定222的策略和命名 空间来对命名空间区分优先级,这些命名空间也可对每一所需资源具有不同的 优先级。此外,可通过修改相关策略、增加新策略、或移除策略等来灵活地改 变(不必修改应用程序或虚拟化层)从哪个命名空间中获取资源。

图5示出使用策略来对资源命名空间区分优先级的过程。应该理解,有可 能以不同方式来实现策略,且图5的过程仅是这些方式之一。最初,应用程序 具有资源的名称(例如,文件名)并需要250对于对应资源(例如,文件)的 访问。也许响应于系统调用(例如,通过其名称打开文件的请求、或请求系统 资源的某种其它手段),虚拟环境向策略引擎传送252:所需资源的全限定名; 应用程序的虚拟环境具有访问权的资源命名空间的列表;以及为虚拟环境定义 的策略的列表。同样的,可使用其它技术。例如,静态的、预先定义的策略和 命名空间组可用于每一所请求的资源,可在对资源的请求之前确定要对其区分 优先级的命名空间的列表等。

策略引擎为被传送252到该策略引擎的各个命名空间创建254候选命名空 间结构的列表(表示命名空间的结构)。每一结构具有标识该结构所表示的命 名空间的唯一标识符(ID)。该结构还将具有优先级分数,其最初被设为零。 示例在图7中示出,其在之后讨论。策略引擎通过将被传送252的策略应用到 被传送252的命名空间并将所得优先级分数存储在结构中以使用结构的列表来 为各命名空间分别确定256分数。对结构中的每一优先级分数,从结构的列表 中移除被证实不是提供所需250资源的候选者的候选命名空间(例如,因为其 与第一策略相关联但不与另一策略相关联而被传递到策略引擎的命名空间)。 按其优先级分数来排序260剩余的命名空间并将其返回262给虚拟化层,后者 可随后从这些剩余命名空间中获取所需250资源,可进而响应于应用程序的初 始请求将所需250资源提供给应用程序。

图6示出将不同策略应用于不同资源命名空间的过程。通常,被传送252 到策略引擎的每一策略可能涉及被传送252到策略引擎的每一命名空间的优先 级。因此,为开始280将策略应用到命名空间,选择282还未被应用的策略。 如将见到的,应用策略的次序不应影响到为命名空间计算的优先级。如果策略 适用于284所请求的资源,则对候选命名空间列表(命名空间结构的列表)中 的每一286命名空间执行以下步骤(如果策略不适用且存在292未被应用的策 略,则选择282该策略并处理)。首先,如果288另一更具体的策略已经被应 用于命名空间(例如,如果命名空间的当前分数的绝对值大于当前策略所期望 的分数),则选择286另一命名空间。如果否,则通过例如将策略的分数分配 给命名空间来将当前策略应用290到当前命名空间。如果存在292未被应用的 策略,则选择282另一策略并相应地应用该策略。如果不存在292未被应用的 策略,则返回经排序/区分优先级的命名空间。

注意,可按许多方式来确定策略是否适用于284所请求的命名空间。例如, 策略可具有某些上下文准则或设置定义,诸如:其应用于所有以“doc”结尾 的文件名、其应用于目录“\目录1\目录2(\directory1\directory2)”中的文件、 其应用于注册表位置中的条目等。还注意,尽管在图6中,策略在外循环中迭 代且对每一策略迭代命名空间,但是因为结果不会被所应用策略的次序影响, 所以可使用相反的形式;命名空间可在外部循环中迭代,而在内部循环中对当 前命名空间迭代策略。

在一个实施例中,在应用程序194请求一资源名称的资源(例如,通过发 出诸如“打开(文件名)”的系统调用)时,可经由虚拟化层150向策略引擎 192传递资源名称、策略组、以及命名空间组(实际上,是对命名空间的引用 或命名空间的全局唯一标识符)。策略引擎192使用此信息来对命名空间区分 优先级,且从包含具有此资源名称的资源的最高优先级的命名空间中获取资 源。

图7示出与资源命名空间相关联的示例策略320、322、324。三个被称为 U、P、和N的假想资源命名空间是资源的可用来源。策略320和324各自与 命名空间U、P、和N相关联。注意,关联的次序(U,随后是P,随后是N) 反映了这些命名空间的默认优先级,U具有最高优先级。策略322与命名空间 N而非P和U相关联。示例策略320、322、324是注册表位置,尽管它们也可 以是文件目录或资源组的其它定义。例如,策略可指定本地注册表改变应该进 入用户的个人设置注册表命名空间。另一策略可以是对用户的简档的改变应该 在本地文件系统命名空间中作出。又一示例中,应该总是从本地文件系统命名 空间访问具有匹配“*.doc”的名称的文件。或者,要使用给定资源命名空间来 执行对网络共享的改变。考虑一些其它示例。

诸如策略320、322、以及324等策略或者可固有地指定其应用到哪些命 名空间(如同前一段中的某些示例),或者命名空间可自由地与任何策略相关 联。可以假设,在策略不与一命名空间相关联时(至少在被用于对特定命名空 间区分优先级时),则该策略可能对该特定命名空间直接区分优先级。策略可 与多个命名空间相关联,在这种情况下这些命名空间应该具有它们之间的默认 优先级。策略还可具有某些可用于对其应用于的命名空间区分优先级的信息。 例如,可使用一些加权常量。还可基于策略适用于所请求的名称的程度来分配 优先级,以允许以在两个策略匹配一资源名称时具有更具体的上下文(例如, 更具体的文件系统目录、显式文件名而不是通配指定的文件名、较长的注册表 路径、其中具有特定子串的路径名等)的策略被应用的方式来应用策略。

图8根据图5和6的实施例示出了以不同顺序被应用的图7的策略320、 322、324。数据结构的列表340将在现在详细讨论,而之后,将简要地讨论类 似的列表342和344。对此示例,每一策略的权重或优先级分数将由其指定的 路径的长度来确定,对U、P、和N相应地是16、25、和31。也可使用其它权 重,路径长度恰好是针对具体性的方便度量。权重还可由诸如通配符的存在、 某些预先定义的准则等因素来驱动。

假定应用程序需要250对应于完全限定资源名称 “HKLM\Software\Adobe\JobQueue\Config”(为简明起见,将被称为 “HKLM...Config”)的资源。策略320、322、和324对应于其中作出请求的 虚拟环境,且因此这些策略以及其相关联的命名空间被传送252到策略引擎(或 具有类似功能的某些虚拟化组件)。策略引擎为每一命名空间创建254候选命 名空间结构,其优先级被设为0;列表340中的“命名空间”和“初始”列。 如下应用280策略320、322、324。

首先选择282策略320。策略320是适用284的,因为所请求的名称 “HKLM...Config”落入由策略320所指定的路径(上下文)中。换言之,所 请求的资源名称“HKLM...Config”匹配策略320的上下文。因此,对候选列 表340中的每一命名空间U、P、和N,以下事件发生:命名空间U被应用, 因为U的当前分数(0)的绝对值小于策略320的预期分数(16.3)。注意, 添加“.3”以表示对策略320而言U在命名空间U、P、和N中具有默认最高 的优先级的事实。类似的,将“.2”和“.1”分别地添加到P和N的权重。策 略320随后被应用于P和N,且分别给予它们分数16.2和16.1。存在292未被 应用的策略,即322、324。选择282策略322。其具有比列表340中的分数大 的优先级权重并因此其将这些命名空间评分为-25、-25和25。对命名空间U 和P给出负分,因为策略322不与这些命名空间相关联。最后,最后的策略 324被应用于290每一命名空间,因为其权重或分数31大于前一分数的绝对值。 命名空间的最终分数是31.3、31.2、和31.1,这指示在从这些命名空间中获取 “HKLM...Config”的资源时,命名空间U、P、和N将以该次序被使用直到 在这些命名空间之一中找到对应于“HKLM...Config”的资源。

命名空间列表342和344示出了在以不同次序应用策略320、322、324 时将如何分配分数。如果该次序如下则将得到列表342:策略322,320,随后 324。如果该次序如下则将得到列表344:策略324,322,随后320。在每一情 况下这些命名空间的最终分数是相同的。

根据上述某些实施例,可从多个重叠命名空间中获取资源且可通过指定其 下不同命名空间的优先级的大体(或甚至具体)的环境(例如,通过使用策略) 来以灵活且可预测的方式解决冲突。同一的策略引擎可与同一的虚拟化层协作 以使用正在被虚拟化层处理的不同虚拟环境的不同策略来对不同命名空间区 分优先级。此外,在某些实施例中,可按任何次序将策略应用到命名空间而具 有确定性的结果。

结论

以上讨论的实施例和特征都可用储存在易失性或非易失性计算机或设备 可读介质中的信息的形式来实现。这被认为至少包括诸如光学存储(例如,CD -ROM)、磁介质、闪速ROM、或存储数字信息的任何现有或未来装置等介 质。所存储的信息可采用机器可执行指令(例如,经编译的可执行二进制代码)、 源代码、字节代码、或任何其它可用于允许或配置计算机设备来执行上述各实 施例的信息的形式。这还被认为至少包括诸如RAM和/或在程序的执行期间存 储诸如CPU指令等信息以实现一实施例的虚拟存储器等易失性存储器,以及 存储允许程序或可执行代码被加载和执行的信息的非易失性介质。实施例和特 征可在任何类型的计算设备上执行,这些计算设备包括便携设备、工作站、服 务器、移动无线设备等。