使用虚拟机与客户端计算设备共享移动计算设备的互联网能力的制作方法

文档序号:6484591阅读:275来源:国知局
使用虚拟机与客户端计算设备共享移动计算设备的互联网能力的制作方法
【专利摘要】示例实施例涉及一种虚拟机映像的使用以便共享移动计算设备可得到的互联网访问。在示例实施例中,在移动计算设备的存储设备上维持的虚拟机映像在客户端计算设备中被接收。然后可以在所述客户端计算设备上执行在所述虚拟机映像中包含的客户操作系统(OS)。然后可以通过所述客户端计算设备与所述移动计算设备之间的接口在所述客户OS与所述移动计算设备之间交换网络数据。
【专利说明】使用虚拟机与客户端计算设备共享移动计算设备的互联网
能力
【背景技术】
[0001]随着诸如手机、无线电子邮件设备以及平板计算机之类的移动设备的快速发展,用户现在能够访问处于任何物理位置中的具有显著计算能力和存储能力的设备。此外,考虑到蜂窝和其他无线网络的几乎全球存在,用户还能够使用这些移动设备来容易地从几乎任何物理位置访问互联网。
【专利附图】

【附图说明】
[0002]以下具体描述参考图,其中:
图1是用于共享移动计算设备可得到的互联网访问的示例客户端计算设备的框图;
图2A是执行类型I管理程序并且共享耦合移动计算设备可得到的互联网访问的示例客户端计算设备的框图;
图2B是执行类型2管理程序并且共享耦合移动计算设备可得到的互联网访问的示例客户端计算设备的框图;
图3是用于与客户端计算设备共享移动计算设备可得到的互联网访问的示例方法的流程图;
图4A是用于初始化包括类型I管理程序的客户端计算设备以共享移动计算设备可得到的互联网访问的示例方法的流程图;
图4B是用于初始化包括类型2管理程序的客户端计算设备以共享移动计算设备可得到的互联网访问的示例方法的流程图;
图5A是用于使用虚拟网络驱动器传送在客户端计算设备的客户OS中生成的分组的示例方法的流程图;以及
图5B是用于使用虚拟网络驱动器接收意在供客户端计算设备的客户OS使用的分组的示例方法的流程图。
【具体实施方式】
[0003]如上面所详述的那样,许多移动计算设备提供了显著的存储和计算能力,同时还将网络访问提供给用户而无论他的或她的位置如何。尽管移动设备是非常方便的,但是大部分用户还访问除他们的移动设备以外的设备,诸如台式机或笔记本计算机。遗憾的是,台式机、笔记本以及其他类似的设备通常被预配置成运行特定操作系统(OS)和预定的一组应用。结果,用户通常被要求手动地定制他或她使用的每台台式机或笔记本。此外,在一些情形下,如果例如设备处于诸如图书馆或工作场所之类的公共位置中则用户也许不能定制计算设备。此外,取决于其位置,台式机、笔记本或其他类似的设备可能缺少对互联网的访问。
[0004]为了解决这些问题,本文中所公开的示例实施例允许用户利用移动设备的能力在客户端计算设备上创建互联网连接的、可定制的计算环境,即使当客户端设备缺少本地联网能力时。例如,在一些实施例中,用户可以将虚拟机映像(image)存储在移动计算设备中包含的存储介质上。用户然后可以使用给定接口将移动计算设备耦合到目标客户端计算设备,所述给定接口可能是有线的或无线的。作为响应,客户端计算可以通过该接口接收虚拟机并且加载在虚拟机映像中包含的客户操作系统。在启动客户OS之后,客户端计算设备然后可以通过接口与移动计算设备交换网络数据,从而利用在移动计算设备中包括的网络接口来获得互联网访问。
[0005]以这种方式,本文中所公开的示例实施例允许用户在他的或她的移动计算设备上传输定制的虚拟机映像。因为用户然后可以在实现本文中所描述的功能性的任何客户端上访问这个定制环境,所以用户能够避免带着笔记本计算机或其他笨重的设备旅行并且还能够最小化对定制他或她访问的每个客户端设备的需要。此外,示例实施例使得用户能够容易地使用移动设备获得客户端计算设备的安全网络访问,从而即使当客户端缺少本机联网能力也在客户端上提供网络访问。这样的实施例的附加的实施例和优点对于阅读并且理解了以下描述的本领域的技术人员而言将是显而易见的。
[0006]现参考图,图1是用于共享移动计算设备可得到的互联网访问的示例客户端计算设备100的框图。客户端计算设备100可以为例如笔记本计算机、台式计算机、一体化系统、工作站、平板计算设备或适于在下面所描述的功能性的执行的任何其他计算设备。在图1的实施方式中,客户端计算设备100包括处理器110、接口 115以及机器可读存储介质120。
[0007]处理器110可以为一个或多个中央处理单元(CPU)、微处理器和/或适于在机器可读存储介质120中存储的指令的检索和执行的其他硬件设备。处理器110可以取出、解码并且执行指令122、124、126、128以实现用于共享移动计算设备可得到的互联网访问的程序,如在下面所描述的那样。作为替代方案或者除检索和执行指令之外,处理器110可以包括一个或多个电子电路,所述一个或多个电子电路包括用于执行指令122、124、126、128中的一个或多个的功能性的许多电子部件。
[0008]接口 115可以包括用于与移动计算设备进行通信的许多电子部件。例如,接口 115可以为通用串行总线(USB)接口、IEEE 1394(火线)接口、外部串行高级技术附件(eSATA)接口或适于与移动计算设备进行通信的任何其他物理连接接口。可替换地,接口 115可以为无线接口,诸如无线局域网(WLAN)接口或近场通信(NFC)接口。在操作中,如在下面所详述的那样,接口 115可以被用来向和从移动计算设备的对应接口发送并且接收诸如管理程序、虚拟机映像以及网络数据之类的数据。
[0009]机器可读存储介质120可以为包含或者存储可执行指令的任何电子、磁、光学或其他物理存储设备。因此,机器可读存储介质120可以为例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、存储驱动器、光盘等等。如在下面详细地描述的那样,机器可读存储介质120可以编码有用于使用管理程序和客户操作系统共享移动计算设备可得到的互联网访问的可执行指令。
[0010]管理程序加载指令122可以被配置成在客户端计算设备100上加载管理程序(还被称为虚拟机监控器)。例如,管理程序可以为商业可用的管理程序,诸如Xen?管理程序、微软Hyper-V?、Parallels Desktop?、VMware vSphere?等等。可替换地,管理程序可以为定制开发的管理程序。
[0011]在一些实施例中,可以在客户端计算设备100上在本地维持管理程序,使得指令122可以从本地存储设备将管理程序加载到存储器中。在其他实施例中,客户端计算设备100可以替代地使用接口 115从移动计算设备的存储设备读取管理程序并且然后将该管理程序加载到存储器中。取决于实施方式,由指令122所加载的管理程序可以为类型I管理程序或类型2管理程序。使用每种类型的管理程序的示例实施方式被分别在下面与图2A和2B相结合地详述。
[0012]不管特定的实施方式,一旦在计算设备100上运行,管理程序就提供许可一个或多个客户操作系统在计算设备100上执行的环境。例如,管理程序可以提供许可每个客户OS请求被该管理程序虚拟化的虚拟硬件资源的操作平台。管理程序然后可以将硬件资源分配给每个请求客户OS。因此,如在下面所详述的那样,执行管理程序可以托管由接收指令124所接收并且由加载指令126所加载的客户OS。
[0013]虚拟机映像接收指令124可以通过接口 115接收在移动计算设备的存储设备上维持的虚拟机映像。所接收到的虚拟机映像可以为规定仿真计算设备的属性的一个文件或一组文件,所述属性诸如处理器架构、处理器的数目、存储空间的数量、存储器的数量、引导属性等。在一些实施例中,可以在一组一个或多个配置文件中规定附加的属性。
[0014]虚拟机映像还可以包括客户操作系统,并且在一些实施方式中,可以包括用于在OS内执行的一个或多个应用。在虚拟机映像中包括的客户OS可以为被安装在虚拟机中并且可由客户端计算设备100执行的任何操作系统。例如,在一些实施例中,所接收到的虚拟机映像可以包括全功能的(full-featured)、预配置的操作系统和能够在OS内被执行的许多应用。作为另一示例,虚拟机映像可以为虚拟应用映像(还被称为虚拟器具),使得该映像包括具有适于在精简(stripped-down) OS内执行的应用的精简OS。
[0015]在接收到虚拟机映像之后,客户OS加载指令126可以加载用于在客户端计算机设备100上执行的在虚拟机映像中包含的客户OS。例如,计算设备100可以将该客户OS加载到主存储器中并且开始OS在由指令122所加载的管理程序内的执行。管理程序然后可以与所加载的客户OS进行通信以当它们被客户OS请求时将资源分配给客户OS。
[0016]在所加载的客户OS的操作期间,客户OS或在该客户OS内执行的应用可以生成用于传输的网络数据,或者可替换地,从外部源接收网络数据。为了通过接口 115与移动计算设备交换这样的网络数据,虚拟网络驱动器初始化指令128可以初始化虚拟网络驱动器,所述虚拟网络驱动器虚拟化在移动计算设备中包含的网络硬件。一旦被初始化,虚拟网络驱动器就可以在在计算设备100上执行的客户OS与耦合到客户端计算设备100的移动计算设备的网络硬件之间交换网络数据。以这种方式,计算设备100可以通过简单地初始化在所接收到的虚拟映像中包含的客户OS、加载驱动器并且随后使用该驱动器交换网络数据来利用移动计算设备可得到的互联网访问。
[0017]虚拟网络驱动器的位置可以取决于特定实施方式而变化。例如,在一些实施例中,虚拟网络驱动器可以在客户操作系统内执行。在其他实施例中,虚拟网络驱动器可以在管理程序内执行。在其他一些实施例中,虚拟网络驱动可以在客户端计算设备100的主机操作系统内执行(假定管理程序是类型2管理程序)。这样的实施例中的驱动器的初始化和操作被进一步在下面与图2A和2B相结合地描述。
[0018]无论其位置如何,一旦被加载并且初始化,虚拟网络驱动器就使用接口 115与移动计算设备的网络硬件交换数据。因此,当将起源于客户OS的数据传送到互联网上的目的地时,驱动器可以通过接口 115将所述数据从客户端计算设备100传送到移动设备。相反地,当从互联网上的源接收意在供客户OS使用的网络数据时,驱动器才可以通过接口 115接收从移动设备到客户端计算设备100的数据。
[0019]因此,在操作中,客户端计算设备100允许用户迅速地加载并且执行虚拟机映像并且经由在虚拟机映像中包含的客户OS供应对设备100的互联网访问。特别地,在使用接口 115将客户端计算设备100耦合到移动设备之后,用户可以接收虚拟机映像,执行客户OS,并且随后利用移动计算设备的网络硬件来获得对互联网的访问。
[0020]图2A是执行类型I管理程序210并且共享耦合移动计算设备230可得到的互联网访问的示例客户端计算设备200的框图。如在下面所详述的那样,客户端计算设备200可以与移动计算设备230通信以便接收虚拟机映像222并且交换网络数据224。
[0021]如所图示的那样,客户端计算设备220可以包括虚假机205、客户OS 207、类型I管理程序210、硬件215、接口 217以及虚拟网络驱动器220。在一些实施方式中,虚拟机205、客户OS 207、管理程序210以及虚拟网络驱动器220可以被实现为在存储介质上编码并且由客户端计算设备200的硬件215所执行的一系列指令。例如,可以通过在与图1的处理器110类似的硬件215中包括的处理器从随机存取存储器(RAM)执行这些部件。
[0022]在操作中,类型I管理程序210可以首先在客户端计算设备200上被初始化。因为管理程序210是“类型I”的管理程序,所以管理程序210可以在缺少底层主机操作系统的情况下直接地在计算设备200的硬件215上执行。例如,类型I管理程序210最初可以被从在硬件215中包括的本地存储设备检索并且在计算设备200的引导序列期间加载。一旦被加载,管理程序210就可以被配置成将硬件215的资源分配给与管理程序210进行通信的虚拟机,诸如虚拟机205。
[0023]为了加载虚拟机205,客户端计算设备200可以最初经由接口 217与接口 235之间的通信来接收虚拟机映像222。例如,当用户在接口 217与接口 235之间建立有线或无线连接时,管理程序210可以自动地检测该连接并且将移动计算设备230作为可移动海量存储设备来安装。在必要时验证用户之后,管理程序210然后可以开始搜索移动计算设备230的存储介质245以标识任何可用的虚拟机映像。在检测到虚拟机映像247之后,管理程序210可以通过接口 217、235接收作为虚拟机映像222的映像。
[0024]当虚拟机映像222的转移完成时,客户端计算设备200然后可以开始执行在该虚拟机映像中包含的客户OS 207,现在被作为虚拟机205加载在存储器中。一旦运行,客户OS 207可以从类型I管理程序210请求虚拟资源,所述类型I管理程序210响应于这样的请求,可以分配在诸如存储器、处理器以及储存器之类的硬件215中可得到的物理资源。
[0025]此外,为了传送或接收网络数据224,客户OS 207可以与在客户端计算设备200上运行的虚拟网络驱动器220进行通信。虚拟网络驱动器220可以对移动计算设备230的网络硬件240进行虚拟化。以这种方式,客户OS 207可以使用网络硬件240来传送和接收网络数据,好像物理网络卡被安装在客户端计算设备200中。
[0026]如所图示的那样,虚拟网络驱动器220可以位于许多位置中的一个中。用于初始化驱动器220的过程可以取决于其位置而变化。例如,当虚拟网络驱动器220位于管理程序210中时,驱动器220可以在管理程序210初始化之后不久并且在初始化虚拟机205之前被初始化。在这样的实施例中,一旦驱动器220在管理程序210内被加载驱动器220就可以被利用来使用接口 217、235传送网络数据224。可替换地,当虚拟网络驱动器220位于客户OS 207中时,一旦虚拟机205正在管理程序210内运行驱动器220就可以被初始化。
[0027]在管理程序210、客户OS 207以及虚拟网络驱动器220被全部初始化之后,客户端计算设备200可以开始在客户OS 207与移动计算设备230之间交换网络数据224以从而利用移动计算设备230可得到的互联网访问。特别地,一旦被加载,虚拟网络驱动器220就可以控制到和来自移动计算设备230的网络数据224在接口 217、235之间的传输。例如,为了传送数据,客户OS 207可以首先将网络数据提供给驱动器220。作为响应,驱动器220可以在接口 217与接口 235之间传送网络数据224,并且在接收到该网络数据之后,移动计算设备230可以使用网络硬件240传送数据。相反地,在网络硬件240中接收到数据之后,驱动器220可以将网络数据224从接口 235读取到接口 217并且将该数据提供给管理程序210。作为响应,管理程序210可以标识网络数据224的预定接受者,并且当该接受者是客户OS 207时,将数据224提供给客户OS 207。
[0028]移动计算设备230可以为例如移动电话、平板计算设备、无线电子邮件设备、笔记本计算机或具有对能够与计算设备200共享的互联网访问的任何其他便携式计算设备。如所图示的那样,移动计算设备230可以包括接口 235、网络硬件240、存储介质245以及虚拟机映像247。
[0029]与图1的接口 115—样,接口 235可以包括用于与客户端计算设备200的有线或无线通信的电子部件。如上所述,接口 235可以与客户端计算设备200的对应接口 217通信以传送虚拟机映像222并且以交换网络数据224。网络硬件240可以为例如能够经由与蜂窝网络或其他无线网络的连接提供互联网访问的无线收发器。如上所述,网络硬件240可以被用来代表客户端计算设备200传送并且接收网络数据224。最后,存储介质245可以被与图1的存储介质120类似地配置,并且因此可以为能够存储虚拟机映像247的任何硬件设备。
[0030]虚拟机映像247可被以许多方式最初存储在存储介质245中。例如,在一些实施例中,用户可以通过将接口 235耦合到存储映像247的另一计算设备的接口手动地将虚拟机映像247上载到存储介质245。作为另一示例,虚拟机映像247可以被在移动设备230上执行的应用下载。例如,用户可以执行连接到包含虚拟机映像的数据库的应用,并且使用该应用来选择特定的虚拟机映像247而且将其下载到存储介质245。无论用于存储映像247的技术如何,映像247可以被提供给客户端计算设备200以便执行,如上所述。
[0031]图2B是执行类型2管理程序255并且共享耦合移动计算设备230可得到的互联网访问的示例客户端计算设备250的框图。如在下面所详述的那样,客户端计算设备250可以与移动计算设备230通信以便接收虚拟机映像222和管理程序226并且以便交换网络数据224。
[0032]和图2A的布置对比,客户端计算设备250包括类型2管理程序255,而不是类型I管理程序。因为管理程序255是“类型2”的管理程序,所以管理程序255在主机操作系统260内运行,并且因此通过与主机操作系统260而不是直接地与硬件215进行通信来满足对来自客户OS 207的资源的请求。
[0033]此外,如所图示的那样,移动计算设备230的存储介质245还可以维持类型2管理程序249的映像。在这样的实施例中,客户端计算设备250可以基于管理程序226在接口235与接口 217之间的转移从移动计算设备230接收类型2管理程序249。以这种方式,即使当客户端计算设备250不包括本地管理程序时客户端计算设备250也可以获得并且执行类型2管理程序255。然而,应该注意的是,与类型I管理程序210 —样,类型2管理程序255还可以被维持在客户端计算设备250的本地存储介质上,使得类型2管理程序255被从本地存储介质加载到存储器中。
[0034]与图2A的实施方式一样,虚拟网络驱动器220可以被包括在客户OS 207或管理程序255中。此外,虚拟网络驱动器220可以替代地被包括在主机OS 260中。在这样的实施例中,主机OS 260可以在客户端计算设备250的引导程序过程期间被初始化,并且虚拟网络驱动器260可以在主机OS 260被初始化时被加载和初始化。无论其位置如何,所加载的虚拟网络驱动器220可以以上面与图2A相结合地描述的方式进行操作。
[0035]图3是用于与客户端计算设备100共享移动计算设备可得到的互联网访问的示例方法300的流程图。尽管方法300的执行在下面参考计算设备100被描述,但是用于方法300的执行的其他适合的设备对于本领域的技术人员而言将是显而易见的(例如,计算设备200、250)。可以以在诸如存储介质120之类的机器可读存储介质上存储的可执行指令的形式和/或以电子电路的形式来实现方法300。
[0036]方法300在块305中开始并且继续块310,其中计算设备100可以从移动计算设备的存储介质接收虚拟机映像。例如,计算设备100可以通过接口 115从移动设备的存储设备接收虚拟机映像。
[0037]在块315中,计算设备100然后可以执行在块310中接收到的虚拟机映像中包含的客户操作系统。一旦执行,客户OS就可以与在计算设备100上执行的管理程序进行通信。例如,客户OS可以将资源请求提供给管理程序,所述管理程序作为回报可以将硬件资源分配给客户OS。
[0038]最后,在块320中,在客户OS已经被检索并且加载之后,计算设备100可以通过硬件接口 115在客户OS与移动设备之间转移网络数据。例如,在计算设备100中运行的虚拟网络驱动器可以用作客户OS与移动计算设备的网络硬件之间的中介物。以这种方式,计算设备100可以经由客户OS利用移动计算设备可得到的互联网访问。方法300然后可以进行块325,其中方法300可以停止。
[0039]图4A和4B是用于初始化客户端计算设备200、250以执行管理程序的两个示例方法的流程图。尽管分别在下面参考计算设备200、250的部件描述了方法400、450的执行,但是用于方法400、450的执行的其他适合的部件对于本领域的技术人员而言将是显而易见的。可以以在机器可读存储介质上存储的可执行指令的形式和/或以电子电路的形式来实现方法400、450。
[0040]图4A是用于初始化包括类型I管理程序210的客户端计算设备200以共享移动计算设备230可得到的互联网访问的示例方法400的流程图。方法400在块402中开始并且继续块404,其中用户通过例如激活该设备的电源按钮来引导客户端计算设备200。
[0041]在块406中,客户端计算设备200开始加载类型I管理程序210。例如,客户端计算设备200可以访问包括管理程序210的本地存储介质并且将管理程序210加载到存储器中。客户端计算设备200然后可以开始管理程序210的执行。
[0042]在块408中,客户端计算设备200被连接到移动计算设备230。例如,用户可以在接口 217与接口 235之间附连USB、eSATA、火线或其他电缆。可替换地,用户可以通过例如通过蓝牙或另一无线连接来连接两个设备来建立设备200、230之间的无线连接。
[0043]在块410中,如果虚拟网络驱动器220将位于管理程序210中,则客户端计算设备200然后可以初始化虚拟网络驱动器220。一旦在管理程序210中被初始化,虚拟网络驱动器220就准备使用接口 217、235与网络硬件240交换网络数据。网络硬件240可以进而控制数据到和从互联网的传输。
[0044]接下来,在块412中,客户端计算设备200可以从移动计算设备230接收虚拟机映像247。例如,管理程序210可以检测接口 217、235之间的连接,定位存储介质245上的虚拟机映像247,并且启动映像247在接口 217、235之间的传输。在块414中,在客户端计算设备200接收到映像247之后,客户端计算设备200可以初始化虚拟机205并且加载客户OS 207。
[0045]最后,在块416中,如果虚拟网络驱动器220将位于客户OS 207中(即,它不位于管理程序210中),则客户端计算设备200然后可以在客户OS 207内初始化虚拟网络驱动器220。一旦在客户OS 207中被初始化,虚拟网络驱动器220就准备使用接口 217、235与网络硬件240交换网络数据。方法400然后可以进行块418,其中方法400停止。
[0046]图4B是用于初始化包括类型2管理程序255的客户端计算设备250以共享移动计算设备230可得到的互联网访问的示例方法450的流程图。方法450在块452中开始并且进行块454,在块454中用户引导客户端计算设备250。
[0047]在块456中,客户端计算设备250开始加载主机操作系统260。例如,客户端计算设备250可以访问包括主机OS 260的本地存储介质并且然后可以将主机OS 260加载到存储器中。客户端计算设备250然后可以开始主机OS 260的执行。
[0048]在块458中,客户端计算设备250经由有线或无线接口而被连接到移动计算设备230。例如,该接口可以为USB电缆、eSATA电缆、火线电缆或无线连接。接下来,在块460中,如果虚拟网络驱动器220将位于主机OS 260中,则主机OS 260然后可以初始化虚拟网络驱动器220。在驱动器220被初始化之后,驱动器220然后可以准备在接口 217、235之间将数据传送到移动计算设备230并且从移动计算设备230传送数据。
[0049]在块462中,客户端计算设备250确定管理程序是否将被从本地存储设备或者从移动计算设备230加载。例如,移动计算设备230可以确定管理程序是否存在于本地存储设备上,并且如果不是,则方法450可以进行块464,其中计算设备250可以试图定位在移动计算设备230的存储介质245上维持的类型2管理程序249。当这样的管理程序249被定位时,客户端计算设备250然后可以通过接口 235与接口 217之间的连接来检索类型2管理程序249。
[0050]在块466中,计算设备250可以加载如从本地存储介质或者从移动计算设备230检索到的类型2管理程序255。例如,计算设备250可以将类型2管理程序255加载到存储器中,并且开始类型2管理程序255在主机OS 260内的执行。
[0051]接下来,在块468中,如果虚拟网络驱动器220将位于管理程序255中,则客户端计算设备250然后可以初始化虚拟网络驱动器220。一旦在管理程序255中被初始化,虚拟网络驱动器220就准备使用接口 217、235与网络硬件240交换网络数据。网络硬件240可以进而控制数据到和从互联网的传输。[0052]接下来,在块470中,客户端计算设备250可以从移动计算设备230接收虚拟机映像247。例如,管理程序255可以检测接口 217、235之间的连接,定位存储介质245上的虚拟机映像147,并且启动映像247在接口 217、235之间的传输。在块472中,在客户端计算设备250接收到映像247之后,客户端计算设备250可以初始化虚拟机205,将客户OS 207加载到存储器中,并且开始客户OS 207的执行。
[0053]最后,在块474中,如果虚拟网络驱动器220将位于客户OS 207中(即,它不位于主机OS 260或管理程序255中),则客户端计算设备250然后可以在客户OS 207内初始化虚拟网络驱动器220。一旦在客户OS 207内被初始化,虚拟网络驱动器220就准备使用接口 217、235与网络硬件240交换网络数据。方法400然后可以进行块476,在块476中方法450停止。
[0054]图5A和5B分别是用于利用虚拟网络驱动器220来发送并且接收网络数据的示例方法的流程图。尽管分别在下面参考计算设备200、250的部件来描述方法500、550的执行,但是用于方法500、550的执行的其他适合的部件对于本领域的技术人员而言将是显而易见的。可以以在机器可读存储介质上存储的可执行指令的形式和/或以电子电路的形式来实现方法500、550。
[0055]图5A是用于使用虚拟网络驱动器220来传送在客户端计算设备200、250的客户OS 207中生成的分组的示例方法500的流程图。方法500在块502中开始并且进行块504,其中计算设备200、250可以接收请求以传送起源于在管理程序210、255内执行的客户OS207的网络分组。例如,在客户OS 207中执行的应用或其他进程可以寻求将分组传送到互联网上的指定的网际协议(IP)地址。
[0056]如上面所详述的那样,虚拟网络驱动器220可以被放置在客户OS 207、管理程序210、255或主机OS 260中。取决于驱动器220的位置,在块506中,客户OS 207、管理程序210、255或主机OS 260可以将网络分组插入到由驱动器220所监控的存储器缓冲器中。在操作中,虚拟网络驱动器220监控存储器缓冲器以用于分组的插入并且使用给定处理技术(例如,先进先出)从该缓冲器读取分组。因此,在块508中,虚拟网络驱动器220从存储器缓冲器读取经插入的分组。在块510中,在读取了分组之后,虚拟网络驱动器220通过接口217、235之间的连接来传送该分组。最后,在块512中,在接口 235中接收到分组之后,移动计算设备230使用网络硬件240将该分组传送到预定目的地。方法500然后进行块514,在块514中方法500停止。
[0057]图5B是用于使用虚拟网络驱动器220来接收意在供客户端计算设备200、250的客户OS 207使用的分组的示例方法550的流程图。方法550在块552中开始并且进行块554,其中移动计算设备230的网络硬件240从在移动计算设备230外部的源接收传入的分组。
[0058]在块556中,虚拟网络驱动器220检测传入的分组,并且在块558中,通过接口 235与接口 217之间的连接转发该分组。在块560中,在计算设备200、250中执行的管理程序210、255然后检测传入的分组并且标识虚拟机205以用于接收该分组。例如,如果多个虚拟机正在管理程序210、255内执行,则管理程序可以例如基于该分组的目标IP地址来标识该分组的预定接收者。在块562中,在标识了预定接收者之后,管理程序210、255可以将分组转发到适当的虚拟机,并且尤其是在该虚拟机内执行的客户OS 207。最后,方法550可以进行块564,在块565中方法550可以停止。
[0059]根据上文,本文中所公开的示例实施例允许用户访问在移动计算设备上维持的定制的虚拟机映像。以这种方式,用户可以容易地传输定制的环境并且从客户端设备访问这个环境。此外,通过虚拟化在移动设备上可得到的网络硬件,即使当客户端缺少本机联网能力时示例实施例也同样允许客户端上的互联网访问。
【权利要求】
1.一种用于共享移动计算设备可得到的互联网访问的客户端计算设备,所述客户端计算设备包括: 接口,其用于与所述移动计算设备进行通信;以及 处理器,其用来:
通过所述接口接收在所述移动计算设备的存储设备上维持的虚拟机映像,
执行在所述虚拟机映像中包含的客户操作系统(OS),所述客户OS将请求提供给在所述客户端计算设备中加载的管理程序,以及
通过所述接口在所述客户OS与所述移动计算设备之间交换网络数据以使得所述客户端计算设备能够利用所述移动计算设备可得到的所述互联网访问。
2.根据权利要求1所述的客户端计算设备,其中,在所述客户端计算设备中加载的所述管理程序在接收所述虚拟机映像之前自动地检测通过所述客户端计算设备与所述移动计算设备之间的所述接口的连接。
3.根据权利要求1所述的客户端计算设备,其中,为了将所述管理程序加载在所述客户端计算设备中,所述处理器被配置成通过所述接口从所述移动计算设备的所述存储设备接收所述管理程序。
4.根据权利要求1所述的客户端计算设备,其中为了将所述管理程序加载在所述客户端计算设备中,所述处理器被配置成从所述客户端计算设备的本地存储设备中检索所述管理程序。
5.根据权利要求1所 述的客户端计算设备,其中: 所述客户OS与虚拟化在所述移动计算设备中包含的网络硬件的虚拟网络驱动器交换所述网络数据,并且 所述虚拟网络驱动器控制所述网络数据通过所述接口到和从所述移动计算设备的传输。
6.根据权利要求5所述的客户端计算设备,其中,所述虚拟网络驱动器被维持在所述客户端计算设备的主机操作系统、所述管理程序或所述虚拟机映像中。
7.根据权利要求1所述的客户端计算设备,其中,所述移动计算设备可得到的所述互联网访问经由与蜂窝网络的连接来提供。
8.一种编码有可由客户端计算设备的处理器执行以便共享移动计算设备可得到的互联网访问的指令的机器可读存储介质,所述机器可读存储介质包括: 用于在所述客户端计算设备加载管理程序的指令; 用于在所述管理程序中接收在所述移动计算设备的存储设备上维持的虚拟机映像的指令; 用于加载在所述虚拟机映像中包含的客户操作系统(OS)的指令,所述客户OS与所述管理程序进行通信;以及 用于初始化虚拟网络驱动器以虚拟化所述移动计算设备中的网络硬件的指令,经初始化的驱动器在所述客户OS与所述移动计算设备的所述网络硬件之间交换网络数据。
9.根据权利要求8所述的机器可读存储介质,其中,用于加载所述管理程序的所述指令从所述移动计算设备的所述存储设备接收所述管理程序。
10.根据权利要求8所述的机器可读存储介质,其中,所述虚拟网络驱动器在所述客户端计算设备的主机操作系统、所述管理程序或所述客户OS中执行。
11.根据权利要求8所述的机器可读存储介质,其中,所述虚拟网络驱动器包括: 用于通过接口将起源于所述客户OS的网络数据从所述客户端计算设备传送到所述移动计算设备的指令,以及 用于通过所述接口从所述移动计算设备到所述客户端计算设备接收意在供所述客户OS使用的网络数据的指令。
12.一种用于与客户端计算设备共享移动计算设备可得到的互联网访问的方法,所述方法包括: 通过所述客户端计算设备与所述移动计算设备之间的接口来接收在所述移动计算设备的存储设备上维持的虚拟机映像; 执行在所述虚拟机映像中包含的客户操作系统(OS),所述客户OS与在所述客户端计算设备中加载的管理程序进行通信;以及 通过所述接口在所述客户OS与所述移动计算设备之间转移网络数据来利用所述移动计算设备可得到的所述互联网访问。
13.根据权利要求12所述的方法,进一步包括: 通过所述客户端计算设备与所述移动计算设备之间的所述接口从所述移动计算设备的所述存储设备加载所述管理程序。
14.根据权利要求12所 述的方法,其中利用所述互联网访问包括: 使用虚拟化在所述移动计算设备中包含的网络硬件的虚拟网络驱动器来向和从所述客户OS传送网络数据。
15.根据权利要求14所述的方法,其中,所述虚拟网络驱动器被维持在所述客户端计算设备的主机操作系统、所述管理程序或所述虚拟机映像中。
【文档编号】G06F15/16GK103430165SQ201180069417
【公开日】2013年12月4日 申请日期:2011年3月18日 优先权日:2011年3月18日
【发明者】S.阿萨姆, C.W.苏 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1