一种基于可扩展固件接口的操作系统切换方法

文档序号:6469597阅读:151来源:国知局
专利名称:一种基于可扩展固件接口的操作系统切换方法
技术领域
本发明涉及一种操作系统切换方法,尤其涉及一种通过超级操作系统通过网 络在一台计算机中的多个操作系统之间进行切换的方法。
背景技术
传统的操作系统期望控制所有的计算机系统资源。因此,每个操作系统下的 文件系统只能将系统资源作为自身独有的资源来操控。这就阻止了其它操作系统的 载入并进行独立于当前操作系统的操作。只有能与该操作系统相匹配的媒介才能被 远程调用,这些媒介功能受到了当前操作系统所能提供的限制,而本发明可以克服 这一局限性。
本申请若与超级或者高一级的操作系统一起使用时特别有用。超级操作系统,
例如在美国专利申请案09/285, 147所描述的闪存虚拟操作系统,利用虚拟化计算 机系统资源,解决了操作系统独霸内存的问题,这样多个操作系统就能在同一台计 算机上进行操作。
通过互联网或者类似的远程通信系统监控目标计算机的操作系统允许计算机 用户管理和操作其它计算机和操作系统以及它们的资源和用户。这就使用户可以无 需到目标计算机的现场工作。监控远程计算机上的多个操作系统可使用户能从更多 的操作系统中运行更广泛的应用程序中获利。
另外,如果运行期操作系统的主启动块或一个二级存储物理设备的某个文件 系统被破坏,那么这个操作系统就无法使用了。而通过进入一个超级操作系统的媒 介,用户就可以命令计算机切换到另一个操作系统中去,它既可以是拷贝的运行期 操作系统,也可以是一个新的操作系统。通过设置新的启动块和/或新的文件系统, 用户就可以有选择地保存或恢复目标电脑上的操作系统。
与本发明相关的,美国专利申请09/285, 147描述了闪存虚拟超级操作系统 (S0S) 09/285, 147和09/376, 825描述了保护性分区及虚拟化。美国专利申请09/409, 013描述了闪存虚拟超级操作系统的用户图像截面,而09/517, 545则描 述了通过超级操作系统上传和下载操作系统。
目前计算机用户特别是互联网用户是通过运行期操作系统上的一套"家长控 制"功能的软件来监测计算机的。然而,许多儿童用户知道这些功能并比他们的父 母更懂得如何使用和禁用,因而这些监测功能往往没有多大的效果。不过超级操作 系统可以设置监测和捕捉键盘、音频和视频的输入/输出活动,并报告给另一个操 作系统(通过共享存储和电子邮件等),提供一个更简单和更有效的监督方法来防 止或报告未经许可的活动。
闪存虚拟超级操作系统可通过捕获运行期操作系统上的应用程序的所有输入 输出记录并传输到另一个操作系统。这将使一些电子商务中的争议可通过一个独立 方所出示的事实数据来解决,而不是目前主要依赖卖主或客户的在线交易数据。
目前对于一个网络客户或网络中的远程管理来说,主要的生产厂商只安装了 -个操作系统。典型的情况是公司为统一的网络管理而选择一个流行的操作系统。 一台计算机只有一个操作系统的局限性促使很多用户舍弃其它操作系统的特殊价 值和优势。因此提供一个可以在任何个人计算机上设置通过互联网或其它网络监测 和控制的多操作系统的计划,对现有技术来说也是有益的。
在过去的二十多年里,计算机技术的所有硬件方面都已有了显著的进展,但 是操作系统产业很少有新的进展,至少部分原因在于网络环境中每个计算机系统只 有一个操作系统的局限性。因此,在当地或远程的电脑上,如果能简化在运行期操 作系统间的监测、控制和切换,则能够加强和增进软件的进步。

