操作系统的制作方法_4

文档序号:8344590阅读:来源:国知局
靠性的要求选择主机操作系统170。例如,主机操作系统170可以是基于Unix的操作系统或者类似Unix操作系统,例如Linux操作系统或者BSD操作系统。
[0117]在一些例子中,可以基于用户接口要求或者软件应用有效性选择客户操作系统176。例如,客户操作系统176可以是Windows操作系统或者Mac OS操作系统或者*nix操作系统(例如,Unix、Linux、BSD、等等)。在不使用主机操作系统170的用户接口 162的例子中,在选择或者配置主机操作系统中,不需要考虑主机操作系统170的用户接口能力。
[0118]因为通过主机操作系统170管理在计算机系统100的虚拟机172和硬件(例如处理器110、存储器120及其他硬件)上运行的客户操作系统176,所以可以独立于在任何给定计算机系统100上可用或者不可用的服务(例如硬件)来选择客户操作系统176。可以例如取决于用户的偏爱,选择任何的多个客户操作系统。
[0119]大量的和多种不同的计算机系统都可以寄存给定的客户操作系统和相关的应用,只要主机操作系统可以在全部不同的计算机系统上运行,并且可以通过主机操作系统将虚拟机托管在可以运行客户操作系统的每个计算机系统上。这使得客户操作系统和相关的应用程序高效地从一个计算机系统携带到另一个计算机系统。
[0120]虽然图1示出了在单个计算机设备100上执行主机操作系统170和客户操作系统176的例子,但是在其他例子中,可以用多个计算机设备代替计算机设备100。例如,可以在第一计算机设备上执行主机操作系统170,并且在不同的第二计算机设备上执行客户操作系统。在这种示例中,通过客户操作系统176在第二计算机设备上使用虚拟化硬件174将导致通过主机操作系统170对第一计算机设备中包括的硬件(例如网络通讯设备)进行直接操作。
[0121]图2是计算机系统200和存储设备210、220的方框图。计算机系统200可以是图1所示的计算机系统100的示例,并且存储设备210、220可以是图1所示的存储设备130的示例。在一些实现中,存储设备210、220中任一个或者两者是可附接到计算机系统100并且可以从计算机系统100分开的外存储器设备,有时也被称为可移去存储设备。例如,存储设备210、220可以附接到计算机系统的设备接口,例如USB(通用串行总线)端口或者用于连接可移去存储设备的其他接口。在一些例子中,存储设备210、220的一个或者两者都没有实际上依附到计算机系统200。例如,可以通过例如图1所示的网络144的网络访问存储设备210、220的一个或者两者。在一些实现中,第一存储设备210包含主机操作系统磁盘映像212和客户操作系统磁盘映像214。磁盘映像212、214可以是图1所示的磁盘映像132、134的例子。主机操作系统磁盘映像212可用于在计算机系统200上(或者在主机操作系统可以运行的任何计算机系统上)安装主机操作系统202。客户操作系统磁盘映像214可用于在计算机系统200上(或者在主机操作系统提供能够运行客户操作系统的虚拟机的任何计算机系统上)安装客户操作系统204。例如,客户操作系统204可以运行在在主机操作系统202上运行的虚拟机上(例如图1所示的虚拟机172)。在一些实现中,可以将主机操作系统磁盘映像和客户操作磁盘映像存储在不同的设备上。
[0122]在一些实现中,第一存储设备210被配置为自动地在计算机系统200上安装主机操作系统202。在一些实现中,计算机系统100被配置为识别磁盘映像212并且从第一存储设备210安装主机操作系统202。在一些例子中,可以将主机操作系统202安装到存储器或者计算机系统的存储设备130 (图1)中。在一些实现中,第一存储设备210包含可用于从第一存储设备210引导计算机系统的形式的主机操作系统202的可执行编码。以这种方法,不需要将主机操作系统202安装在计算机系统200上。在一些实现中,主机操作系统磁盘映像212被用于将主机操作系统202安装在第一存储设备210上,该第一存储设备210随后可以用于引导计算机系统200。
[0123]可以从客户操作系统磁盘映像214安装客户操作系统204。例如,可以安装客户操作系统204来在主机操作系统202上运行的虚拟机上运行。在一些例子中,主机操作系统202使得客户操作系统204被安装,例如发送命令或者触发过程来安装客户操作系统204。
[0124]在一些使用的例子中,计算机系统200的用户206可以例如通过将闪速存储器插入USB端口中,将第一存储设备210连接到计算机系统200。安装主机操作系统202并且主机操作系统202开始在计算机系统200上运行并且执行虚拟机。安装客户操作系统204并且随后可以在虚拟机上运行并且呈现用户206可以用来进行交互的用户接口。从用户206的视角来看,计算机系统200显现为仅仅运行客户操作系统204。例如,如果操作系统204是微软的Windows,并且主机操作系统202是Linux,用户将具有计算机系统是运行在微软的Windows上的感觉,并且可能不会意识到主机操作系统202是Linux。
[0125]用户206可以将计算机系统200运行得好像仅仅安装了客户操作系统204。例如,用户206可以通过与客户操作系统204的相互影响使用计算机系统200的硬件资源,例如输入/输出外围设备208。因为主机操作系统202管理与计算机系统200的硬件之间的交互,所以客户操作系统204不需要被配置为管理与计算机系统200或者输入/输出外围设备208之间的直接的交互。单个客户操作系统204可以与多种类型的计算机系统和多种类型的输入/输出外围设备及其他硬件一起使用,只要该计算机系统、输入/输出外围设备或者其他硬件是主机操作系统202支持的并且主机操作系统202运行可以运行客户操作系统204的虚拟机。用户206可以使用第一存储设备210来引导图2所示的计算机系统200以及其他计算机系统。在这个意义上,客户操作系统204变得容易在多个机器和多个种类的机器之间携带。客户操作系统204可以在与所设计的不同的类型的机器上运行。例如,客户操作系统204可能已经被设计为在例如桌面或者膝上型计算机的个人计算机上运行,但是使用这里描述的技术,该客户操作系统204可以在例如智能电话的移动设备上运行。
[0126]在一些实现中,第二存储设备220包含客户应用磁盘映像222或者用户数据224或者两者。例如,客户应用磁盘映像222可用于在客户操作系统204上安装软件应用。用户数据224可以包含用于软件应用的数据,例如用户206生成并且操作的数据。在一些实现中,第一存储设备210是只读存储设备。例如,存储在第一存储设备210上(例如操作系统磁盘映像212、214)的数据,可能是不可变的(例如为了安全或者稳定性的原因)。
[0127]因为用户206可能希望具有对客户操作系统204不包括的软件应用的访问,或者因为用户206可能希望生成并且改变数据同时使用计算机系统200,所以用户可以使用第二存储设备220作为可重写的存储设备以及只读第一存储设备210。即使第一存储设备210不接受对它的数据的任何修改,用户206也自由地在第二存储设备220上放置软件应用和用户数据。第二存储设备220可以随后被用来不仅从一个计算机系统到另一个计算机系统移动操作系统,还移动用户的数据和应用,所述计算机系统包括不同类型的计算机系统。
[0128]在一些实现中,计算机系统200使用网络访问第二存储设备220。例如,可以通过“云计算”服务提供第二存储设备220,其中“云计算”服务向计算机系统200的用户提供固定的或者可变数量的存储器。“云计算”是指使用例如因特网的网络提供服务的技术。第二存储设备220可以是云计算服务分配的存储器而不是实体设备。在一些布置中,计算机系统200可以具有使用例如USB的非网络通讯技术可访问的只读存储器,并且具有使用例如云计算服务的网络通讯技术可访问的可重写存储器。在这些布置中,计算机系统200不需要具有任何使用非网络通讯技术访问的可重写存储器,这样使得计算机系统200可用的全部可重写存储器是“云计算”存储器。例如,用户不需要携带实体可重写存储设备或者具有对该实体可重写存储设备的访问,可以丢失或者遗忘所述实体可重写存储设备,潜在地向用户提供安全性、简单性和机动性。
[0129]图3是显示用于配置数据存储设备(例如图1所示的存储设备130或者图2所示的存储设备210)来启动(或者“引导”)计算机系统(例如图1所示的计算机系统100或者图2所示的计算机系统200)的示例过程300的流程图。
[0130]在操作302中,生成主机操作系统磁盘映像。例如,磁盘映像可以是图1所示的主机操作系统磁盘映像132或者图2所示的主机操作系统磁盘映像212。
[0131]在操作304中,将操作系统(例如,诸如图1所示的主机操作系统170的主机操作系统或者图2所示的主机操作系统202)安装到主机操作系统磁盘映像中。在一些例子中,可以执行用于操作系统的安装程序来生成配置版本的操作系统,有时被称为操作系统的安装。例如,操作系统可以被配置为在计算机硬件的特定配置上运行,诸如计算机系统的特定配置和输入/输出外围设备。在一些实现中,操作系统被配置为不向用户显示用户接口元件,例如因为用户将与客户操作系统交互并且没有操作系统用作主机操作系统。
[0132]在操作306中,将虚拟机安装在主机操作系统磁盘映像上。可以将虚拟机配置为在主机操作系统上运行,例如,在主机操作系统磁盘映像上安装的操作系统上运行。在一些实现中,虚拟机被配置为在主机操作系统处于活动的任何时候都运行。在一些实现中,虚拟机的多个实例被配置为在主机操作系统处于活动时运行。在一些实现中,虚拟机被配置不显示用户接口元件(例如,否则将允许用户禁用客户操作系统或者虚拟机的按钮或者工具栏)。在一些实现中,虚拟机被配置为不接受对专用于虚拟机的输入。例如,虚拟机可以允许特定键击(或者用户在输入/输出外围设备上做出的其他输入)激活或者停用虚拟机的功能。当安装虚拟机时可以禁用专用于虚拟机的键击或者其他输入的组合。
[0133]在操作308中,生成客户操作系统磁盘映像。例如,磁盘映像可以是图1所示的客户操作系统磁盘映像134或者图2所示的客户操作系统磁盘映像214。
[0134]在操作310中,将操作系统(例如,诸如图1所示的客户操作系统176的客户操作系统或者图2所示的客户操作系统204)安装到客户操作系统磁盘映像中。例如,可以执行用于操作系统的安装程序来生成操作系统的安装。因为这个操作系统将被用作客户操作系统,可以将操作系统配置为在安装在主机操作系统上的虚拟机上运行。在一些实现中,被用作客户操作系统的操作系统的配置不包括对操作系统的任何修改,例如对操作系统的可执行编码的修改。
[0135]在操作312中,主机操作系统被配置为向文件系统提供对客户操作系统的访问。通常,操作系统的一个功能是通过应用程序提供对存储器中的文件系统中组织的文件的访问。访问存储在文件系统中的文件可以启动具有访问的程序而导致文件的污染。为了减少这个机会,在一些例子中,客户操作系统使用与主机操作系统不同的文件系统来读取并且写入数据。
[0136]主机操作系统可以被配置为以客户操作系统可用的格式提供对数据存储器(例如图1所示的存储设备130或者图2所示的存储设备220)保持的文件系统的文件的访问。在一些例子中,客户操作系统使用诸如SMB(服务器消息块)的基于网络的文件系统协议。主机操作系统可以被配置为使用基于网络的文件系统协议来提供对客户操作系统的访问。在一些实现中,主机操作系统可以被配置为启动使用基于网络的文件系统协议可访问的辅助存储设备(例如,图2所示的第二存储设备220)。
[0137]在操作314中,主机操作系统被配置为刷新客户操作系统。在一些实现中,主机操作系统可以被配置为以定期的进度或者定期的间隔刷新客户操作系统。例如,主机操作系统可以被配置为使用周期性终止客户操作系统、(例如从磁盘映像)重新安装客户操作系统、并且开始客户操作系统的新的实例的进度表程序。主机操作系统可以一天一次、一小时一次、一周一次或者任何其他的间隔时间这样做。在一些实现中,客户操作系统可以以不定期的或者不根据定期的进度的间隔刷新。
[0138]在一些实现中,可以基于一个或者多个内部或者外部触发事件或者他们的组合刷新客户操作系统。在一些例子中,主机操作系统被配置为在主机操作系统检测客户操作系统中存在的状态时,刷新客户操作系统。在一些例子中,该状态可以是安全状态,例如检测到客户操作系统中的病毒或者其他恶意程序。在一些例子中,状态可以是例如在客户操作系统中的错误、客户操作系统中的无限循环、操作系统中的存储器溢出、导致客户操作系统停止操作(有时称为崩溃或者冻结)的状态的故障状态,或者其他类型的故障状态。
[0139]在操作316中,主机操作系统被配置为将软件应用安装在客户操作系统上。在一些实现中,软件应用被存储在磁盘映像中,例如图1所示的磁盘映像136或者图2所示的磁盘映像222。例如,磁盘映像可以被存储在辅助存储设备上,诸如图2所示的第二存储设备220。在一些实现中,每次刷新客户操作系统时,将软件应用重新安装在客户操作系统上。
[0140]在操作318中,主机操作系统磁盘映像和客户操作系统磁盘映像被复制到存储设备。在一些例子中,存储设备可以是诸如图2所示的存储设备210的可移去存储设备。在一些实现中,存储设备被配置为当将存储设备附接到计算机系统时引导计算机系统。在一些例子中,存储设备可以被配置为当计算机系统通电时,将主机操作系统磁盘映像复制到存储器或者计算机系统的数据存储器。在一些例子中,存储设备可以被配置为当磁盘映像维持在存储设备上时,允许从主机操作磁盘映像执行主机操作系统。例如,存储设备可以被配置为表明作为可启动的存储设备的计算机系统,并且该计算机系统可以从存储设备执行主机操作系统。
[0141]图4是显示用于生成软件应用磁盘映像(例如,图1所示的磁盘映像136或者图2所示的磁盘映像222)的示例过程400的流程图。磁盘映像可以被放置在将要安装在客户操作系统上(例如图1所示的客户操作系统176或者图2所示的客户操作系统204)的数据存储设备上(例如图2所示的存储设备220)。
[0142]在操作402中,客户操作系统被激活。客户操作系统可以运行在主机操作系统上运行的虚拟机上。在一些例子中,客户操作系统被刷新并且随后被激活,以便客户操作系统以已知状态运行(例如,不存在用户或者软件应用做出的任何改变),
[0143]在操作404中,安装封装记录器被激活。安装封装记录器跟踪随着安装软件应用而对操作系统做出的改变。例如,安装封装记录器保持跟踪在安装期间在操作系统中增加或者改变了什么数据。安装封装记录器生成可以在稍后的时间里重复安装软件应用的安装封装。例如,安装封装记录器可以生成包含这样软件的安装封装,在执行该软件时,安装软件应用。在一些例子中,安装封装是具有结构的存储文件。例如,安装封装可以是MSI文件。
[0144]在操作406中,软件应用被安装。软件应用可以是图1所示的程序180的示例。可以使用这样的安装程序安装软件应用,所述安装程序将软件应用的可执行编码和数据放置在客户操作系统可访问的存储器中,并且将该软件配置为在客户操作系统上运行。在一些例子中,软件应用具有可以配置的用户设置,例如用户接口设置。在一些例子中,软件应用具有对存储数据的位置的设置。例如,软件应用可以被配置为在特定存储设备上储存数据。
[0145]在操作408中,停用安装封装记录器并且生成安装封装。在一些例子中,安装封装可以被放置在磁盘映像中,例如图1所示的客户应用映像136之一或者图2所示的客户应用映像222。
[0146]在操作410中,将安装封装复制到存储设备。例如,存储设备可以是图2所示的存储设备220。如果存储设备是可重写存储设备,那么存储设备可以包含其他安装封装并且可以在稍后将其他安装封装放置在存储设备上。
[0147]图5是包含计算机系统和操作系统的微芯片(microchip) 500的示意图。例如,微芯片500可以是图1所示的计算机系统100的示例。微芯片500具有对应于其他类型的计算机系统组件的嵌入组件。微芯片500可以包括中央处理单元502,例如能够运行通用操作系统的中央处理单元。
[0148]微芯片500可以包括存储器504,例如可以通过通用操作系统定址的随机访问存储器。例如,存储器504可以是图1所示的存储器120的示例。
[0149]微芯片500可以包括操作系统映像5
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1