操作系统的制作方法_2

文档序号:8344590阅读:来源:国知局
0036]客户操作系统可以在虚拟机内部运行,该虚拟机运行在主机操作系统上,而该主机操作系统又运行在实体计算机系统的硬件上。如果将客户操作系统用作与计算机系统的用户进行交互的介质,那么计算机系统的硬件和主机操作系统可以被部分或整体隔离于用户的活动。
[0037]如果客户操作系统展现出可能引起进行中的故障的状态,可以例如通过主机操作系统重新加载并且重新执行全部或一部分操作系统来刷新客户操作系统。如果从不变的主映像重新加载了全部或一部分客户操作系统(例如,从被执行的客户操作系统将客户操作系统重新加载到存储器中),那么可以清除导致进行中的故障的任何修改并且因此需要不是永久的。
[0038]在一些例子中,如果操作系统作为在虚拟机内部的客户运行,客户操作系统可以仅仅用虚拟机维护的并且展示出的模拟硬件与客户操作系统交互,并且不直接与实体的计算机系统的硬件进行交互。另外,组成在虚拟机上运行的客户操作系统的软件可以被存储为只读形式,这阻挡了可能引起进行中的故障的修改。如果在客户操作系统运行时发生了对客户操作系统的任何修改,那么可以通过从只读存储映像重新加载该操作系统来除去对客户操作系统做出的该修改。
[0039]此外,如果在虚拟机内部运行的客户操作系统与虚拟机的模拟的硬件进行交互,而不是与计算机系统的实体硬件进行交互,那么客户操作系统可以被使用在除了作为客户操作系统的设计对象的计算机系统以外的计算机系统上,因为在每个计算机系统上的虚拟机都可以提供客户操作系统所期望的模拟硬件接口,而与计算机系统的实体硬件方面的差异无关。每个计算机系统仅仅需要支持主机操作系统和提供所期望的虚拟硬件接口并且运行客户操作系统的虚拟机。因此,客户操作系统可以在比原本设计的更多种类的计算机硬件上运行。
[0040]主机操作系统的特征可以包括,例如:
[0041]I)硬件引导程序和硬件管理(CPU)能力;
[0042]2)托管外围设备驱动(网络、存储器、视频等等)的能力;
[0043]3)经由安全拉(pull)方法更新驱动的可选的能力;
[0044]4)限制用户访问其自身的能力;
[0045]5)相对于输出设备不可见的运行的能力(然而,更低层的网络封装扫描可以检测到该主机操作系统的存在,除非客户硬件被完全地抽象(abstracted));
[0046]6)阻挡干扰关键字组合来防止客户操作系统干扰用户的能力;
[0047]7)托管本地防火墙和IP路由表,并且执行SSL隧道以提供软件安全隧道的可选的能力;
[0048]8)计划工作负载的能力;
[0049]9)执行对资源和处理的监视的能力;
[0050]10)运行虚拟化的软件的能力;
[0051]11)运行实用的应用的能力;
[0052]12)重新启动客户操作系统的能力;
[0053]13)用客户操作系统提供和/或共享存储器的能力;
[0054]14)在存储器中运行主机操作系统的可选的能力;
[0055]15)向/从客户操作系统起动序列增加/除去程序的能力;
[0056]16)托管用于客户操作系统的映像;
[0057]17)将存储器/进程空间与客户操作系统隔离的能力;
[0058]18) TCP/DHCP 客户端;
[0059]19)支持NTP客户端/服务器;
[0060]20)禁用不需要的服务的能力;以及
[0061]21)即插即用硬件检测。
[0062]客户操作系统的特征可以包括,例如:
[0063]I)提供用户接口服务;
[0064]2)维护并且记录用户运行期间状态;
[0065]3)重建想要的用户状态;
[0066]4)保护网页浏览器/电子邮件/文字处理器;
[0067]5)通过单个命令而不重新启动客户操作系统的方式安装应用和配置的能力;
[0068]6)应该限制不需要用户修改的服务不被修改;
[0069]7)运行基本病毒防护软件和本地防火墙软件的能力;
[0070]8)即插即用硬件检测(虽然这可以被用于虚拟化的设备,而不是直接用于真正的硬件);
[0071]9)网络协议支持;
[0072]10)安装远程网络存储器的能力;
[0073]11)对常规的最小负载相对小的存储要求(保证客户OS存储器+客户OS虚拟存储器+托管OS存储器〈计算机系统可用的物理存储器);
[0074]11)使系统信息模糊以便用户和间谍软件不可见所述系统信息的能力;
[0075]12)隔离系统配置定义,以便在从映像刷新客户操作系统之后可以保持必要的用户状态;以及
[0076]13)禁用关闭整个系统和特定服务的能力。
[0077]图1是示例计算机系统100的方框图。计算机系统100包括处理器110、存储器120、存储设备130和输入/输出设备140。可以例如使用系统总线150来互连组成部分。处理器110能够处理指令以在计算机系统100内部执行。在一些实现中,处理器110是单线程处理器。在一些实现中,处理器110是多线程处理器。在一些实现中,处理器110是量子计算机。处理器110能够处理存储在存储器120中的指令或可以从存储设备130移动到存储器120中的指令。在一些实现中,可以通过处理器110直接从存储设备130中执行指令。存储器120在计算机系统100内部存储信息。在一些实现中,存储器120是计算机可读介质。在一些实现中,存储器120是易失性存储单元。在一些实现中,存储器120是非易失性存储单元。在一些实现中,存储器可以是任何两个或多种类型的存储器的组合。在一些例子中,存储器120包括分离的单元,可以通过地址访问每个单元。例如,存储器120可以被分成诸如字节或单词的单元,可以通过发送包括对应于一个或多个单元的地址的读取或写入命令来从所述一个或多个单元读取并且向其写入每个所述字节或者单词。
[0078]存储设备130能够为系统100提供大容量存储器。在一些实现中,存储设备130是计算机可读介质。在各种不同的实现中,存储设备130可以包括例如硬盘设备、光盘设备、固态硬盘、闪存驱动器、磁带、“USB钥匙链(keychain)”驱动器、或其它的存储设备、或者他们中的任意两个或多个的任意组合。在一些实现中,计算机系统100具有许多存储设备130,例如硬盘设备和闪存驱动器。
[0079]输入/输出设备140为计算机系统100提供输入/输出操作。在一些实现中,输入/输出设备140可以包括驱动设备,所述驱动设备被配置为接收输入数据并且将输出数据发送给其他的输入/输出外围设备160,例如键盘、打印机和显示设备。在一些例子中,输入/输出外围设备160是外部设备(例如与计算机系统100分尚的实体设备),并且在一些例子中,输入/输出外围设备160与计算机系统100集成在一起(例如作为计算机系统100 —部分的电子封装)。在一些实现中,可以使用移动计算设备、移动通讯设备及其他设备。例如,计算机系统100可以是移动设备,诸如膝上型计算机、平板计算机、个人数字助理、诸如智能电话的移动电话、或其他类型的移动设备。在一些实现中,输入/输出设备140可以包括网络通讯设备142 (例如以太网卡)、串行通信设备(例如RS-232端口)和/或无线接口设备(例如802.11卡、3G无线调制解调器、或4G无线调制解调器)中的一个或他们中的任意两个或多个的组合。网络通讯设备142允许计算机系统100进行通信,例如在网络144上发送与接收数据。例如,网络144可以是局域网(LAN)、诸如因特网的万维网,或用于数据通信的另一类型的网络。
[0080]处理器110能够执行程序,所述程序是使得处理器110执行动作的指令的集合。例如,处理器110可以执行诸如主机操作系统170的操作系统的指令。我们使用术语操作系统宽泛地指任意类型、大小或配置的操作系统,例如包括一个程序或多个程序的集合,所述程序与计算机系统的资源(例如为处理器110、存储器120、存储设备130和输入/输出设备140)相互作用、通过其他程序管理那些资源的使用、以及提供对其他程序和计算机系统的用户有用的特征。当通过操作系统管理程序对计算机系统100的资源的使用时,程序可以被称为在操作系统上“运行”。在一些例子中,当激活计算机系统100(例如启动(bootup)计算机系统)时开始执行操作系统170,并且在计算机系统100维持活动的同时该操作系统170维持活动。操作系统可以采取任何多种形式,并且任意类型的操作系统可以用在这里描述的技术中。
[0081]在一些实现中,在主机操作系统170上运行的多个程序中的一个可以是虚拟机172。在一些例子中,虚拟机172是计算机系统的软件模拟(simulat1n)。在其他事物中,虚拟机172模拟对应于实体计算机系统的硬件的虚拟硬件。例如,虚拟机172可以模拟处理器,例如,像计算机系统100的处理器110。虚拟机172也可以模拟其他类型的计算机系统资源,例如类似于计算机系统100的存储器120和输入/输出设备140的存储器和输入设备。虚拟机172可以制成另一个操作系统(客户操作系统176)可用的模拟(例如虚拟化)硬件174。操作系统176与模拟硬件174进行交互的方式与操作系统176可以与例如计算机系统100的实体系统的硬件交互一样,其中,操作系统176是在计算机系统100上作为单独的操作系统运行的客户操作系统176。
[0082]操作系统176还可以提供对操作系统176上运行的程序以及对用户有用的特征。以这种方法,操作系统176可以使用计算机系统100的服务而不直接访问那些服务。反而,虚拟机172用作操作系统176和该服务之间的媒介物。例如,当操作系统176访问虚拟机的模拟硬件时,操作系统176直接是模拟硬件的直接访问服务,但是仅仅间接使用下层的实体硬件。作为间接访问的一个示例,操作系统176可以访问模拟硬件的硬件地址,通过虚拟机172将该硬件地址翻译为实体硬件的不同的硬件地址。(在一些实现中,使用了地址转换以外的其他技术。)相反,在直接访问中,操作系统176将通过访问分配给实体硬件的硬件地址来直接操作实体硬件设备。虚拟机172可以在对计算机系统100的服务的使用上规定限制,例如,如果操作系统176具有对计算机系统100的服务的直接访问,那么将不会存在限制。可以对屏幕设计这些限制,或者可以设计这些限制以通过在虚拟机172上运行的程序来保护服务和硬件不被预期不到的或故意的误用。
[0083]在一些实现中,我们将在计算机系统100上运行的操作系统170称为“主机”操作系统,并且我们将在虚拟机172上运行的操作系统176称为“客户”操作系统。通过虚拟机,在虚拟机172上运行的客户操作系统176可以被称作“被托管(hosted) ”。通常,当客户操作系统176在虚拟机172上运行时,客户操作系统176不需要被修改或被配置为容纳运行虚拟机172的主机操作系统170 ;而仅仅需要能够在该虚拟机上运行。以这种方法,客户操作系统176可以被称为“不觉察(unaware) ”主机操作系统170。
[0084]虚拟机172通过建立虚拟机172的模拟硬件174和运行虚拟机172的计算机系统100的实体硬件之间的对应来模拟硬件。(在一些实现中,模拟硬件设备被完全仿真,并且不对应于实体硬件设备。)例如,虚拟机可以通过将用于模拟处理器178的在客户操作系统176内部执行的指令翻译为计算机系统100的处理器110可执行的指令来模拟处理器。用另一个方式,将客户操作系统176执行为如同该客户操作系统176向模拟硬件174的模拟处理器178发布指令,但是虚拟机排列将要通过计算机系统100的实体处理器110真正执行的指令。客户操作系统176可以被设计为通过在模拟处理器178上运行而起作用,并且虚拟机172允许并且使能该客户操作系统176来使用实体处理器110执行操作。同时,虚拟机172可以防御主机操作系统170和计算机系统的实体硬件被侵入或损害,并且可以在变为理想的或必要的任何时间刷新运行虚拟机172的客户操作系统176。
[0085]在一些例子中,虚拟机172为客户操作系统176分配存储器120的一部分122。客户操作系统176使用分配的存储器的该部分122,如同分配的存储器是虚拟机172呈现的模拟计算机系统上的全部并且是唯一的可用存储器。例如,虚拟机172可以维护客户操作系统176使用的模拟存储器地址并且将该模拟存储器地址转化为对应的分配给虚拟机172的存储器120的部分122的实际存储器地址。不可以通过客户操作系统176访问未分配给虚拟机172的存储器120的另一个部分124。因此,在虚拟机172上运行的任何程序(包括客户操作系统176)不能破坏未分配给虚拟机172的存储器中存储的任何东西。
[0086]组成主机操作系统170和客户操作系统176的可执行编码可以被存储在存储设备130上,并且被加载到存储器120中,并且可以在计算机系统100的运行期间被执行。在一些例子中,在存储设备130中或存储器120中存在的可执行编码可以来源于操作系统的磁盘映像132,134。磁盘映像例如是如同磁盘映像是诸如存储设备130的实体设备、可以在计算机系统100被安装和卸下的逻辑存储设备的表现。磁盘映像的一个示例类型被称为ISO映像。在一些例子中,磁盘映像可以是可重写的,并且在一些例子中,磁盘映像可以是只读的。在一些实现中,磁盘映像包含安置多个其他程序的程序。在一些实现中,磁盘映像可以是那些的两个或多个的组合。
[0087]例如,主机操作系统磁盘映像132可以包含安装主机操作系统170的可执行编码的程序,例如,将主机操作系统170可执行编码放置在计算机系统100的存储设备130上。在一些例子中,主机操作系统磁盘映像132可以被用于将主机操作系统170的可执行编码直接放置在计算机系统100的存储器120中,使得在存储设备130上没有可执行编码需要被存储或访问。在一些实现中,磁盘映像132包含准备好要在计算机系统100上执行的一个版本的主机操作系统170,一次加载到存储器120中,这样使得不需要安装程序。
[0088]在一些实现中,可以通过一个或多个分离的存储设备提供存储设备130,并且还可以包括基于网络的数据存储,其中将数据存储在与计算机系统100分离的计算机系统中。在一些实现中,映像可以是存在于一个或多个文件系统中的一个或多个文件,或者也可以是归档文件,例如公知的ZIP和TAR格式。
[0089]例如,我们提到“安装”操作系统,这可以包括例如将磁盘映像复制到存储器中的动作,例如将磁盘映像132复制到存储器120中。在一些例子中,主机操作系统170可以被一次性安置在计算机系统100上,并且保留在存储设备130上以便从存储器120通过计算机系统100多次连续使用,例如,对计算机系统100多次加电。在一些例子中,主机操作系统170仅仅被安装用于计算机系统100的单次使用,并且在每一次计算机系统100通电时,从主机操作系统磁盘映像132重新安装主机操作系统170。在一些实现中,可以从主机操作系统磁盘映像132将主机操作系统170重新安装到存储设备130并且随后安装到存储器120中。在一些实现中,可以将主机操作系统磁盘映像132直接复制到存储器120中。
[0090]我们使用术语“单次使用”来包括例如响应于计算机系统100通电的单次实例而单次安装操作系统。每一次对计算机系统通电,或重新启动(有时称为重新启动),就发生计算机系统的单次使用和操作系统的单次安装。在一些例子中,主机操作系统磁盘映像132包含在主机操作系统170上运行的软件应用的可执行编码,例如虚拟机172的可执行编码。因为相同的磁盘映像132可以被使用多次,所以有时将可再用并且在安装或变化之间几乎不变化的磁盘映像132称为主映像。在一些例子中,在不同的设备当中,主映像是便携式的。例如,使用在计算机系统100上的主映像可以被复制并且用另一个计算机系统使用。相同的主映像可以被使用在许多不同的计算机系统上,条件是可以在每个计算机系统上运行该操作系统。
[0091]客户操作系统磁盘映像134可以包含安装客户操作系统176的可执行编码的程序,用于单次使用或多次使用计算机系统100。可以从磁盘映像134将客户操作系统176安装在虚拟机172上,这样使得客户操作系统176在虚拟机172上运行。在一些例子中,客户操作系统磁盘映像134可以被用于将客户操作系统176的可执行编码放置在计算机系统100的存储器120中,使得在存储设备130上没有可执行编
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1