发明内容
本发明的目的在于解决上述问题,提供了一种计算机操作系统切换方法,为 一个或多个用户从本地或远程对含有一个或多个操作系统的计算机进行监测和控 制提供了基础,还为其它的超级操作系统服务如创建操作分区以及多个操作系统共 存提供了技术实现的基础。
本发明的技术方案为本发明揭示了一种基于可扩展固件接口的操作系统切 换方法,在一台计算机的多个操作系统中进行切换,该方法包括-
启动可扩展固件接口,然后启动一个第一操作系统;悬挂该计算机的当前操作; 存储第一操作系统至二级存储设备;
回到可扩展固件接口服务状态,载入相应的全球唯一标识分区表;
从二级存储设备获取第二操作系统;
恢复该计算机被悬挂的操作。
上述的基于可扩展固件接口的操作系统切换方法,其中,该第一操作系统和 该第二操作系统是不同的操作系统。
上述的基于可扩展固件接口的操作系统切换方法,其中,该第一操作系统和 该第二操作系统是相对独立的,无主客之分的操作系统。
上述的基于可扩展固件接口的操作系统切换方法,其中,由本地或远程超级 计算机控制该计算机的多个操作系统之间的切换。
上述的基于可扩展固件接口的操作系统切换方法,其中,由本地或远程超级 计算机控制该计算机的多个操作系统之间的切换可以通过EFI或任何一个运行期 操作系统。
本发明还揭示了一种操作系统切换方法,在一台计算机的多个操作系统中进 行切换,其特征在于,该方法包括
悬挂该计算机的运行期操作系统至ACPI S4的休眠状态; 将该运行期操作系统放置在非易失性存储器中; 从该非易失性存储器的分区中选择第二操作系统; 唤醒该第二操作系统至ACPI GO的工作状态。
上述的操作系统切换方法,其中,由超级操作系统控制操作系统之间的切换, 该超级操作系统包括虚拟全球唯一标识分区表,该虚拟全球唯一标识分区表包含该 运行期操作系统和该第二操作系统的悬挂和唤醒信息。
本发明对比现有技术有如下的有益效果本发明通过使用运行期操作系统的 ACPI休眠机制,通过悬挂系统使用来切换操作系统,把系统资源的控制权交给下 一个操作系统,并通过还原而不是冷启动来切换到处于悬挂状态的操作系统。对比 现有技术,本发明实现在同一计算机的多个操作系统之间任意而快速的自由切换。


