【技术实现步骤摘要】
本专利技术一般涉及故障容许扩展,尤其涉及用于为扩展提供故障隔离的虚拟环境的系统和方法。
技术介绍
一种用于扩展操作系统或应用程序的越来越普及的机制是使用可提供额外的功能并可在个别的基础上传送和调用的扩展。例如,现代的操作系统依赖于硬件制造商提供的扩展以在由硬件制造商制造的硬件组件和操作系统软件之间接口。以此方式,操作系统作者只需提供通用硬件支持,而无需试图支持每一可想象的硬件设备。当新硬件设备被添加到运行操作系统的计算系统上时,特别地被设计成对在新硬件设备和操作系统之间接口的扩展可由硬件制造商提供,并可由操作系统用于控制新硬件设备和向用户提供对新硬件设备的功能的访问。除操作系统之外,许多其它软件应用程序依赖于扩展来提供额外的功能,同时降低主机应用程序的复杂性。例如,web浏览器应用程序可依赖于扩展来向用户提供解释各种数据类型或与其交互的能力。由此,web浏览器只需提供处理有限数据类型的能力,如以超文本标记语言(HTML)书写的网页或使用联合摄影专家组(JPEG)编码格式编码的图像。需要额外的浏览器应用程序能力的网页可依赖于浏览器应用程序的自定义扩展来提供需要的能力。例如,希望使用以很少使用的格式编码的图像的网页作者可提供一扩展,它可理解该特定的图像格式,并可与web浏览器接口以使web浏览器能够显示使用该格式编码的图像。其它应用程序也可使用扩展来提供增加的功能。例如,图像处理应用程序可使用由各种艺术家提供的扩展来允许用户访问由那些艺术家开发的许多不同的艺术图像处理算法。因此,图像处理程序能够提供基本的图像编辑特征,例如颜色和对比度控制。诸如看似将照片转 ...
【技术保护点】
一种用于隔离由主机进程使用的扩展的方法,其特征在于所述方法包括以下步骤:检测所述主机进程的操作,其中,所述操作与所述扩展的功能有关;为所述扩展标识一代理,其中,所述代理支持与所述操作有关的功能;将所述代理加载到所述主 机进程中;将所述扩展加载到一虚拟进程中,其中,所述虚拟进程是所述主机进程的虚拟实例;将与所述操作相关联的请求从所述主机进程中的代理转发到所述虚拟进程中的扩展;以及将来自所述扩展的响应转发到所述主机进程中的代理,其中, 所述响应可由所述代理用于支持所述主机进程的操作。
【技术特征摘要】
US 2004-4-30 10/837,9711.一种用于隔离由主机进程使用的扩展的方法,其特征在于所述方法包括以下步骤检测所述主机进程的操作,其中,所述操作与所述扩展的功能有关;为所述扩展标识一代理,其中,所述代理支持与所述操作有关的功能;将所述代理加载到所述主机进程中;将所述扩展加载到一虚拟进程中,其中,所述虚拟进程是所述主机进程的虚拟实例;将与所述操作相关联的请求从所述主机进程中的代理转发到所述虚拟进程中的扩展;以及将来自所述扩展的响应转发到所述主机进程中的代理,其中,所述响应可由所述代理用于支持所述主机进程的操作。2.如权利要求1所述的方法,其特征在于,还包括以下步骤检测所述虚拟进程中的错误;以及用错误指示将控制返回给所述主机进程。3.如权利要求1所述的方法,其特征在于,所述操作是对所述扩展的调用,并且其中,所述代理向所述主机进程展示与所述扩展相关联的服务API。4.如权利要求1所述的方法,其特征在于,所述虚拟进程向所述扩展提供与所述主机进程相关联的支持API。5.如权利要求1所述的方法,其特征在于,转发所述请求包括将来自所述主机进程的请求转发到所述虚拟进程中的一占位程序,其中,如果所述扩展已被加载到所述主机进程中,则所述扩展以与所述扩展接收来自所述主机进程的请求一样的方式接收来自所述占位程序的请求。6.如权利要求1所述的方法,其特征在于,转发所述响应包括检测所述扩展或所述虚拟进程的非相容响应或故障;并且由所述代理向所述主机进程提供令所述主机进程提供的功能能够温和地退化的适当指示。7.如权利要求1所述的方法,其特征在于,还包括以下步骤通过将用户模式环境从所述主机进程复制到所述虚拟进程,在所述虚拟进程中提供所述主机进程的用户模式环境。8.如权利要求1所述的方法,其特征在于,还包括以下步骤通过将主机进程存储器和虚拟进程存储器映射到一公用物理存储器,在所述虚拟进程中提供所述主机进程的用户模式环境;以及保护所述公用物理存储器不受所述虚拟进程的写访问。9.如权利要求1所述的方法,其特征在于,所述虚拟进程是使用一保存的相干状态创建的虚拟机器进程,所保存的相干状态通过执行以下步骤来创建引导一初始虚拟机器;以及保存由所述初始虚拟机器的引导所创建的相干状态。10.如权利要求1所述的方法,其特征在于,所述主机进程是操作系统进程,而所述虚拟进程是使用所保存的相干状态创建的虚拟机器进程,所保存的相干状态通过记录所述操作系统进程的引导期间的状态来创建。11.一种有效地创建虚拟操作系统环境的方法,其特征在于,所述方法包括以下步骤在具有至少一个处理器的计算装置上开始一操作系统环境的引导;在所述操作系统环境的引导期间,向所述至少一个处理器指示所述计算装置具有一个或多个额外的处理器;在所述至少一个处理器和所述一个或多个额外处理器被初始化之后,保存所述操作系统环境引导期间的状态;在所述操作系统环境完成了与所述至少一个处理器相关联的至少一个组件绑定之后,向所述操作系统环境指示所述一个或多个额外处理器发生故障;向所述虚拟操作系统环境提供所保存的状态;使用所保存的状态引导所述虚拟操作系统环境,其中,引导所述虚拟操作系统环境包括防止所述至少一个处理器访问与所述至少一个组件绑定相关联的至少一个组件;以及使用用于向所述一个或多个额外处理器提供对与所述至少一个处理器相关联的至少一个组件绑定的访问的预先存在的支持,向所述虚拟操作系统环境提供对所述至少一个组件绑定的访问。12.如权利要求11所述的方法,其特征在于,引导所述虚拟操作系统环境还包括依赖于与所述至少一个处理器相关联的至少一个组件绑定;以及使用所述一个或多个额外处理器来完成所述虚拟操作系统环境的引导。13.如权利要求11所述的方法,其特征在于,还包括创建所述虚拟操作系统环境中对一指定组件的指定组件绑定,其中,所述指定组件与主宿在所述虚拟操作系统环境中的设备驱动程序接口。14.如权利要求13所述的方法,其特征在于,创建所述指定组件绑定包括在所述主机操作系统环境的引导期间高速缓存与所述指定组件有关的通信;以及向所述虚拟操作系统环境提供高速缓存的通信。15.如权利要求13所述的方法,其特征在于,创建所述指定组件绑定包括将所述指定组件绑定到所述主机操作系统环境;从所述主机操作系统环境内休眠所述指定组件,其中,所述休眠清楚地清洗了与所述指定组件有关的通信队列;以及将所述指定组件绑定到所述虚拟操作系统环境。16.一种具有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于隔离由一主机进程使用的扩展,所述计算机可读介质包括计算机可执行指令,用于检测所述主机进程的操作,其中,所述操作与所述扩展的功能有关;为所述扩展标识一代理,其中,所述代理支持与所述操作有关的功能;将所述代理加载到所述主机进程中;将所述扩展加载到一虚拟进程中,其中,所述虚拟进程是所述主机进程的实例;将与所述操作相关联的请求从所述主机进程中的代理转发到所述虚拟进程中的扩展;以及将来自所述扩展的响应转发到所述主机进程中的代理,其中,所述响应可由所述代理用于支持所述主机进程的操作。17.如权利要求16所述的计算机可读介质,其特征在于,所述主机进程不被设计成调用所述扩展。18.如权利要求16所述的计算机可读介质,其特征在于,还包括计算机可执行指令,用于检测所述虚拟进程中的错误;以及用一错误指示将控制返回给所述主机进程。19.如权利要求16所述的计算机可读介质,其特征在于,所述操作是对所述扩展的调用,并且其中,所述代理向所述主机进程展示与所述扩展相关联的服务。20.如权利要求16所述的计算机可读介质,其特征在于,还包括用于使用软件故障隔离技术执行所述主机进程中的扩展的通常被调用的轻量级功能的计算机可执行指令。21.如权利要求16所述的计算机可读介质,其特征在于,所述虚拟进程向所述扩展提供与所述主机进程相关联的支持API。22.如权利要求16所述的计算机可读介质,其特征在于,用于转发所述请求的计算机可执行指令包括用于将来自所述主机进程的请求转发到所述虚拟进程中一占位程序的计算机可执行指令,其中,如果所述扩展已被加载到所述主机进程中,则所述扩展以与所述扩展接收来自所述主机进程的请求的同一方式接收来自所述占位程序的请求。23.如权利要求16所述的计算机可读介质,其特征在于,用于转发所述响应的计算机可执行指令包括计算机可执行指令,用于检测所述扩展或所述虚拟进程的非相容响应或故障;以及由所述代理向所述主机进程提供令所述主机进程提供的功能能够温和地退化的适当指示。24.如...
【专利技术属性】
技术研发人员:EP沃伯,P巴勒姆,T罗德,U埃林松,
申请(专利权)人:微软公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。