受信文件间接操作的制作方法

文档序号:6534353阅读:217来源:国知局
受信文件间接操作的制作方法【专利摘要】本文描述了用于在虚拟化服务器托管的不同域之间进行文件传输的方法和系统。通过更新存储于关键值存储库中的共享信息,受信域(Dom0)可指示可供第二域(访客域)使用的一个或者多个文件、目录和/或卷标。访客域可枚举共享文件以显现出好像在其自身的文件系统结构内。访客域拦截对其文件系统的调用,确定所请求的数据是否确实存储在其自身的文件系统中或受信域内,并且当所请求的数据由受信域所共享时,代理对受信域的文件系统调用。利用在受信域和访客域之间共享的一个或多个存储器,可传递关键值存储库的信息、共享数据信息和内容。【专利说明】受信文件间接操作[0001]有关申请的交叉引用[0002]本申请要求于2012年4月23日提交的、名称为"受信文件间接操作(TrustedFileIndirection)"的、序列号为第13/453,188号美国专利申请的优先权。[0003]领域[0004]本申请通常涉及计算机和计算机网络。具体地,本申请涉及用于在不同虚拟机之间传输文件的方法和系统,此时这些虚拟机中的至少一个不受信任。[0005]背景[0006]传统上,个人计算机包括操作系统、应用程序以及用于单个用户的用户设置。个人计算机通常被它们的所有者使用和管理。然而,许多机构现在使用虚拟化、远程访问和/或云计算资源来实现他们的计算需求。虚拟化云计算资源通常允许在单个物理机器上包含操作系统、应用程序和多个用户的用户设置。桌面虚拟化技术允许操作系统的多个实例保持分离,因此一个用户的活动不会影响到其它用户的体验。云计算环境允许云运营商所拥有的计算机由云运营商管理但由云用户使用,云用户可为云运营商的客户。然而,云用户可包括签约或登记注册这项业务的任何人,因此可能对任何特定云订户或用户的诚信知道很少。由此,对受信域上的文件的访问通道并没有提供给访客域的用户。[0007]概要[0008]根据前面的背景,下面呈现本公开内容的简化概述,以便提供对本文所描述的一些方面的基本理解。这个概述并非广泛的综述,并且并非旨在确定主要或关键元件,或者描述权利要求的范围。下面的概述仅以简化形式来呈现各个描述方面,作为下面提供的更为详细描述的序言。[0009]根据本公开内容的一个方面,传输数据的方法可以如下进行:通过接收数据更新可供在超级管理器(hypervisor)上执行的访客域使用的指示,然后为通过访客域的文件系统可访问的一个或多个数据文件中的每个起别名,其中所述数据更新包括在所述超级管理器上执行的受信域的文件系统中的一个或多个数据文件。共享数据可包括一个或多个数据文件、数据目录和/或数据的其它特定区域。[0010]根据一个方面,起别名可由代理驱动器完成,代理驱动器拦截在所述访客域内的文件系统调用,并且确定是在所述访客域的文件系统内执行每个文件系统调用还是将所述文件系统调用传递至所述受信域。[0011]本文所描述的方面可由虚拟化服务器或由存储在计算机可读介质上的软件来完成,并且由一个或多个处理器执行。例如,一个或多个计算机可读存储介质可存储计算机可执行指令,当执行计算机可执行指令时,可以在超级管理器上执行的受信域和访客域之间进行数据传输。所述访客域可以接收共享数据是可供使用的指示。在所述访客域内执行的代理驱动器可拦截与所述共享数据有关的文件系统调用。所述驱动器可向所述受信域发送与所述共享数据有关的文件系统调用。所述受信域可执行与所述共享数据有关的文件系统调用,以及根据与所述共享数据有关的文件系统调用的执行,向所述访客域返回信息。[0012]在一些方面中,代理驱动器可以利用分配给所述访客域的共享存储器的一个页面或多个页面,传递每个文件系统调用至所述受信域。所述受信域可对在所述受信域的文件系统中的有关数据文件执行文件系统调用,并且将响应(例如所请求的数据、确认等等)通过所述共享存储器传回所述访客域。[0013]根据一些方面,所述受信域可存储关键值存储库(数据库),所述关键值存储库存储关于共享文件的文件元数据。在访客域内执行的关键值监控器可监控关键值存储库的变化,并且根据共享文件元数据(例如文件名称、文件类型、文件位置、文件大小、文件日期等等)更新文件系统数据库,其中在所述访客域中的代理驱动器管理所述文件系统数据库。[0014]在一个实施方式中,虚拟化服务器的处理器可执行存储在存储器内的指令以进行受信文件间接操作。虚拟化服务器可包括超级管理器,其管理多个虚拟机(VM)实例的执行,其中每个VM都分配有存储器的不同部分。可能存在所述超级管理器上执行的第一VM实例,其中所述第一VM实例是用于管理服务器的受信服务器域。所述第一VM实例可分配有存储器的第一区。可能存在所述超级管理器上执行的第二VM实例,其中所述第二VM实例是与所述服务器装置的客户用户有关的非受信域。所述第二VM实例可分配有存储器的第二区。所述服务器还可存储或访问在存储器的第一区中存储的共享数据,所述存储器的第一区分配给所述第一VM实例,并且指定可被所述第二VM实例访问。还可存在所述第二VM实例中执行的代理驱动器,其中所述代理驱动器配置成拦截在所述第二VM实例内的文件系统调用,以及当所拦截的文件系统调用与所述共享数据有关时,将文件系统调用代理到所述第一VM实例以便执行。[0015]附图简述[0016]已经如此用通用术语描述所公开内容的各方面,现在将参照附图,这些附图并不必须按比例绘制,其中:[0017]图1图解说明了可实施所公开内容的各个方面的示例操作环境。[0018]图2图解说明了可根据本文所描述的一个或多个说明性方面而使用的计算装置。[0019]图3图解说明了可根据本文所描述的一个或多个说明性方面而使用的计算装置。[0020]图4是根据本文所描述的一个或多个说明性方面,描述虚拟化服务器的实施方式的方框图。[0021]图5图解说明了可执行本文所描述的各方面的示例系统体系结构。[0022]图6图解说明了根据本文所描述的一个或多个方面来更新共享文件信息的方法。[0023]图7图解说明了根据本文所描述的一个或多个方面来进行受信文件间接操作的方法。[0024]详细描述[0025]在各个实施方式的下面描述中,参照构成本文一部分的附图,在附图中通过图解说明来示出各个实施方式,本文所描述的各方面可在这些实施方式中实现。应当理解,可使用其它的实施方式,以及可对结构和功能进行修改,这不会偏离本公开内容的范围和主旨。[0026]当阅读下面的公开内容时,本领域的技术人员应当了解,本文所描述的各个方面可具体体现为方法、数据处理系统、或者计算机程序产品。因此,这些方面采用的形式可为完全硬件的实施方式,完全软件的实施方式,或者结合软件和硬件方面的实施方式。而且,这些方面可采用的形式为用一个或多个计算机可读存储介质来存储的计算机程序产品,其包括具体实现在存储介质内或存储介质上的计算机可读程序代码或者指令。任意适合的计算机可读存储介质都可使用,包括硬盘、CD-ROM、光学存储装置、磁性存储装置和/或这些装置的任意组合。此外,表示如本文所描述的数据或事件的各种信号可在源和目的地之间传输,采用的方式为传送通过信号传导介质的电磁波,信号传导介质例如金属导线、光纤和/或无线传输介质(例如空气和/或空间)。[0027]图1图解说明了在示例计算环境100中的通用计算装置101(例如计算机服务器106a)的示例框图,根据公开内容的一个或多个说明性实施方式,可使用该通用计算装置。根据一个或多个方面,通用计算装置101可为在单个服务器或者多个服务器的桌面虚拟化系统(例如云系统)中的服务器l〇6a,其配置成向客户端访问装置提供虚拟机。通用计算装置101可具有用于控制服务器总操作的处理器103以及其相关组件,包括随机存取存储器(RAM)105、只读存储器(ROM)107、输入/输出(I/O)模块109和存储器115。[0028]输入/输出模块109可包括鼠标、键盘、触摸屏、扫描仪、光学阅读机和/或触控笔(或者其它输入装置),通过这些装置,通用计算装置101的使用者可提供输入,且输入/输出模块109还可包括提供音频输出的一个或多个扬声器和提供文本输出、视听示出和/或图形化输出的视频显示装置。软件可存储在存储器115内和/或其它储存器内以向处理器103提供指令,使通用计算装置101能执行各种功能。例如,存储器115可存储通用计算装置101所使用的软件,例如操作系统117、应用程序119以及有关数据库121。可选择地,通用计算装置101的一些或全部计算机可执行指令可以硬件或固件(未显示)形式具体实现。[0029]通用计算装置101可运行于网络环境中,该网络环境支持与一个或多个远程计算机的连接,例如终端140(还被称作客户端装置)。终端140可为个人计算机或者服务器,其包括上面关于通用计算装置101描述的许多或全部元件。图1中所描绘的网络连接包括局域网(LAN)125和广域网(WAN)129,而且还可包括其它网络。当在LAN网络环境中使用时,通用计算装置101可通过网络接口或适配器123连接至LAN125。当在WAN网络环境中使用时,通用计算装置101可包括调制解调器127或者用于在广域网129上建立通信的其它网络接口,广域网例如计算机网络130(例如因特网)。应当了解,所示的网络连接是说明性的,且可使用在这些计算机之间建立通信链接的其它装置。[0030]通用计算装置101和/或终端140还可为包括各种其它组件(例如电池、扬声器和天线(未显示))的移动终端(例如移动电话、智能电话、PDA、笔记本电脑等等)。[0031]本公开内容可运行在许多其它通用或专用的计算系统环境或配置中。可适于本公开内容使用的众所周知的计算系统、环境和/或配置的例子包括,但并不限制于,个人计算机、服务器计算机、手持式装置或便携式装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子设备、网络PC、小型计算机、大型计算机、包括任意上面系统或装置的分布式计算环境以及类似物。[0032]如图1所示,一个或多个客户端装置140可与一个或多个服务器106a_106n(本文通常称为"服务器106")进行通信。在一个实施方式中,计算环境100可包括安装在服务器106和客户机140之间的设备。这个设备能够管理客户端/服务器连接,且在一些情况下能够对处于多个后端服务器106中的客户端连接进行负载平衡。[0033]在一些实施方式中,客户机140被称作单个客户机140或者单组客户机140,而服务器106可称作单个服务器106或者单组服务器106。在一个实施方式中,单个客户机140与一个以上的服务器106进行通信,而在另一个实施方式中,单个服务器106与一个以上的客户机140进行通信。在又一个实施方式中,单个客户机140与单个服务器106进行通信。[0034]在一些实施方式中,客户机140可称作下面术语中的任意一个:客户机140、客户端、客户端计算机、客户端装置、客户端计算装置、本地机器、远程机器、客户端节点、终端、终端节点、或者第二机器。在一些实施方式中,服务器106可称作下面术语中的任意一个:服务器、本地机器、远程机器、服务器场、主机计算装置、或者第一机器。[0035]在一个实施方式中,客户机140可为虚拟机。该虚拟机可为任意虚拟机,而在一些实施方式中,虚拟机可为由CitrixSystem、IBM、VMware开发的超级管理器或者任意其它超级管理器来管理的任意虚拟机。在一些方面,虚拟机可由超级管理器来管理,而在其它方面,虚拟机可由在服务器106上执行的超级管理器或者在客户端140上执行的超级管理器来管理。[0036]客户机140可执行、运行或者以其它方式提供应用程序,该应用程序可为如下的任意一种:软件、程序、可执行指令、虚拟机、超级管理器、网页浏览器、基于网络的客户端、客户端一服务器应用程序、瘦客户机的(thin-client)计算客户端、ActiveX控件、Java小程序、类似于软件IP电话的与通过互联网协议(VoIP)通信的语音有关的软件、用于视频流和音频流的应用程序、便于实时数据通信的应用程序、HTTP客户端;FTP客户端;Oscar客户端、Telnet客户端、或者任意其它的可执行指令集。又一些实施方式包括显示应用程序输出的客户端装置140,该应用程序输出通过在服务器106或者其它位于远程的机器上远程执行的应用程序生成。在这些实施方式中,客户端装置140能够将应用程序输出显示在应用程序窗口、浏览器或者其它的输出窗口。在一个例子中,应用程序是桌面,而在其它例子中,应用程序是生成桌面的应用程序。桌面可包括向操作系统实例提供用户界面的图形壳,本地和/或远程的应用程序可集成在该操作系统中。如本文所使用的,应用程序是在加载操作系统实例(可选地还为桌面)之后执行的程序。[0037]在一些实施方式中,服务器106执行远程演示客户端或其它客户端或程序,这些客户端或程序使用瘦客户机协议或者远程显示协议来捕获由在服务器106上执行的应用程序生成的显示输出,并且向远程客户端140发送应用程序显示输出。瘦客户机协议或者远程显示协议可为如下协议中的任意一种:由佛罗里达州的劳德代尔堡(Ft.Lauderdale)的CitrixSystem制作的独立计算体系结构(ICA)协议;或者由华盛顿州的雷德蒙德(Redmond)的微软公司制作的远程桌面协议(RDP)。[0038]计算环境能够包括一个以上的服务器106A-106N,使得服务器106A-106N从逻辑上一同组成服务器场106,例如在云计算环境中。服务器场106能够包括服务器106,这些服务器在地理上分散并在逻辑上一同组成服务器场106,或者这些服务器106彼此相邻放置,在逻辑上一同组成服务器场106。在一些实施方式中,在服务器场106内的地理上分散的服务器106A-106N能够使用WAN、MAN或LAN进行通信,其中这些不同地理区域可被描述为:不同的大洲;大洲的不同区域;不同的国家;不同的州;不同的城市;不同的校园;不同的房间;或者上面这些地理位置的任意组合。在一些实施方式中,服务器场106可作为单个实体来管理,而在其它实施方式中,服务器场106能够包括多个服务器场106。[0039]在一些实施方式中,服务器场106能够包括执行基本相同类型的操作系统平台(例如,由华盛顿州的雷德蒙德的微软公司生产的WINDOWSNT、UNIX、LINUX或者SNOWLEOPARD)的服务器106。在其它实施方式中,服务器场106能够包括执行第一类操作系统平台的第一组服务器106,以及执行第二类操作系统平台的第二组服务器106。在其它实施方式中,服务器场106能够包括执行不同类型操作系统平台的服务器106。[0040]在一些实施方式中,服务器106能够为任意服务器类型。在其它实施方式中,月艮务器106可为如下服务器类型中的一种:文件服务器、应用程序服务器、网络服务器、代理服务器、设备、网络设备、网关、应用程序网关、网关服务器、虚拟化服务器、部署服务器、SSLVPN服务器;防火墙、网络服务器、应用程序服务器或者主应用程序服务器、执行活动目录的服务器106、或者执行应用程序加速程序的服务器106,该应用程序加速程序提供防火墙功能、应用程序功能或负载平衡功能。在一些实施方式中,服务器106可为RADIUS服务器,该服务器包括远程认证拨号用户服务。在服务器106包括设备的实施方式中,服务器106可为由如下任意一个制造商生产的设备:CitrixApplicationNetworkingGroup、SilverPeakSystems,Inc.、RiverbedTechnology,Inc.、F5Networks,Inc.、或者JuniperNetworks,Inc.。一些实施方式包括第一服务器106A,其接收客户机140的请求,将该请求转交至第二服务器l〇6n,并且用来自第二服务器106n的应答来响应由客户机140产生的请求。第一服务器106A能够获得客户机140可用的应用程序的枚举,以及与应用程序服务器106有关的地址信息,该应用程序服务器106托管在应用程序的枚举中经确认的应用程序。于是,第一服务器106A能够使用网络接口来提供对客户机请求的应答,并且直接与客户机140相通信以使客户机140能够访问经确认的应用程序。[0041]在一些实施方式中,服务器106可执行如下应用程序中的任意一种:使用瘦客户机协议以向客户端发送应用程序显示数据的瘦客户机应用程序、远程显示演示应用程序、CitrixSystem公司的类似于METAFRAME或者CITRIXPRESENTATIONSERVER的CITRIXACCESSSMTE的任意部分、微软公司生产的MICROSOFTWINDOWSTerminalServices、或者CitrixSystem公司开发的ICA客户端。另一个实施方式包括服务器106,其为应用程序服务器,例如:提供诸如由微软公司生产的MICROSOFTEXCHANGE的电子邮件业务的电子邮件服务器、网络或因特网服务器、桌面共享服务器、协作服务器、或者其它任意类型的应用程序服务器。又一个其它实施方式包括服务器106,其执行如下类型的服务器托管应用程序中的任意一种:由CitrixOnlineDivision公司提供的G0T0MEETING、由加利福尼亚的圣克拉拉(SantaClara)的WebEx公司提供的WEBEX、或者由微软公司提供的MicrosoftOfficeLIVEMEETING。[0042]在一些实施方式中,客户机140可为客户端节点,其寻求访问服务器106提供的资源。在其它实施方式中,服务器106可允许客户端140或者客户端节点访问所托管的资源。在一些实施方式中,服务器106用作主节点,使得它与一个或多个客户端140或服务器106相通信。在一些实施方式中,主节点能够识别且向一个或多个客户端140或服务器106提供与托管所请求应用程序的服务器106有关的地址信息。在其它又一些实施方式中,主节点可为服务器场106、客户机140、客户端节点集群140或者设备。[0043]一个或多个客户端140和/或一个或多个服务器106能够在网络130上发送数据,网络130安装在计算环境100内的机器和设备之间。网络130能够包括一个或多个子网络,并且能够安装在客户端140、服务器106、计算机器和设备的任意组合之间,它们包含于计算环境100内。在一些实施方式中,网络130可为:局域网(LAN)、城域网(MAN)、广域网(WAN)、包括多个子网络的主要网络104(其中多个子网络位于客户机140和服务器106之间)、具有私有子网络的主要公共网络130(例如因特网)、具有公共子网络的主要私有网络130、或者具有私有子网络的主要私有网络130。又一个实施方式包括网络130,其能够为如下网络类型中的任意一种:点对点网络、广播网、电信网络、数据通信网络、计算机网络、ATM(异步传输模式)网络、SONET(同步光纤网络)、SDH(同步数字体系)网络、无线网络、有线网络、或者包括无线链接的网络,其中该无线链接可为红外线通道或卫星频带。网络130的网络拓扑结构能够在不同的实施方式中有所不同,可能的网络拓扑结构包括:总线网络拓扑结构、星形网络拓扑结构、环形网络拓扑结构、基于中继器的网络拓扑结构、或者分层星形网络拓扑结构。另外的实施方式可包括移动电话网的网络,其使用协议来进行移动装置之间的通信,其中协议可为如下中的任意一种:AMPS、TDMA、CDMA、GSM、GPRSUMTS、或者能够在移动装置之间发送数据的其它任意协议。[0044]图2图解说明了计算装置200的一种实施方式,其中在图1中图解说明的客户机140和服务器106可部署为本文所图解说明和描述的计算装置200的任意实施方式和/或针对该任意实施方式而被执行。包含在计算装置200内的是系统总线250,其与如下组件相通信:中央处理器221、主存储器222、存储内存228、输入/输出(I/O)控制器223、显示装置224A-224N、安装装置216、以及网络接口218。在一个实施方式中,存储内存228包括:操作系统,软件程序、以及客户端代理220。在一些实施方式中,I/O控制器223还与键盘226以及指向装置227相连接。其它实施方式可包括与一个以上的输入/输出装置230A-230N相连接的I/O控制器223。[0045]图3图解说明了计算装置300的一种实施方式,其中在图1中图解说明的客户机140和服务器106可部署为本文所图解说明和描述的计算装置300的任意实施方式和/或针对该任意实施方式而被执行。包含在计算装置300内的是系统总线350,其与如下组件相通信:桥接器370、以及第一I/O装置330a。在另一个实施方式中,桥接器370又与主中央处理器321通信,其中中央处理器321还能够与第二I/O装置330b、主存储器322以及高速缓冲存储器340相通信。包含在中央处理器321内的是I/O端口、存储器端口303和主处理器。[0046]计算机器300的实施方式可包括中央处理器321,其特征为如下组件结构中的任意一个:逻辑电路,其响应且处理从主存储器单元322中取出的指令;微处理器单元,例如:由Intel公司生产的微处理器、由Motorola公司生产的微处理器、由加利福尼亚的圣克拉拉(SantaClara)的Transmeta公司生产的微处理器、例如由国际商业机器公司(IBM)生产的那些的RS/6000处理器、例如由超威半导体公司(AMD)生产的那些处理器、或者逻辑电路的其它任意组合。中央处理器322的又一个实施方式可包括如下的任意组合:微处理器、微控制器、具有单个处理核的中央处理器、具有两个处理核的中央处理器、或者具有一个以上处理核的中央处理器。[0047]虽然图3图解说明了包括单个中央处理器321的计算装置300,但是在一些实施方式中,计算装置300可包括一个或多个处理器321。在这些实施方式中,计算装置300可存储和执行固件或其它可执行指令,当执行时,指示一个或多个处理器321同时执行指令或者同时执行在单个数据段上的指令。在其它实施方式中,计算装置300可存储和执行固件或其它可执行指令,当执行时,指示一个或多个处理器各自执行一组指令的一部分。例如,可指示每个处理器321执行一部分程序或者程序中的特定模块。[0048]在一些实施方式中,处理器321可包括一个或多个处理核。例如,处理器321可具有双核、四核、八核等等。在一个实施方式中,处理器321可包括一个或多个并行的处理核。在一些实施方式中,处理器321的处理核能够以全局地址空间来访问可用存储器,或者在其它实施方式中,在计算装置300内的存储器能够被分段,并且分配给处理器321内的特定核。在一个实施方式中,在计算装置300中的一个或多个处理核或者处理器能够各自地访问本地存储器。在又一个实施方式中,在计算装置300内的存储器能够在一个或多个处理器或处理核之间共享,而其它的存储器能够被特定的处理器或者处理器子集访问。在计算装置300包括一个以上处理器的实施方式中,多个处理器能够包含于单个集成电路(1C)内。在一些实施方式中,这些多个处理器能够通过内部高速总线链接在一起,内部高速总线可被称作元件互连总线。[0049]在计算装置300包括一个或多个处理器321或者处理器321包括一个或多个处理核的实施方式中,处理器能够同时对多个数据段执行单条指令(SMD),或者在其它实施方式中,能够同时对多个数据段执行多条指令(MMD)。在一些实施方式中,计算装置100能够包括任意数量的SMD和MMD的处理器。[0050]在一些实施方式中,计算装置300可包括图形处理器或者图形处理器(graphicsprocessingunit)(未显示)。图形处理器能够包括软件和硬件的任意组合,还能够输入图形数据和图形指令,根据所输入的数据和指令来呈现图形,并且输出所呈现的图形。在一些实施方式中,能够将图形处理器包含于处理器321内。在其它实施方式中,计算装置300可包括一个或多个处理器321,其中至少一个处理器321专用于处理和呈现图形。[0051]计算机器300的一个实施方式包括中央处理器321,其通过次级总线(也被称为系统后端总线)与高速缓冲存储器340相通信,而计算机器300的另一个实施方式包括中央处理器321,其通过系统总线350与高速缓冲存储器相通信。在一些实施方式中,中央处理器还能够使用本地系统总线350来与一种类型以上的I/O装置330a-330n进行通信。在一些实施方式中,本地系统总线350可为如下类型总线中的任意一种:VESAVL总线、ISA总线、EISA总线、微通道体系结构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线、或者NuBus。计算机器300的其它实施方式包括I/O装置330a-330n,其包括与中央处理器321通信的视频显示器224。又一个版本的计算机器300包括通过如下任意一种连接与I/O装置330a-330n相连接的处理器321:超传输、快速1/0、或者无限带宽(InfiniBand)。计算装置300的另一些实施方式包括处理器321,该处理器321使用局部互联总线与一个I/O装置330a相通信,以及使用直接连接与第二I/O装置330b相通信。[0052]在一些实施方式中,计算装置300包括主存储器单元322和高速缓冲存储器340。高速缓冲存储器340可为任意存储器类型,在一些实施方式中,可为如下类型存储器中的任意一种:SRAM、BSRAM、或者EDRAM。其它实施方式包括高速缓冲存储器340和主存储器单元322,主存储器单元322可为如下类型存储器中的任意一种:静态随机存取存储器(SRAM)、突发SRAM或者同步突发SRAM(BSRAM)、动态随机存取存储器(DRAM)、快速页面模式DRAM(FPMDRAM)、增强型DRAM(EDRAM)、扩展数据输出DRAM(EDODRAM)、扩展数据输出DRAM(EDODRAM)、突发式扩展数据输出DRAM(BEDODRAM)、增强型DRAM(EDRAM)、同步DRAM(SDRAM)、JEDECSRAM、PC100SDRAM、双倍数据速率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链接DRAM(SLDRAM)、直接总线式DRAM(DRDRAM)、铁电性RAM(FRAM)、或者其它任意类型的存储器。另一些实施方式包括中央处理器321,其能够经由以下装置访问主存储器322:系统总线350、存储器端口303、或者允许处理器321访问存储器322的端口的其它任意连接、总线或者端口。[0053]计算装置200/300的一个实施方式为如下的任意一种安装装置216提供支持:⑶一ROM驱动器、⑶一R/RW驱动器、DVD-ROM驱动器、各种格式的磁带驱动器、USB装置、可引导介质,可引导⑶,用于诸如KNOPPIX?的GNU/Linux发行版的可引导⑶,硬盘驱动器,或者适于安装应用程序或软件的其它任意装置。在一些实施方式中,应用程序可包括客户端代理220,或者客户端代理220的任意部分。计算装置200/300可进一步包括存储装置228,该存储装置228可为一个或多个硬盘驱动器,或者为一个或多个的独立磁盘冗余阵列;其中存储装置配置成存储操作系统、软件、应用程序或者至少一部分的客户端代理220。计算装置200、300的又一个实施方式包括用作存储装置228的安装装置216。[0054]计算装置200/300还可包括通过各种连接来接口连接局域网(LAN)、广域网(WAN)或因特网的网络接口218,各种连接包括但并不限制于,标准电话线、LAN或者WAN链接(例如,802.11、Tl、T3、56kb、X.25、SNA、DECENT)、宽带连接(例如,ISDN、帧中继、ATM、千兆以太网、同步光纤以太网络)、无线连接、或者上面所有或任意连接的一些组合。还能够利用各种通信协议(例如,TCP/IP、IPX、SPX、NetBIOS、以太网、ARCENT、SONET、SDH、光纤分布数据接口(FDDI)、RS232、RS485、IEEE802.11、IEEE802.11a、IEEE802.11b、IEEE802.11g、CDMA、GSM、WiMax以及直接异步连接)建立连接。一个版本的计算装置200、300包括网络接口218,其能够借助于任意类型和/或形式的网关或通道协议来与另外的计算装置200'、300'通信,这些网关或通道协议例如安全套接层(SSL)或传输层安全(TLS)协议,或者由CitrixSystem公司制作的Citrix网关协议。网络接口218的版本可包括以下任意一种:内置网络适配器、网络接口卡、PCMCIA网卡、插件总线网络适配器、无线网络适配器、USB网络适配器、调制解调器、或者适于将计算装置200、300接口连接至能够通信且执行本文所描述方法和系统的网络的其它任意装置。[0055]计算装置200、300的实施方式包括如下I/O装置230a-230n中的任意一个:键盘226、指向装置227、鼠标、触控板、光学笔、跟踪球、扩音器、绘图板、视频显示器、扬声器、喷墨打印机、激光打印机、以及染色升华打印机、或者能够执行本文所描述方法和系统的其它任意输入/输出装置。在一些实施方式中,I/O控制器223可连接多个I/O装置230a-230n以控制一个或多个I/O装置。I/O装置230a-230n的一些实施方式可配置成提供储存器或安装介质216,而其它实施方式可提供通用串行总线(USB)接口来接入USB存储装置,USB存储装置例如由TwintechIndustry公司生产的USB闪存驱动器线装置。又一些实施方式包括I/O装置230,其可为在系统总线250和外部通信总线之间的桥接器,例如:USB总线、苹果桌面(AppleDesktop)总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire800总线、以太网总线、AppleTalk总线、千兆以太网总线、异步传输模式总线、HIPPI总线、SuperHIPPI总线、SerialPlus总线、SCI/LAMP总线、FibreChannel总线、或者串行连接的小型计算机系统接口总线。[0056]在一些实施方式中,计算机器200、300能够连接多个显示装置224a-224n,在另一些实施方式中,计算装置100能够连接单个显示装置224,而在又一些实施方式中,计算装置200、300连接为相同类型或形式的显示器的显示装置224a-224n,或者连接为不同类型或形式的显示器的显示装置。利用如下能够支持和启用显示装置224a-224n的实施方式:一个或多个I/O装置230a-230n、I/O控制器223、I/O装置230a-230n和I/O控制器223的组合、能够支持显示装置224a-224n的硬件和软件的任意组合、任意类型或形式的视频适配器、视频卡、驱动器、和/或接口连接、通信和连接或者以其它方式使用显示装置224a-224n的库。在一些实施方式中,计算装置200、300可配置成使用一个或多个显示装置224A-224N,这些配置包括:具有多个连接器来接入多个显示装置224A-224N;具有多个视频适配器,每个视频适配器连接显示装置224A-224N中的一个或多个;具有配置成支持多个显示器224A-224N的操作系统;使用包含于计算装置200内的电路和软件来连接并且使用多个显示装置224A-224N;以及执行在主计算装置200和多个次级计算装置上的软件以启动主计算装置200去使用次级计算装置的显示器作为用于主计算装置200的显示装置224A-224N。计算装置200的又一些实施方式可包括多个显示装置224A-224N,这些显示装置224A-224N由多个次级计算装置提供并且通过网络连接至主计算装置200。[0057]在一些实施方式中,计算机器200能够执行任意操作系统,而在其它实施方式中,计算机器200能够执行如下操作系统中的任意一种:各版本的MICROSOFTWINDOWS操作系统(例如WINDOWS3.x、WIND0WS95、WIND0WS98、WIND0WS2000、WIND0WSNT3.51、WIND0WSNT4.0、WIND0WSCE、WINDOWSXP、以及WINDOWSVISTA)、不同发布版本的Unix和Linux操作系统、由苹果计算机(AppleComputer)制作的任意版本的MACOS、由国际商业机器公司(IBM)制作的OS/2、任意嵌入式操作系统、任意实时操作系统、任意开源操作系统、任意专有操作系统、用于移动计算装置的任意操作系统、或者任意其它操作系统。在又一个实施方式中,计算机器200能够执行多种操作系统。例如,计算机器200能够执行PARALLELS或者另一个虚拟化平台,该虚拟化平台能够执行或管理执行第一操作系统的虚拟机,而计算机器200执行不同于第一操作系统的第二操作系统。[0058]计算机器200能够具体实现为如下计算装置中的任意一种:计算工作站、桌面计算机、膝上或笔记本计算机、服务器、手持计算机、移动电话、便携式电信装置、媒体播放装置、游戏系统、移动计算装置、上网本、由苹果计算机生产的IPOD系列装置中的装置、由索尼(Sony)公司生产的PLAYSTATION系列装置中的任意一个、由任天堂(Nintendo)公司生产的Nintendo系列装置中的任意一个、由微软公司生产的XBOX系列装置中的任意一个、或者其它任意类型和/或形式的计算、电信或媒体装置,这些装置能够通信并且具有充足的处理器能力和存储器容量来执行本文所描述的方法和系统。在其它实施方式中,计算机器100可为移动装置,例如如下移动装置中的任意一种:支持JAVA的移动电话或者个人数字助理(PDA)(例如i55sr、i58sr、i85s、i88s、i90c、i95cl、或者imllOO,所有这些装置都由摩托罗拉(Motorola)公司生产)、由Kyocera生产的6035或7135、由三星电子(SamsungElectronics)有限公司生产的i300或i330、由Palm公司生产的TRE0180、270、600、650、680、700p、700w或者750智能电话、具有与装置相一致的不同处理器、操作系统和输入装置的任意计算装置、或者能够执行本文所描述方法和系统的任意其它移动计算装置。在又一个实施方式中,计算装置200可为如下移动计算装置中的任意一个:黑莓(Blackberry)系列中的任意一个、或者由ResearchInMotion有限公司生产的其它手持装置、由苹果计算机生产的IPhone、PalmPre、PocketPC、PocketPCPhone、或者任意其它手持移动装置。[0059]在一些实施方式中,计算装置200可具有与装置相一致的不同的处理器、操作系统、以及输入装置。例如,在一个实施方式中,计算装置200是由Palm公司生产的TRE0180、270、600、650、680、700p、700w或者750智能电话。在这些实施方式中的一些实施方式中,TER0智能电话在PalmOS操作系统的控制下运行,并且包括手写笔输入装置和五路导航装置。[0060]在其它实施方式中,计算装置200是移动装置,例如支持JAVA的移动电话或者个人数字助理(PDA)(例如i55sr、i58sr、i85s、i88s、i90c、i95cl、或者imllOO,所有装置都由伊利诺斯州的绍姆堡(Schaumburg)的摩托罗拉(Motorola)公司生产)、由日本京都的Kyocera生产的6035或7135、由韩国首尔的三星电子(SamsungElectronics)有限公司生产的i300或i330。在一些实施方式中,计算装置200是由芬兰的诺基亚生产的移动装置,或者由瑞典隆德(Lund)的索尼爱立信移动通信公司生产的移动装置。[0061]在又一些实施方式中,计算装置200是黑莓手持或智能电话,例如由ResearchInMotion有限公司生产的装置,包括黑莓7100系列、8700系列、7700系列、7200系列、黑莓7520或黑莓珍珠(BlackberryPearl)8100。在又一些实施方式中,计算装置200是智能电话、PocketPC、PocketPCPhone或者支持MicrosoftWindowsMobileSoftware的其它手持移动装置。而且,计算装置200可为任意的工作站、桌面计算机、膝上或笔记本计算机、月艮务器、手持计算机、移动电话、任意其它计算机、或者其它形式的计算或电信装置,这些装置能够通信并且具有充足的处理器能力和存储器容量来执行本文所描述方法和系统。[0062]在一些实施方式中,计算装置200是数字音频播放器。在这些实施方式之一中,计算装置200是数字音频播放器,例如由加利福尼亚州库比蒂诺(Cupertino)的苹果计算机生产的AppleIPOD、IPODTouch、IPODNANO和IPODSHUFFLE系列装置。在这些实施方式中的另一个实施方式中,数字音频播放器可用作便携式媒体播放器和大容量存储装置。在其它实施方式中,计算装置200是数字音频播放器,例如由RidgefieldPark,NJ的三星电子美国公司生产的DigitalAudioPlayerSelectMP3播放器、或者由SchaumburgIL.的摩托罗拉公司生产的摩托罗拉m500或m25数字音频播放器。在又一些实施方式中,计算装置200是便携式媒体播放器,例如由创新技术有限公司(CreativeTechnologyLtd.)生产的ZenVisionW、ZenVision系列、ZenPortableMediaCenter装置,或者DigitalMP3系列的MP3播放器。在又一些实施方式中,计算装置200是便携式媒体播放器或数字音频播放器,其支持的文件格式包括但并不限制于,MP3、WAV、M4A/AAC、WMAProtectedAAC、AIFF、可听有声读物(Audibleaudiobook)、苹果无损音频文件格式(AppleLosslessaudiofileformats)及?mov、?m4v和?mp4MPEG-4(H.264/MPEG-4AVC)音频文件格式。[0063]在一些实施方式中,计算装置200包括多个装置的组合,例如组合数字音频播放器或便携式媒体播放器的移动电话。在这些实施方式之一中,计算装置200是组合数字音频播放器和移动电话的摩托罗拉RAZR或者摩托罗拉R0KR系列。在这些实施方式中的另一个实施方式中,计算装置200是由加利福尼亚州库比蒂诺(Cupertino)的苹果计算机生产的IPhone智能电话。虽然针对可使用的硬件和/或软件的特定例子来描述图1一3,但是这些例子绝不是限制,而仅仅是说明可作为技术进展使用的类型的资源。[0064]图1一3表示说明性桌面虚拟化系统的高层体系结构。如所示,桌面虚拟化系统可为单个服务器或多个服务器系统,或者云系统,包括至少一个虚拟化服务器106,该虚拟化服务器106配置成向一个或多个客户端访问装置140提供虚拟桌面和/或虚拟应用程序。如本文所使用,桌面指图形化环境或空间,在其中可托管和/或执行一个或多个应用程序。桌面可包括图形壳,其提供用于操作系统实例的用户界面,在该操作系统中可集成本地和/或远程应用程序。如本文所使用的,应用程序是加载操作系统实例(还可选地为桌面)之后执行的程序。每个操作系统实例可为物理的(例如每个装置一个操作系统)或者虚拟的(例如,在单个装置上运行的OS的许多实例)。每个应用程序可在本地装置执行,或者在远程放置的装置(例如远程)上执行。[0065]图4图解说明了计算装置401的一个实施方式,其配置成虚拟化环境中的虚拟化服务器,例如,单个服务器、多个服务器或者云计算环境。在图1中图解说明的虚拟化服务器401能够部署为在图1中图解说明的服务器106或者在图2和图3中图解说明的计算装置200和300的一个或多个实施方式或通过所述一个或多个实施方式实现。包含在虚拟化服务器401内的是硬件层,该硬件层可包括一个或多个物理磁盘404、一个或多个物理装置406、一个或多个物理处理器408和物理存储器416。在一些实施方式中,固件412能够存储于物理存储器416的存储元件中,并且一个或多个物理处理器408能够执行固件412。虚拟化服务器401还可包括可存储在物理存储器416的存储元件内的操作系统414,并且一个或多个物理处理器408可执行该操作系统414。而且,超级管理器402可存储于物理存储器416的存储元件中,并且一个或多个物理处理器408能够执行超级管理器402。在一个或多个物理处理器408上执行的可以是一个或多个虚拟机432A-C(通常432)。每个虚拟机432可具有虚拟磁盘426A-C以及虚拟处理器428A-C。在一些实施方式中,第一虚拟机432A可在虚拟处理器428A上执行包括工具堆栈424的控制程序420。在其它实施方式中,一个或多个虚拟机432B-C能够在虚拟处理器428B-C上执行访客操作系统430A-B。[0066]进一步参见图4,更为详细地,虚拟化服务器401可包括具有一件或多件硬件的硬件层410,这些硬件与虚拟化服务器401通信。在一些实施方式中,硬件层410可包括一个或多个物理磁盘404、一个或多个物理装置406、一个或多个物理处理器408和一个或多个存储器416。例如,物理组件404、406、408和416可包括上面在图1一3中所描述的任意组件。例如,物理磁盘404可包括永久性存储装置、暂时存储装置、磁盘驱动器(例如光学、软盘或磁带)、硬盘、外部硬盘、闪存、联网储存器、存储区域网、或者虚拟化服务器401能够访问的任意其它存储库。物理装置406可包括在虚拟化服务器401中含有的任意装置,和/或包含在虚拟化服务器401中的装置和与虚拟化服务器401相通信的外部装置的任意组合。例如,物理装置406可为网络接口卡、视频卡、键盘、鼠标、输入装置、监控器、显示装置、扬声器、光学驱动器、存储装置、通用串行总线连接、打印机、扫描仪、网络元件(例如,路由器、防火墙、网络地址转换器、负载平衡器、虚拟专用网(VPN)网关、动态主机配置协议(DHCP)路由器等等)、或者与虚拟化服务器401相连接或相通信的任意装置。在硬件层410中的物理存储器416可包括任何类型的存储器。物理存储器416可存储数据,在一些实施方式中,可存储一个或多个程序或者可执行指令集。图4图解说明了一个实施方式,其中固件412存储在虚拟化服务器401的物理存储器416内。虚拟化服务器401的一个或多个处理器408能够执行存储在物理存储器416内的程序或可执行指令。[0067]虚拟化服务器401还可包括超级管理器402。在一些实施方式中,超级管理器402可为由在虚拟化服务器401上的处理器408执行以生成和管理任意数量的虚拟机432的程序。超级管理器402可被称为虚拟机监控器或平台虚拟化软件。在一些实施方式中,超级管理器402可为可执行指令和监控在计算机器上执行的虚拟机的硬件的任意组合。超级管理器402可为2型(Type2)超级管理器,或者在操作系统414内执行的超级管理器,该操作系统414在虚拟化服务器401上执行。在一些实施方式中,2型超级管理器在操作系统414的环境内执行,虚拟机以高于超级管理器的等级执行。在许多实施方式中,2型超级管理器在用户操作系统的环境中执行,使得2型超级管理器与用户操作系统交互。在其它实施方式中,在虚拟环境中的一个或多个虚拟化服务器401可包括1型(Type1)超级管理器(未显示)。通过直接访问在硬件层410内的硬件和资源,1型超级管理器可在虚拟化服务器401上执行。也就是说,当2型超级管理器402通过主机操作系统414来访问系统资源时,1型超级管理器可直接访问所有系统资源,而无需主机操作系统414。1型超级管理器可直接在虚拟化服务器401的一个或多个物理处理器408上执行,并且可包括存储在物理存储器416内的程序数据。[0068]在一些实施方式中,超级管理器402能够以任意方式向在虚拟机432上执行的操作系统430或控制程序420提供虚拟资源,这些方式模拟具有到系统资源的直接访问通道的操作系统430或控制程序420。系统资源可包括:物理装置406、物理磁盘、物理处理器、物理存储器416和包含在虚拟化服务器401的硬件层410内的任意其它组件。在这些实施方式中,超级管理器402可用于仿真虚拟硬件,对物理硬件分区,虚拟化物理硬件或者执行提供到计算环境的访问通道的虚拟机。在又一些实施方式中,超级管理器402控制用于在虚拟化服务器401上执行的虚拟机432的处理器调度和存储器分区。超级管理器402可包括由加利福尼亚州的帕洛阿尔托(PaloAlto)的VMWare公司制作的那些超级管理器、XEN超级管理器、其的开发受到开源Xen.org社区的监管的开源产品、由微软提供的HyperV、VirtualServer或虚拟PC超级管理器、或者其它超级管理器。在一些实施方式中,虚拟化服务器401执行超级管理器402,该超级管理器402生成虚拟机平台,访客操作系统可在该虚拟机平台上执行。在这些实施方式中,虚拟化服务器401可被称作主机服务器。这种虚拟化服务器的例子是由佛罗里达州的劳德代尔堡(FortLauderdale)的CitrixSystem公司提供的XENSERVER。[0069]超级管理器402可生成一个或多个虚拟机432B-C(通常432),访客操作系统430在其中执行。在一些实施方式中,超级管理器402可加载虚拟机图像以生成虚拟机432。在其它的实施方式中,超级管理器402可执行在虚拟机432内的访客操作系统430。在又一些实施方式中,虚拟机432可执行访客操作系统430。[0070]除了生成虚拟机432之外,超级管理器402可控制至少一个虚拟机432的执行。在其它实施方式中,超级管理器402可向至少一个虚拟机432呈现由虚拟化服务器401提供的至少一个硬件资源(例如,在硬件层410内可用的任意硬件资源)的抽象。在其它实施方式中,超级管理器402可控制虚拟机432访问在虚拟化服务器401内可用的物理处理器408的方式。控制对物理处理器408的访问可包括确定虚拟机432是否应当具有到处理器408的访问通道,以及如何向虚拟机432呈现物理处理器能力。[0071]如图4的例子所示,虚拟化服务器401可托管或执行一个或多个虚拟机432。虚拟机432是可执行指令集,当处理器408执行该可执行指令集时,模仿物理计算机的操作,使得虚拟机432能够就像处理物理计算装置那样执行程序和处理。虽然图4图解说明了虚拟化服务器401托管3个虚拟机432的实施方式,但是在其它实施方式中,虚拟化服务器401能够托管任意数量的虚拟机432。在一些实施方式中,超级管理器402向每个虚拟机432提供所述虚拟机432可用的物理硬件、存储器、处理器和其它系统资源的唯一虚拟视图。在一些实施方式中,唯一虚拟视图能够基于如下任意一个:虚拟机许可、一个或多个虚拟机标识符的策略引擎应用程序、访问虚拟机的用户、在虚拟机上执行的应用程序、虚拟机访问的网络、或者其它任意类似标准。例如,超级管理器402可生成一个或多个不安全虚拟机432和一个或多个安全虚拟机432。不安全虚拟机432可被阻止访问可许可安全虚拟机432访问的资源、硬件、存储器位置和程序。在其它实施方式中,超级管理器402可向每个虚拟机432提供虚拟机432可用的物理硬件、存储器、处理器和其它系统资源的基本类似的虚拟视图。[0072]每个虚拟机432可包括虚拟磁盘426A-C(通常426)和虚拟处理器428A-C(通常428)。在一些实施方式中,虚拟磁盘426是虚拟化服务器401的一个或多个物理磁盘404的虚拟视图,或者是虚拟化服务器401的一个或多个物理磁盘404的一部分。超级管理器402能够生成、提供和管理物理磁盘404的虚拟视图。在一些实施方式中,超级管理器402向每个虚拟机432提供物理磁盘404的唯一视图。因此,在一些实施方式中,当与其它虚拟磁盘426相比较时,包含在每个虚拟机432内的虚拟磁盘426可为唯一的。[0073]虚拟处理器428可为虚拟化服务器401的一个或多个物理处理器408的虚拟视图。在一些实施方式中,超级管理器402能够生成、提供和管理物理处理器408的虚拟视图。在一些实施方式中,虚拟处理器428基本上具有至少一个物理处理器408的全部相同特性。在其它实施方式中,虚拟处理器408提供物理处理器408的修改视图,使得虚拟处理器428的至少一些特性不同于相应物理处理器408的特性。[0074]图5图解说明了基于云的虚拟化系统500的例子。如图5所见,系统500可为诸如服务器401的虚拟化服务器。系统500包括在超级管理器521(例如超级管理器402和/或操作系统414,取决于虚拟化系统是1型还是2型超级管理器系统)上执行的受信服务器域501(例如虚拟机432A)和访客域511(例如虚拟机432B)。每个受信域501和访客域511可包括相应的核502、512和文件系统503、513。虚拟化系统500还可包括其它访客域。然而,为了容易理解和为了说明的目的,所示只有一个访客域。受信域501还被称作域0(Dom0),并且可进行虚拟化系统500的管理和支配功能以便影响虚拟化系统500执行一个或多个访客域的能力。[0075]受信服务器域501可包括关键值存储库(也被称为关键值数据库)507,其由关键值管理器506支配。关键值存储库507可为由佛罗里达州的劳德代尔堡(FortLauderdale)的CitrixSystem公司提供的XenStore?的实施。XenStore?是在这些域之间共享的信息存储空间,并且可用于分享配置、元数据和状态信息。每个访客域可获得其自身在关键值存储库中的路径。当在关键值存储库中的数值变化时,通知相应的驱动器516。关键值存储库可为共享分层的关键值存储库,或者可为任意其它类型的关键值存储库或注册表。[0076]受信服务器域501还可包括在文件系统503内的文件504,该文件系统503可通过守护进程505与访客域511共享。守护进程505可通过第一共享存储器531与访客域511来回传输数据,访客域511的代理驱动器515也可访问第一共享存储器531,如下面进一步描述的。在更新过程中(例如通过网络管理员的WindowsUpdate),在安装过程中,或者通过其它任意已知或已开发的技术,可安装代理驱动器515。访客域511还可包括关键值数据库监控器516,其通过第二共享存储器532来监控关键值数据库的更新。监控器516可为与代理驱动器515相分离的驱动器。当监控器516检测到指示一个或多个文件可用的关键值数据库变化时,监控器516可更新代理驱动器515的数据库518。数据库518存储受信域501可供使用的文件的本地记录,因此代理驱动器515能够确定是产生对本地文件系统513还是受信域501的文件系统503的文件系统调用。共享存储器531、532可为物理存储器的相同部分或者不同部分。[0077]代理驱动器515维持数据库518,并且作出拦截由在访客域511内执行的任意应用程序或程序做出对访客域的文件系统513进行访问的调用。数据库518存储从受信域501而不是从访客域511得到的有关文件的元数据信息。当期望文件位于文件系统513内时,可正常地发送文件系统调用至文件系统513。然而,当期望文件确实是由受信域501分享的文件时,代理驱动器515通过分享存储器531代理对受信域501的请求,如下面进一步描述。通过关键值数据库507和共享存储器532,可接收在受信域501中可用的有关文件的元数据,而通过共享存储器531,可接收到文件内容,如下面进一步描述。[0078]共享存储器531可为分配至访客域511或者由访客域511分配的存储器的一页或多页,访客域511可供一个或多个其它域使用,例如受信域501。访客域511授权受信域501访问共享存储器531,例如使用授权表,通过指示在关键值数据库507中哪些页可供受信域501使用,以及/或者通过指导超级管理器521授权受信域501读/写访问存储器的该页或这些页的许可。由此,当访客域511与另一个域分享存储器的一页或多页时,超级管理器521(或系统500)准许由其它域访问这些页。[0079]存储器531、532可作为圆环或者缓冲区共享。每个共享者(访客域511)和共享源(受信域501)可保持指向其在共享存储器中所对应的最后读/写位置的指针,其中在消耗完这页的最终存储器位置之后,该指针移回该页中的第一存储器位置。根据一个方面,当访客域共享存储器的一页或多页时,访客域还可分配、指派和/或存储在共享存储器中的一个或多个指针,以便每个共享者(访客域)和共享源(受信域)使用以保持在共享存储器内的当前或最终读取位置。由此,共享者和共享源中的每个都能够读取其它域的指针,并且确保一个域没有重写数据,也没有被其它域读取(例如,没有"重叠"其它域)。在另一个可能的实施方式中,在关键值数据库507中可更新指针位置,使得一个域从未重写数据,该数据没有被其它域所消耗。超级调用可能有必要用于访问期望信息或者请求特定资源。超级调用是从域到超级管理器的软件陷阱,正如系统调用是从应用程序到核或者OS的软件陷阱。域可使用超级调用来请求特权操作,例如更新页表。类似于系统调用,超级调用是同步的,但是从超级管理器到域的返回路径可使用事件通道。事件通道是异步通知队列,以及同类事件的通知,该事件中断在本机硬件上的通知。例如,当有新数据写入共享存储器时,每个域可使用事件通道来通知其它域以便其它域检索。[0080]现在将进一步根据图6和图7,描述执行受信文件间接操作的方法。受信文件间接操作通常是将一个或多个文件从受信域安全地注入至访客域的文件系统的过程。例如,受信文件间接操作可用于允许一个域访问另一个受信域的文件系统中的文件,而不会侵犯受信域的安全性。例如,文件间接操作有助于应用补丁和注入其它文件至访客域,而不是要求安装在访客域上的综合性工具。由此,可使用受信文件间接操作,而不是安装ISO映像或者执行补丁和更新的其它实用程序。[0081]图6图解说明了用于更新数据库的方法,该数据库存储共享文件信息并通知其它域关于共享文件信息。首先,在步骤601中,受信域501接收在一个或多个目录中的一个或多个文件504,这些目录将共享于访客域511。这些文件可通过系统管理器,通过自动化的更新例行程序(例如,类似于Windows?Update)或者通过其它期望装置放置于文件系统503中。在步骤603中,关键值管理器506更新关键值数据库507以反映文件将与其共享的一个或多个域。关键值管理器506还可更新关键值存储器507的有关可用文件的元数据,例如文件名称、扩展名、大小、修改日期、生成日期等等。在步骤605中,驻留于访客域511中的关键值监控器516监控关键值存储库的变化,这些变化是针对访客域511的。当检测到变化时,在步骤607中,关键值监控器更新代理驱动器515内的文件系统DB518以反映一个或多个文件(和/或目录)的可利用性。于是,方法结束,当额外的共享文件存储于受信域501时,可重复该方法。[0082]图7图解说明了拦截文件系统调用以使访客域511访问存储于受信域501上的共享文件的方法。在步骤709中,代理驱动器515利用在访客域511内执行的应用程序或程序来拦截文件系统调用。文件系统调用可为读、写、目录列表、文件打开或其它任意文件系统调用。在步骤711中,代理驱动器515查询数据库518以确定所请求的数据是否本地存储于文件系统513内,或者外部存储于与受信域501相关联的文件系统503中。在步骤713中,当所请求的数据本地存储于文件系统513内时,代理驱动器515向文件系统513发送文件系统命令以便执行,而结果在步骤719中返回代理驱动器515。如果所请求的数据存储在受信域501的文件系统503中,那么在步骤715中,代理驱动器515通过将文件系统调用放置在共享存储器531来向受信域501发出文件系统调用。[0083]在接收文件系统调用之后,在步骤717中,受信域501上的守护进程505执行文件系统503上的文件系统调用。例如,当文件系统调用是写命令时,守护进程505可写入文件504。当文件系统调用是读命令时,守护进程505可从文件504取数据。在步骤719中,通过将结果放置于共享存储器531中,守护进程505将文件系统调用的结果返回至代理驱动器515。在步骤719中,代理驱动器515检索和/或接收文件系统调用结果。当文件系统调用是写命令时,结果可包括成功确认。当文件系统调用是读命令时,结果可包括所有或部分的读取数据,例如通过共享存储器531流出作为由守护进程505检索且由代理驱动器515接收的数据。在守护进程505或文件系统513完成文件系统调用之后,在步骤721中,代理驱动器515响应在步骤709所接收的原始文件系统调用的来源实体。[0084]上面方法的各个步骤可被组合、分解或者重新排列以得到相同的结果。使用类似于上面所描述的方法,受信域能够注入一个或多个文件(和/或目录)至访客域,使得数据好像在访客域的本地文件系统内,然而实际上数据驻留在共享数据的另一个域内。例如,当访客域511使得请求信息的文件系统调用呈现在文件目录上时,例如在WindowsExplorer内,代理驱动器515可结合从本地文件系统513和受信域文件系统503可得到的信息来枚举和呈现看上去统一的单个文件结构或者可选择地枚举和呈现来自受信域501的文件,以出现在与位于访客域文件系统513内的那些文件所不同的目录或者位置。当用户请求来自对应受信域501的目录或位置处的文件时,利用例如在上面关于图7所描述的方法,代理驱动器515确实代理对受信域501的请求。由此,数据能够"出现"在访客域文件系统内,当数据实际上驻留在不同的域中时,甚至当访客域没有网络连接并且也没有模拟任何虚拟硬件时(例如安装虚拟CD-ROM、DVD或者其它可安装的文件储存器)亦是如此。[0085]使用稍微不同的技术可做各种修改来实现受信文件间接操作。例如,除了共享存储器,可将所有数据经过关键值存储库传递。然而,关键值存储库传输比使用直接访问共享存储器更慢。在另一个可选择方案中,单个共享存储器可用于所有的传输,而不是独立的共享存储器531、532。在一些实施方式中,本文所描述的技术可用于枚举访客域中的磁盘。然而,磁盘枚举可在操作系统的控制下,并且能够引入不必要的复杂性,源于不能使得代理驱动器515来阻止请求。在又一个其它实施方式中,文件传输可出现在共享网络卷上。然而,那时必须考虑网络安全性问题,且根据用户安全设置可阻止访客域网络访问。[0086]依据在公开内容中的说明性实施方式,描述了公开内容的各个方面。根据回顾此公开内容,本领域的普通技术人员将想到在所附权利要求的范围和精神内的许多其它实施方式、修改和变化。例如,本领域的技术人员将了解到,在说明性图中图解说明的各个步骤的执行顺序可不同于所叙述顺序,且根据公开内容的各方面,所示出的一个或多个步骤为可选的。尤其根据前述的教导,本领域的技术人员可进行修改。例如,前面提及的实施方式的每个元件可单独使用,或者以与其它实施方式的元件的组合或者子组合的形式进行使用。还应当了解和理解,可进行修改而不偏离随后的权利要求书的主旨和范围。【权利要求】1.一种传输数据的方法,包括:接收指示,所述指示为数据更新可供超级管理器上执行的访客域使用,所述数据更新包括在所述超级管理器上执行的受信域的文件系统中的一个或多个数据文件;以及为通过所述访客域的文件系统将可访问的所述一个或多个数据文件中的每个数据文件起别名。2.如权利要求1所述的方法,其中起别名包括:代理驱动器拦截在所述访客域内的文件系统调用并且确定是在所述访客域的文件系统内执行每个文件系统调用还是将所述文件系统调用传递至所述受信域。3.如权利要求2所述的方法,其中,利用分配给所述访客域的共享存储器的一个页面或多个页面,所述代理驱动器将每个文件系统调用传递至所述受信域。4.如权利要求3所述的方法,还包括:当所述代理驱动器拦截到对由所述受信域共享的第一数据文件的第一文件系统调用时,通过将相应的第一请求写入所述共享存储器而向所述受信域发送所述第一请求;所述受信域针对所述受信域的文件系统中的有关数据文件执行所述第一请求;所述受信域在所述共享存储器中写入对所述第一请求的应答;以及所述代理驱动器从所述共享存储器中读取所述应答。5.如权利要求1所述的方法,基于关键值存储库来接收所述指示,所述关键值存储库存储由所述受信域共享的每个数据文件的文件元数据,所述元数据包括文件名称、文件类型、文件位置、文件大小和文件日期。6.如权利要求1所述的方法,其中所述一个或多个数据文件包括在数据目录中的多个文件。7.如权利要求5所述的方法,其还包括监控在所述受信域和所述访客域之间的共享存储器上的所述关键值存储库。8.-个或多个计算机可读存储介质,其包括计算机可执行指令,当执行所述计算机可执行指令时,通过以下操作在超级管理器上的执行的受信域和访客域之间进行数据传输:所述访客域接收共享数据可供使用的指示;在所述访客域内执行的代理驱动器拦截与所述共享数据有关的文件系统调用;所述驱动器向所述受信域发送与所述共享数据有关的文件系统调用;所述受信域执行与所述共享数据有关的文件系统调用;以及根据与所述共享数据有关的文件系统调用的执行,所述受信域向所述访客域返回信息。9.如权利要求8所述的计算机可读介质,其中所述指示基于由所述受信域管理的关键值存储库,所述关键值存储库存储与所述共享数据有关的文件元数据。10.如权利要求8所述的计算机可读介质,其中所述访客域分配一部分存储器作为共享存储器,所述共享存储器可由所述受信域和所述访客域访问,并且其中所述代理驱动器通过所述共享存储器将所述文件系统调用发送至所述受信域,且所述受信域通过所述共享存储器向所述访客域返回所述信息。11.如权利要求10所述的计算机可读介质,其中,当所述文件系统调用包括写命令时,所述访客域通过所述共享存储器将待写入的数据发送至所述受信域,且所述受信域通过所述共享存储器向所述访客域返回完成标识。12.如权利要求10所述的计算机可读介质,其中,当所述文件系统调用包括读命令时,所述访客域通过所述共享存储器将所述读命令发送至所述受信域,且所述受信域通过所述共享存储器向所述访客域返回所请求的读取数据。13.如权利要求8所述的计算机可读介质,其中所述共享数据包括文件。14.如权利要求8所述的计算机可读介质,其中所述共享数据包括目录。15.如权利要求9所述的计算机可读介质,其中所述关键值存储库存储在与所述受信域有关的存储器中,并且其中所述访客域借助于共享存储器通过查询在所述受信域上运行的关键值存储库管理服务来监控所述关键值存储库。16.-种服务器装置,包括:处理器;以及存储器,其存储计算机可读指令,当所述处理器执行所述计算机可读指令时,配置所述装置以包括:超级管理器,其管理多个虚拟机VM实例的执行,所述管理包括向每个实例分配存储器的不同部分;第一VM实例,其在所述超级管理器上执行,所述第一VM实例是管理所述服务器装置的受信服务器域,所述第一VM实例分配有存储器的第一区;第二VM实例,其在所述超级管理器上执行,所述第二VM实例是与所述服务器装置的客户用户有关的非受信域,所述第二VM实例分配有存储器的第二区;共享数据,其存储在所述存储器的第一区中,所述存储器的第一区分配给所述第一VM实例,并且指定为可被所述第二VM实例访问;以及代理驱动器,其在所述第二VM实例中执行,所述代理驱动器配置成:拦截在所述第二VM实例内的文件系统调用;以及当经拦截的文件系统调用与所述共享数据有关时,将所述文件系统调用代理到所述第一VM实例以便执行。17.如权利要求16所述的服务器装置,其中所述第二VM实例将所述存储器的第二区的一部分指定为与所述第一VM实例共享的共享存储器,并且其中通过将所述文件系统调用写到所述共享存储器的一部分,所述第二VM实例将所述文件系统调用代理到所述第一VM实例。18.如权利要求16所述的服务器装置,其中所述共享数据包括多个数据文件。19.如权利要求16所述的服务器装置,其中所述共享数据包括文件目录。20.如权利要求16所述的服务器装置,还包括存储在所述存储器的第一区中的关键值存储库,所述关键值存储库存储与所述共享数据有关的文件元数据,其中所述文件元数据可由所述第二VM实例访问。【文档编号】G06F9/445GK104487943SQ201380033056【公开日】2015年4月1日申请日期:2013年4月23日优先权日:2012年4月23日【发明者】保罗·达兰特,本·查莫斯申请人:思杰系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1