图1是闪存虚拟操作系统媒介和闪存虚拟操作系统服务器的关系示意图。 图2是本发明的同一计算机上不同操作系统之间切换方法的一个实施例的流 程图。
图3是本发明的同一计算机上不同操作系统之间切换方法的另一实施例的流 程图。
图4是传统的ACPI逻辑的状态示意图。
图5是超级操作系统控制运行期操作系统唤醒和休眠的示意图。 图6和图7是超级操作系统内存映射的示意图。
具体实施例方式
下面结合附图和实施例对本发明作进一步的描述。
本发明提供了从本地或远程的超级操作系统进行监测和控制。超级操作系统 的监测是通过不同的应用程序例如互联网浏览器来监督一个或更多个计算机和虚 拟环境的综合应用,并限制区域访问。超级操作系统的控制是通过操纵运行期操作 系统和应用程序来报告和控制一个或更多个计算机和虚拟环境,包括关机、重启、 恢复、在不同的操作系统之间的切换。
如图1所示,使用一个本地的程序(例如图1中的闪存虚拟操作系统服务器 10)和一个远程的监督程序(例如闪存虚拟操作系统媒介11),闪存虚拟操作系 统服务器10由自身或者由闪存虚拟操作系统媒介11发动控制目标计算机的操作。 如果是由服务器10自身发动的操作,媒介11仅在有需要远程提供程序、协议或其 它所要的信息时被启用。如果是由媒介ll发动的要切换操作系统的操作,媒介ll 将控制服务器io直接切换。
通过闪存虚拟操作系统媒介11和闪存虚拟操作系统服务器10之间的沟通, 可以在具有超级操作系统功能的计算机上通过因特网来监测一个或多个操作系统。 此处的因特网是本发明首选的电信系统,然而可以理解,本发明的电信系统包括但 不限于网络(专用局域网、宽带网等)和相似的有线和无线的数据通信系统。
超级操作系统是一个计算机系统的监督器,通过控制计算机的现有操作系统 上的所有功能管理所有的计算机和网络资源。超级操作系统调节并支持安装传统的 运行期操作系统和嵌入式应用程序。这样的超级操作系统可以是美国专利09/285, 147中揭示的闪存虚拟操作系统。
闪存虚拟操作系统媒介11在远程计算机上被启用,通过互联网与拥有闪存虚 拟操作系统服务器IO程序的目标计算机连接,值得注意的是,这里所指的闪存虚 拟操作系统服务器10只是计算机上用于操纵计算机上的本地程序。
全球唯一标识分区表(GPT, GUID Partition Table)是由Intel为了取代PC 传统分区表(MBR)而提出的分区表。GPT分区最大可达18ExaByte,每个磁盘可由 128个分区组成。而传统分区表(MBR)的分区最大可达2TB。而且每个磁盘只能由 4个主分区。如果将二级存储的GPT进行虚拟化,所有虚拟化存储的必要信息都被 储存在超级数据VGPT (Virtual GUID Partition Table)中。
闪存虚拟操作系统服务器10通过读取分享存储虚拟全球唯一标识分区表 VGPT)的当前拷贝,知道有哪些分区、操作系统和服务器程序是可用的。虚拟目录 包含了所有的系统虚拟化信息,具体的说包含了当前默认的操作系统序列号、在二 级存储设备中的不同的操作系统以及每个操作系统的相关信息,例如操作系统的开 始绝对逻辑地址和该操作系统启动块的开始绝对逻辑地址。
闪存虚拟操作系统媒介11发送信息和操作(包括操作系统和它们的启动路径) 到闪存虚拟操作系统服务器10,后者执行命令。从中可以看出,闪存虚拟操作系 统媒介11是为计算机上运行期操作系统裁制的一个程序,可以在操作系统下被激 活后运行。
闪存虚拟操作系统媒介ll捕获数据以提供给第三方记录系统。具体的说,在 得到目标计算机的闪存虚拟操作系统服务器10的授权后,闪存虚拟操作系统媒介 11捕获运行期操作系统中的应用程序的输入/输出数据,并能记录或传输这些数据 到其它系统。
通过互联网实现上述的监测和控制的基石是利用一个超级操作系统的存储设 备的虚拟化。一个物理二级存储设备例如硬盘或者闪存等,将被分成一组逻辑系统, 每组包含一个独立的操作系统。这些存储分区是被保护的存储区域,各个操作系统 不会混淆和交换数据,除非是用户特意要求的数据交换。所有虚拟化存储的必要信 息都被储存在虚拟GPT (VGPT)中。通过闪存虚拟操作系统服务器IO得到当前系 统的虚拟目录的拷贝,对于虚拟目录里的任何改变,例如运行期操作系统的切换, 将通过虚拟目录的服务请求传送至超级操作系统。当使用远程模式操作时,电脑用户的监督者首先运行闪存虚拟操作系统媒介 11,该媒介可以在EFI内运行,也可以在任何一个运行期操作系统内运行。该媒介 11通过至少一个网络进行沟通。首先查询要监测和控制的目标计算机存在与否, 如果所要的操作系统是存在的,闪存虚拟操作系统媒介11将告知目标计算机用户 该系统存在,并告知闪存虚拟操作系统服务器10取得当前虚拟目录的拷贝。虚拟 目录确定了当前默认的操作系统、在二级存储设备中的不同的操作系统和每个被存 储的操作系统的相关信息,包括操作系统的开始绝对逻辑地址和该操作系统启动块 的开始绝对逻辑地址。超级操作系统是一个虚拟操作系统(Virtual 0S),因而是 可以更改的。当前默认操作系统的相关信息可以被存储到虚拟操作系统的程序代码 中,以便虚拟操作系统自动启动默认操作系统直到默认被改变为止。用户可以通过 虚拟操作系统的设置命令像改变二级存储分区一样改变默认操作系统。如果有这样 的改变,在虚拟操作系统虚拟目录程序码中的虚拟目录和相关的默认操作系统将会 自动更新。无论在二级存储中的默认操作系统的实际位置是什么,被校正的地址序 列保证输入/输出功能需求的正确执行。
综上所述,计算机上操作系统的控制可以通过本地计算机用户或者是远程的 监督者来完成,其基本的操作程序是一样的。本地和远程控制的区别是许可方式的 不同,如果是本地控制,那么目标计算机用户只需请求操作系统间的切换;如果是 远程控制,目标计算机要给予一个监督计算机许可来控制操作系统间的切换。
下面详细论述同一计算机上的不同操作系统之间的切换过程。请参见图2,首 先进入步骤S100,启动可扩展固件接口 EFI,然后启动一个目标操作系统,即后面 所述的第一操作系统;再进入步骤S102,悬该计算机上的当前操作;然后进入步 骤S104,存储第一操作系统至二级存储设备;再进入步骤S106:回到可扩展固件 接口EFI服务状态,载入相应的GPT;再进入步骤S108,从二级存储设备中获取第 二操作系统;待切换完成后最后进入步骤SllO,恢复计算机被悬挂的操作。这里 的第一操作系统和第二操作系统是不同的操作系统,例如第一操作系统是windows 操作系统,而第二操作系统是Linux操作系统。正如上述的,这种不同操作系统之
间的切换,可以通过本地计算机用户直接发起,也可以由一个远程的超级计算机(监 督计算机或是称为远程的虚拟操作系统媒介)控制发起。
图3进一步示出了同一计算机上的不同操作系统之间的切换过程的另一实施例。请参见图3,首先进入步骤S200,悬该计算机的运行期操作系统至ACPI S4 的休眠状态;然后进入步骤S202,将运行期操作系统放置在非易失性存储器中; 再进入步骤S204,从非易失性存储器的分区中选择第二操作系统;待切换完成后 最后进入步骤S206,唤醒第二操作系统至ACPI GO的工作状态。这里的第一操作 系统和第二操作系统是不同的操作系统,例如第一操作系统是windows操作系统, 而第二操作系统是Linux操作系统。ACPI是由Intel、 Microsoft和Toshiba共同 开放的高级电源接口配置的电源管理规格。正如上述的,这种不同操作系统之间的 切换,可以通过本地计算机用户直接发起,也可以由一个远程的超级计算机(监督 计算机或是称为远程的虚拟操作系统媒介)控制发起。当由远程的超级操作系统控 制不同操作系统之间的切换时,超级操作系统包括虚拟目录,虚拟目录包含了运行 期操作系统和第二操作系统的悬挂和唤醒信息。
图4示出了传统的ACPI的特征,传统上的ACPI是操作系统用来关掉外围设 备来节省电源的。传统上,ACPI的SO状态是运行状态(Rim State),运行状态 下的计算机是完全运行的。ACPI的SI状态是悬挂状态(Suspend State),悬挂 状态下的CPU悬挂活动但仍然维持其内容。ACPI的S2和S3状态是休眠状态(Sle印 State),在这两个状态下,维持内存中的内容但是CPU内容会丢失,而S2和S3 之间的区别在于是通过固件(EFI)完成的CPU重新初始化还是设备重新初始化。 ACPI的S4是休眠状态,在这种状态下内存内容被存储到磁盘中,内容将通过返回 到S0状态而恢复,相当于硬件设备的软关机(Soft-off),这一状态可以通过操 作系统或固件(EFI)来实现。
本发明中的ACPI是用来切换到不同的操作系统并使当前操作系统进入ACPI S4的休眠状态。S4休眠状态由ACPI支持的一种低功耗的休眠状态。本发明实施了 操作系统启动ACPI的S4休眠状态,当操作系统启动ACPI的S4休眠,当前活动的 运行期操作系统负责保存所有的系统状态。在进入S4休眠状态前,操作系统保存 所有在内存中的系统状态。当从S4状态恢复后,新的和失踪的设备将被重新配置。
如图5所示,超级操作系统(即例如是前述的闪存虚拟操作系统)通过控制 计算机中当前运行的操作系统置于ACPIS4休眠状态,来悬挂当前的操作系统或其 它切换的软件。在此状态下,处理器不执行指示,内存状态也没有得到刷新'所有 的设备均处于ACPI D3 (设备关闭)状态。计算机由超级操作系统发出的命令从GO (SO)的工作状态过渡到Gl (S4)的休眠 状态。超级操作系统利用一个修改过的ACPI S4程序来实现,修改后的ACPI S4 程序的功能和传统的ACPI S4—样,不同的是在执行完S4命令后,计算机可以选 择关闭电源,也可以选择重新启动,这是由超级操作系统来控制的。如在用户要求 切换操作系统的情况下,计算机将在执行完S4命令后重新启动,并唤醒另一个处 于休眠期的操作系统。ACPI S4程序通过设置的ACPI S4字节和寄存器为计算机休 眠阶段做准备,把CPU、寄存器和RAM的状态保存到一个非易失性的休眠存储器 (NVS)中,如一个磁盘文件或分区,然后计算机进入S4休眠状态。
如图6所示,超级操作系统将运行期操作系统的系统内存及其协议和参数从 物理内存映射并保存到非易失性存储设备(NVS, Non-Volatile Sle印ing memory) 中。存储在NVS中的信息包括启动指令、ACPI表以及运行期操作系统悬挂(休眠)
所需的状态信息。将运行期操作系统放置到物理内存所需的物理内存地址被记录到 虚拟GPT (VGPT)中。虚拟GPT含有每个可启动的虚拟系统的必要信息,如操作系
统的启动分区、操作系统的休眠保存分区、寄存器的状态和其它悬挂和唤醒操作系 统的重要信息。这样的操作让计算机就像在ACPI的S4状态下一样。
如上所述的虚拟目录包含了虚拟存储系统的位置、地址和当前机箱的类型。 虚拟目录也包含了所有磁盘和存储设备(二级和主要存储设备)的信息,再加上当 前虚拟机的包含启动分区在内的各分区信息(物理磁盘上的文件系统和未用的空 间)。
如图7所示,为了激活一个新的操作系统,超级操作系统在包含新的操作系 统、ACPI表和其它运行操作系统所需的信息的物理存储器(非易失性存储器)上 选择分区。新的操作系统位于闪存虚拟操作系统服务器选择的虚拟目录的数据部 分。计算机从ACPI S4休眠状态中被唤醒,恢复到G0工作状态。计算机因而不用 重新启动新的操作系统,因为它只不过是唤醒的该操作系统而已(恢复到以前的运 行状态)。
操作系统切换可以通过闪存虚拟操作系统服务器或者闪存虚拟操作系统媒介 的命令完成。如果请求来自本地的闪存虚拟操作系统服务器,所有的切换操作系统 的命令由闪存虚拟操作系统服务器执行。如果请求来自闪存虚拟操作系统媒介,则 由媒介传送服务器操作命令来切换操作系统。目标计算机必须安装闪存虚拟操作系统服务器,并且由闪存虚拟操作系统媒介得到其许可来控制它的执行和操作。
本发明首选的实施例是操作系统之间的切换,相似地,任何软件包括嵌入式
应用程序也可以使用上文所述的S4休眠状态切换。
本发明的一个很有用的功能是通过互联网下载操作系统,通过下载新的操作
系统到一个被保护的物理设备分区。闪存虚拟操作系统服务器能使用新的操作系
统,并让当前运行期操作系统处于S4休眠状态。
上述实施例是提供给本领域普通技术人员来实现或使用本发明的,本领域普 通技术人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或 变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提 到的创新性特征的最大范围。
权利要求
1、一种基于可扩展固件接口的操作系统切换方法,在一台计算机的多个操作系统中进行切换,该方法包括启动可扩展固件接口,然后启动一个第一操作系统;悬挂该计算机的当前操作;存储第一操作系统至二级存储设备;回到可扩展固件接口服务状态,载入相应的全球唯一标识分区表;从二级存储设备获取第二操作系统;恢复该计算机被悬挂的操作。
2、 根据权利要求1所述的基于可扩展固件接口的操作系统切换方法,其特征 在于,该第一操作系统和该第二操作系统是不同的操作系统。
3、 根据权利要求1所述的基于可扩展固件接口的操作系统切换方法,其特征 在于,该第一操作系统和该第二操作系统是相对独立的,无主客之分的操作系统。
4、 根据权利要求1所述的基于可扩展固件接口的操作系统切换方法,其特征 在于,由本地或远程超级计算机控制该计算机的多个操作系统之间的切换。
5、 根据权利要求4所述的基于可扩展固件接口的操作系统切换方法,其特征 在于,由本地或远程超级计算机控制该计算机的多个操作系统之间的切换可以通过 EFI或任何一个运行期操作系统。
6、 一种操作系统切换方法,在一台计算机的多个操作系统中进行切换,其特 征在于,该方法包括悬挂该计算机的运行期操作系统至ACPI S4的休眠状态; 将该运行期操作系统放置在非易失性存储器中; 从该非易失性存储器的分区中选择第二操作系统;-唤醒该第二操作系统至ACPI GO的工作状态。
7、根据权利要求6所述的操作系统切换方法,其特征在于,由超级操作系统 控制操作系统之间的切换,该超级操作系统包括虚拟全球唯一标识分区表,该虚拟 全球唯一标识分区表包含该运行期操作系统和该第二操作系统的悬挂和唤醒信息。
全文摘要
本发明公开了一种基于可扩展固件接口的操作系统切换方法,为一个或多个用户从本地或远程对含有一个或多个操作系统的计算机进行监测和控制提供了基础。其技术方案为方法包括启动可扩展固件接口,然后启动一个第一操作系统;悬挂计算机的当前操作;存储第一操作系统至二级存储设备;回到可扩展固件接口服务状态,载入相应的全球唯一标识分区表;从二级存储设备获取第二操作系统;恢复计算机被悬挂的操作。本发明应用于计算机操作系统领域。
文档编号G06F9/46GK101419560SQ20081020408
公开日2009年4月29日 申请日期2008年12月5日 优先权日2008年12月5日
发明者柯若石, 英 胡 申请人:苏州壹世通科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1