用于便携运行的操作系统的系统和方法
技术领域
总的来说,本发明涉及一种用于在多个计算机系统上使用一个便携运行的操作系统(portable running operating system)的系统和方法。具体地说,本发明涉及一种用于加载、执行和从可拆卸模块向多个计算机系统适配操作系统的运行映像的系统和方法。
背景技术
许多计算机用户拥有多个计算机系统和/或其他计算设备。用户可能拥有例如家用台式计算机、办公用台式计算机、便携式膝上型计算机。另外,用户可能拥有袖珍计算设备,诸如个人数字助理和移动电话。
对于用户拥有的每个计算机系统和设备,用户必须购买独立的操作系统许可证。例如,用户必须购买用于台式个人计算机的Windows操作系统许可证和用于个人数据助理的Palm操作系统。通常,操作系统的许可证包括在系统的价格内。即使对于可以使用相同操作系统的多个计算机系统,用户也必须购买独立的操作系统。例如,用户必须对台式和膝上型个人计算机独立地许可Windows操作系统,即使这些计算机不同时使用也是如此。
除了与拥有多个操作系统相关联的成本之外,用户必须独立地维护和更新每个操作系统。例如,如果可以进行对Windows操作系统的更新并且用户正在台式和膝上型个人计算机上运行Windows,则用户必须从膝上型和台式计算机中独立地执行Windows更新实用程序。如果用户希望安装特定的Windows桌面主题,则用户必须在台式和膝上型上都要安装桌面主题。如果用户希望安装和使用某个打印机,则用户必须在台式和膝上型上都要安装打印机驱动器。如果用户希望存储喜好网站的列表,则用户必须在台式和膝上型上都要如此进行。
因此,所需要的是下述这样一种系统和方法:它们可以向用户提供购买单一许可证和在多个计算机系统上运行单一操作系统的方式。所述系统和方法应当向用户提供仅仅更新和维护单一操作系统的能力,然后向用户提供在多个计算机系统之一上运行单一操作系统的能力。
发明内容
已经发现,上述的挑战可以通过这样一种方法和系统来解决,所述方法和系统在可拆卸模块上提供操作系统的运行映像,用户可以将所述可拆卸模块插入多个计算机系统之一中。
一种可拆卸操作系统模块附加到适于接受可拆卸操作系统模块的计算机系统中。所述可拆卸操作系统模块包括用于将所述模块附加到所述计算机系统的接口和用于存储所述操作系统的运行映像的存储单元。所述存储单元可以是非易失性存储器,以便不需要用于存储的电源。
在向计算机系统插入可拆卸操作系统模块后,计算机系统的BIOS检测和识别所述可拆卸操作系统模块。然后,BIOS从所述可拆卸操作系统模块加载操作系统,并且启动操作系统的执行。在加载操作系统时,BIOS可以直接将操作系统的运行映像拷贝到RAM,或BIOS可以将所述模块的存储器地址映射到RAM地址以从所述模块运行操作系统,或BIOS可以将操作系统的映像从模块上的休眠保存状态恢复到RAM,或者可以进行上述的组合。
响应于用户的请求,BIOS可以从自可拆卸操作系统模块恢复的最后执行点启动操作系统的执行,或者BIOS可以重新启动操作系统的执行。
在执行后,操作系统从包含关于任何先前连接的本地和远程设备的信息的可拆卸操作系统模块中读取配置文件,然后发现可用的本地和远程设备。操作系统相应地更新所述配置文件。
所述操作系统也可以从包含关于在最后拆卸可拆卸操作系统模块时运行的应用程序的信息的可拆卸操作系统模块中读取配置文件。然后,操作系统可以启动任何可用的这样的应用程序的执行,并且按照从配置文件读取的信息来将这些应用程序设置为其先前的状态。
初始化后操作系统继续执行由用户和运行的应用程序请求的其他任务。
响应于用户的移出请求,执行移出应用程序,并且从计算机系统移出可拆卸操作系统模块。所述移出应用程序暂停执行所述操作系统,然后将操作系统的当前状态保存到可拆卸操作系统模块上。
以上是概要,必然包括简化、概括和细节的省略。因此,本领域普通技术人员将明白,所述概要仅仅是说明性的,而意味着是任何方式的限制。本发明的其他方面、发明特征和优点--由权利要求唯一地限定--将在下面给出的非限定性详细说明中变得显然。
附图说明
本领域普通技术人员通过参考附图可以更好地理解本发明,并且可以明白本发明的众多目的、特征和优点。不同附图中采用的相同标记表示相似或相同的部件。
图1是显示可以在两个计算机系统之间互换的操作系统模块的方框图;
图2是显示适于接受包含CPU和非易失性存储器的模块的计算机系统的方框图,其中所述非易失性存储器存储操作系统的运行映像(runing image);
图3是显示适于接受包含非易失性存储器的模块的计算机系统的方框图,其中所述非易失性存储器存储操作系统的运行映像;
图4是显示当操作系统模块插入和不插入计算机系统时,该计算机系统状态的方框图;
图5是显示把操作系统模块插入和从计算机系统移出的处理的流程图;
图6是显示BIOS检测可拆卸操作系统模块、加载操作系统以及把控制传给操作系统的处理的流程图;
图7是显示发现连接到计算机系统的本地设备的处理的流程图;
图8是显示发现可由计算机系统访问的远程设备的处理的流程图;
图9是显示对计算机系统上执行的应用进行启动的处理的流程图;
图10是显示加载操作系统后,管理该操作系统的处理的流程图;
图11是显示在移出模块之前,在可拆卸操作系统模块上保存操作系统状态的处理的流程图;
图12是显示当操作系统/应用模块插入和不插入计算机系统时,该计算机系统状态的方框图;
图13是显示把操作系统/应用模块插入和从计算机系统移出的处理的流程图;
图14是显示对计算机系统上执行的本地应用进行启动的处理的流程图;
图15是显示对计算机系统上执行的模块(模块存储的)应用进行启动的处理的流程图;
图16是显示在模块移去之前,在可拆卸操作系统/应用模块上保存模块应用的处理的流程图;
图17是显示在模块移去之前,在可拆卸操作系统/应用模块上保存应用状态的处理的流程图;
图18是显示当CPU模块插入和不插入计算机系统时,该计算机系统状态的方框图;
图19是显示把可拆卸CPU模块插入和从计算机系统移出的处理的流程图;
图20是显示BIOS检测可拆卸CPU模块、并确定模块上的CPU以及计算机系统的兼容性的处理的流程图;
图21是显示BIOS加载操作系统并利用CPU开始运行操作系统的处理的流程图;
图22是显示当CPU模块(包含第二CPU)插入和不插入计算机系统时,该计算机系统状态的方框图;
图23是显示把可拆卸CPU模块插入和移出包含内置CPU的计算机系统的处理的流程图;
图24是显示操作系统访问第二CPU并把负荷部分分配给辅助CPU的处理的流程图;
图25是显示当操作系统/CPU模块插入和不插入计算机系统时,该计算机系统状态的方框图;
图26是显示把可拆卸操作系统/CPU模块插入和从计算机系统移出的处理的流程图;
图27是BIOS检测可拆卸操作系统/CPU模块、确定模块上的CPU和操作系统与计算机系统的兼容性的处理的流程图;
图28是显示一个装置连接到计算机系统以及把设备驱动器从该设备的非易失性存储器传送到计算机系统的方框图。
图29是显示把设备连接到计算机系统并把设备驱动器从该设备的非易失性存储器转送到计算机系统的处理的流程图;
图30是显示计算机系统与远程设备驱动器注册服务器以诸如XML的可移植语言进行通信,以便获得关于服务器上存储的设备的设备驱动器的信息的方框图;
图31是显示计算机系统与远程设备驱动器注册服务器以诸如XML的可移植语言进行通信,以便获得关于服务器上存储的设备的设备驱动器的信息的处理流程图;
图32是显示在计算机系统与远程业务/设备之间建立通信的处理流程图;
图33是显示可拆卸操作系统模块的方框图,其中所述模块包含防止未授权访问设备的安全装置;
图34是显示使用模块上的安全装置防止未授权访问可拆卸操作系统模块的处理流程图;
图35是利用模块的指纹扫描仪保护可拆卸操作系统模块的处理流程图;
图36是利用模块的眼视网膜扫描仪保护可拆卸操作系统模块的处理流程图;
图37是利用键入口令的模块的小键盘保护可拆卸操作系统模块的处理流程图;
图38是利用用户通过计算机系统提供的安全数据防止未授权访问可拆卸操作系统模块的处理流程图;
图39是显示可拆卸模块的制造/编程的方框图;
图40是显示制造和编程操作系统模块的处理流程图;
图41是显示用户利用运行操作系统安装文件编程一个操作系统模块的处理流程图;
图42是显示用户利用运行操作系统更新安装文件更新操作系统模块的处理流程图;
图43是显示具有模块接口的个人计算机的方框图;
图44是显示制造个人计算机的处理流程图,该个人计算机具有模块接口和连接到模块接口的具不同配置选项的模块。
图45是显示在计算机系统和/或模块上加载操作系统的处理流程图;
图46是显示在计算机系统和/或模块上安装应用程序的处理流程图;
图47是显示把CPU安装到计算机系统和/或模块上的处理流程图;以及
图48是显示信息处理系统的方框图,其中所述信息处理系统是能够执行这里所述的操作的计算机系统的简化实例。
具体实施方式
以下描述用来提供对本发明的实例的详细说明,而不应当用来限制本发明。相反,本发明任何数量的改变都可能落入紧随说明书的权利要求所限定的本发明的范围之内。
图1是显示可以在两个计算机系统之间互换的操作系统模块的方框图。计算机系统110包括:BIOS 115,在加载操作系统之前,用于执行计算机系统110的基本输入/输出;非易失性存储器120,存储安装到计算机系统上的应用程序、用户的设置等;和存储器125,用作计算机系统操作期间的临时存储器。这里所涉及的BIOS还可以包括上电自检(POST)。计算机系统110还包括附加设备130(比如打印机),该附加设备130包括设备的设备驱动器135。设备驱动器135被安装到计算机系统110上,以便于计算机系统110与附加设置130之间的通信。当附加设备130连接到计算机系统110时,附加装置130可以向计算机系统110提供设备驱动器135,所以,用户不需要从不同源获得用于附加设备130的设备驱动器。
计算机系统110还包括可拆卸操作系统模块接口137,它可以接受诸如可拆卸操作系统模块180的可拆卸操作系统模块。可拆卸操作系统模块180包括非易失性存储器185和操作系统运行映像190。当把可拆卸操作系统模块180插入可拆卸操作系统模块接口137时,BIOS 115检测可拆卸操作系统模块180,并把操作系统运行映像从可拆卸操作系统模块180加载到存储器单元125。BIOS 115随后启动计算机系统110的操作系统的运行。被加载的操作系统操作和控制计算机系统110,并在非易失性存储器120、存储器单元125、BIOS 115与附加设备140之间提供一个接口。
同样,计算机系统140包括:BIOS 145,用于在加载操作系统之前执行计算机系统140的基本输入/输出;非易失性存储器160,存储安装到计算机系统上的应用程序、用户的设置等;和存储器165,用作计算机系统操作期间的临时存储器。计算机系统110还包括附加设备170(比如打印机),该附加设备170包括设备的设备驱动器175。设备驱动器175被安装到计算机系统140上,以便于计算机系统140与附加设置170之间的通信。当附加设备170连接到计算机系统140时,附加装置170可以向计算机系统140提供设备驱动器175,所以,用户不需要从不同源获得用于附加设备170的设备驱动器。计算机系统140还包括可拆卸操作系统模块接口177,它可以接受诸如可拆卸操作系统模块180之类的可拆卸操作系统模块。
可拆卸操作系统模块180可以从计算机系统110中拆除,并随之将其插入计算机系统140,利用该模块上的操作系统能够运行并控制整个计算机系统。一旦把可拆卸操作系统模块180插入可拆卸操作系统模块接口177,BIOS145就检测可拆卸操作系统模块180并把操作系统运行映像从可拆卸操作系统模块180加载到存储单元165。BIOS 115随后以计算机系统110的非常相似的方式启动计算机系统140上的操作系统的执行。被加载的操作系统现在可以操作和控制计算机系统140,并提供非易失性存储器160、存储器165、BIOS 145与附加设备170之间的接口。
图2是显示适于接受模块的计算机系统的方框图,其中所述模块包含存储操作系统的和运行映像的CPU和非易失性存储器。操作系统的运行映像是包含已启动并且正在运行的操作系统的存储器瞬像,所述正在运行的操作系统包括正在执行的操作系统作业。
计算机系统201包括设于可拆卸模块290上的CPU 294。可拆卸模块290还包括非易失性RAM 292,可以拆卸该模块290并将其重新插入计算机系统201。可拆卸模块290连接主机总线202,主机总线202将可拆卸模块290连接到计算机系统201。非易失性存储器292包含操作系统运行映像294,当可拆卸模块290插入计算机系统201时被加载并开始执行,以操作和控制计算机系统201。
二级(level two)(L2)高速缓冲存储器204也连接主机总线202。主机-PCI桥206连接主存储器208,主机-PCI桥206包括高速缓冲存储器和主存储器控制功能并提供总线控制,以处理PCI总线210、处理器200、L2高速缓冲存储器204、主存储器208和主机总线202之间的传输。主存储器208连接主机-PCI桥206以及主机总线202。仅由CPU 294使用的设备(比如LAN卡230)连接到PCI总线210。业务处理器接口和ISA接入通道212提供PCI总线210与PCI总线214之间的接口。如此,将PCI总线214与PCI总线210隔离。诸如闪存218之类的装置连接到PCI总线214。在一个实施例中,闪存218包含BIOS码,该BIOS码合并用于各种低级系统功能和系统引导功能的必要处理器可执行码。
PCI总线214提供用于各种设备的接口,所述设备被CPU 294和包含例如闪存218的业务处理器216共用。PCI-ISA桥235提供总线控制,以处理PCI总线214与ISA总线240之间的传输、通用串行总线(USB)功能性245、功率管理功能性255,并且PCI-ISA桥235可以包括未显示的其它功能组件,比如实时时钟(RTC)、DMA控制、中断支持和系统管理总线支持。非易失性RAM 220连接到ISA总线240。业务处理器216包括JTAG和I2C总线222,用于在启动步骤期间与CPU 294通信。JTAG/I2C总线222还连接到L2高速缓冲存储器204、主机-PCI桥206和主存储器208,提供处理器、业务处理器、L2高速缓冲存储器、主机-PCI桥和主存储器之间的通信路径。业务处理器216还访问降低信息处理装置201功率的系统功率资源。
外围设备和输入/输出(I/O)设备可以连接各种接口(例如,连接到ISA总线240的并行接口262、串行接口264、键盘接口268和鼠标接口270)。作为选择,附属于ISA总线240的超I/O控制器(未示出)可以接纳许多I/O设备。
为了把计算机系统201附属到另一个计算机系统以在网络上拷贝文件,LAN卡230被连接到PCI总线210。同样,为了利用电话线连接把计算机系统201连接到ISP并由此连接到互联网,调制解调器275连接串行端口264和PCI-ISA桥235。
图3是显示适于接受包含非易失性存储器的模块的计算机系统的方框图,其中所述存储器存储操作系统的运行映像。计算机系统301包括连接主机总线302的处理器300。包括非易失性RAM 392的可拆卸模块390可以移出和重新插入计算机系统301。可拆卸模块390连接主机总线302,主机总线302将可拆卸模块390连接到计算机系统301。非易失性存储器392包含操作系统运行映像394,当可拆卸模块390插入计算机系统301时被加载并开始执行,以操作和控制计算机系统301。
二级(level two)(L2)高速缓冲存储器304也连接主机总线302。主机-PCI桥306连接主存储器308,主机-PCI桥306包括高速缓冲存储器和主存储器控制功能并提供总线控制,以处理PCI总线310、处理器300、L2高速缓冲存储器304、主存储器308和主机总线302之间的传输。主存储器308连接主机-PCI桥306以及主机总线302。仅由主机处理器300使用的设备(比如LAN卡330)连接到PCI总线310。业务处理器接口和ISA接入通道312提供PCI总线310与PCI总线314之间的接口。如此,将PCI总线314与PCI总线310隔离。诸如闪存318的装置连接到PCI总线314。在一个实施例中,闪存318包含BIOS码,该BIOS码合并用于各种低级系统功能和系统引导功能的必要处理器可执行码。
PCI总线314提供用于各种设备的接口,所述设备被主机处理器300和包含例如闪存318的业务处理器316共用。PCI-ISA桥335提供总线控制,以处理PCI总线314与ISA总线340之间的传输、通用串行总线(USB)功能性345、功率管理功能性355,并且PCI-ISA桥335可以包括未显示的其它功能组件,比如实时时钟(RTC)、DMA控制、中断支持和系统管理总线支持。非易失性RAM 320连接到ISA总线340。业务处理器316包括JTAG和I2C总线322,用于在启动步骤期间与处理器300通信。JTAG/I2C总线322还连接到L2高速缓冲存储器304、主机-PCI桥306和主存储器308,提供处理器、业务处理器、L2高速缓冲存储器、主机-PCI桥和主存储器之间的通信路径。业务处理器316还访问降低信息处理装置301功率的系统功率资源。
外围设备和输入/输出(I/O)设备可以连接各种接口(例如,连接到ISA总线340的并行接口362、串行接口364、键盘接口368和鼠标接口370)。作为选择,附属到ISA总线340的超I/O控制器(未示出)可以提供许多I/O设备。
为了把计算机系统301附属到另一个计算机系统以在网络上拷贝文件,LAN卡330被连接到PCI总线310。同样,为了利用电话线连接把计算机系统301连接到ISP并由此连接到互联网,调制解调器375连接串行端口364和PCI-ISA桥335。
图4是显示操作系统模块插入和不插入计算机系统时,该计算机系统的状态的方框图。计算机系统410包括:BIOS 428,在操作系统运行之前执行基本输入/输出功能;CPU 430,处理用于运行和控制计算机系统410的指令;非易失性存储器434,存储已安装的应用、用户设置等;RAM 412,在计算机系统410进行操作的同时进行临时存储。
此外,计算机系统410包括能够接受可拆卸操作系统模块424的可拆卸操作系统模块接口425。可拆卸操作系统模块424包括非易失性存储器中的操作系统运行映像426。
当把可拆卸操作系统模块424插入可拆卸操作系统模块接口425时,BIOS 428将操作系统运行映像426从可拆卸操作系统模块424的非易失性存储器加载到RAM 412(操作系统RAM 414)并启动操作系统的执行。
接着,操作系统从非易失性存储器434加载连接到计算机系统410的任何外部设备所需的装置驱动器(设备驱动器RAM 416),输入/输出配置(I/O配置RAM 418)和任何所需的应用(应用RAM 420)。
当从计算机系统410移出可拆卸操作系统模块424时,就倒转加载处理。在可拆卸操作系统模块424上更新操作系统的当前状态,在非易失性存储器434上更新应用信息、I/O配置和设备驱动器。一旦可拆卸操作系统模块移去,就可以将其插入另一个兼容计算机系统中,使该模块的操作系统可以控制和操作其它计算机系统。
图5是显示可拆卸操作系统模块插入和移出计算机系统的处理流程图。处理开始于步骤500,在步骤510,用户把可拆卸操作系统模块插入适于接受该模块的计算机系统。可拆卸操作系统模块包含操作系统的运行映像,该运行映像被存储在模块的非易失性存储器上。在步骤515,计算机系统的BIOS检测插入时的可拆卸操作系统模块,并将操作系统从模块的非易失性存储器加载到计算机系统的RAM。在操作系统结束加载之后,BIOS启动操作系统的执行,然后将控制传送到操作系统。图6的流程图提供了在步骤515发生的处理的进一步细节。
在步骤520,操作系统发现连接该计算机的本地设备。在可拆卸操作系统模块从该计算机系统移动到目前发现的设备之前,操作系统比较包含该设备的列表,从而更新设备的列表。图7的流程图提供发生在步骤520上的处理的进一步细节。
在步骤525,操作系统发现可由计算机系统访问或者可由正在使用不同计算机系统的用户访问的任何远程设备。图8的流程图提供了发生在步骤525上的处理的进一步细节。图9的流程图提供了发生在步骤530上的处理的进一步细节。
在步骤530,在从计算机系统最后移出可拆卸操作系统模块之前,操作系统启动休眠或者暂停的应用程序。
在步骤535,操作系统管理计算机系统。操作系统执行用户请求或者运行的应用请求的作业。图10的流程图提供了发生在步骤535上的处理的进一步细节。
然后在判决步骤540,确定用户是否已经请求移出可拆卸操作系统模块。如果用户还没有请求移出可拆卸操作系统模块,则判决步骤540转移到“否”分支550,并返回到步骤535,操作系统在此步骤中继续执行任何所请求的作业。
如果用户已经请求移出可拆卸操作系统模块,则判决步骤540转移到“是”分支545,并在步骤555继续进行处理,在此将操作系统的状态保存在可拆卸操作系统模块上。图11的流程图提供了发生在步骤555上的处理的进一步细节。
在步骤560,当移出可拆卸操作系统模块的所有准备已经被执行之后,将“移出模块是安全的”通知给用户,并且在步骤565,用户移出可拆卸操作系统模块。处理在步骤599结束。
图6是显示BIOS检测可拆卸操作系统模块、加载操作系统以及把控制传送到操作系统的处理流程图。处理开始于步骤600,在步骤610,BISO检测已插入的可拆卸操作系统模块。可拆卸操作系统模块例如可以包括即插即用型功能,以便向计算机系统提供该模块的初始信息。
在步骤615,BIOS将操作系统的运行映像从可拆卸操作系统模块加载到计算机系统的RAM。在加载操作系统过程中,BIOS可以把操作系统的运行映像直接拷贝到RAM中,或者BIOS可以将模块的存储器地址映射到RAM地址以运行来自模块的操作系统,或者BIOS将操作系统的映像从模块的休眠保存状态恢复到RAM,或者是以上的组合。为了在可拆卸操作系统模块与计算机系统的RAM上的存储器地址之间建立映射,可以例如通过以下方式分配基本地址:在插入模块时进行预定的自动分配,或者在RAM中保存用于操作系统的基本地址,或者利用硬件插脚检测和再定位。
在步骤620,BIOS提示用户是否通过有效地重新启动系统或者重新启动模块,来恢复操作系统的执行或者重新启动操作系统。在步骤625,接收用户输入。
然后在判决步骤630,确定用户是否已经选择重新启动操作系统。如果用户已经选择重新启动系统,则判决步骤630转移到“是”分支635,在步骤655,从模块获得用于操作系统的重新启动入口点。在模块的初始建立期间,或者当操作系统的状态在模块从计算机系统移出之前被保存在该模块中时,将操作系统重新启动入口点保存在该模块上。重新启动入口点代表重新启动处理的点,而不考虑在可拆卸操作系统模块最后移出之前,操作系统的在前状态。在步骤660,操作系统开始在重新启动入口点运行。然后处理于步骤699结束。
如果用户没有选择重新启动系统,而是选择恢复操作系统,则判决步骤630转移到“否”分支640,在步骤645,从模块中获得操作系统的恢复入口点。在模块从计算机系统中最后移出之前,操作系统恢复点被保存在模块上。恢复入口点代表当操作系统状态被保存在可拆卸操作系统模块前恰好停止的一个点。在步骤650,操作系统从恢复入口点开始运行。然后处理结束于步骤699。
图7是显示发现连接计算机系统的本地设备的处理流程图。处理开始于步骤700,在判决步骤710中确定本地设备驱动器配置文件是否存在于本地计算机系统的非易失性存储器上。如果设备驱动器配置文件不存在,则判决步骤710转移到“否”分支714,在步骤736建立本地驱动器配置文件。然后在判决步骤738继续进行处理。设备驱动器配置文件包含本地设备的列表,在计算机系统最后一次被休眠、暂停或者关闭之前,该本地设备被连接到计算机系统。该列表不一定反映设备的当前存在,因为自计算机系统最后一次操作以后可以增加新设备并且可以断开旧设备。
如果设备驱动器配置文件存在,则判决步骤710转移到“是”分支712,从本地计算机系统加载设备驱动器配置文件。在步骤718,从配置文件选择第一设备,并在判决步骤720确定所选择的设备当前是否被连接到计算机系统。如果该设备不可用,则判决步骤720转移到“否”分支722,由此在步骤726将所选择的设备从设备驱动器配置文件中删除。然后在判决步骤728继续处理。如果所选择的设备可用,则判决步骤720转移到“是”分支724,以跳过删除步骤。
在判决步骤728,确定更多的设备驱动器是否存在于需要检查的设备驱动器配置文件的列表中。如果更多个设备驱动器存在,则判决步骤728转移到“是”分支732,由此在步骤734选择下一个设备驱动器,于是处理返回到判决步骤720。如果设备驱动器配置文件中没有更多的设备驱动器,则判决步骤728转移到“否”分支730,在判决步骤738继续进行处理。
在判决步骤738,确定自计算机系统最后一次加电以来是否有任何新设备连接到该计算机系统。如果没有出现新设备,则判决步骤738转移到“否”分支740,不再更新设备驱动器配置文件,于是处理结束于步骤799。如果存在新设备,则判决步骤738转移到“是”分支742,在步骤746选择已发现的第一新设备。在步骤746,确定和加载与新近发现的设备对应的设备驱动器。所以更新操作系统的任何注册。此外,更新本地设备驱动器配置文件,使其包括新近发现的设备。
然后在判决步骤748确定更多新设备是否存在注册的需要。如果没有更多新设备存在,则判决步骤748转移到“否”分支750,于是处理结束于步骤799。如果更多新设备存在,则判决步骤748转移到“是”分支752,于是在步骤754选择下一个新设备,然后处理返回到步骤746,以便安装新设备和更新适当的文件。
图8是显示发现可由计算机系统访问的远程设备的处理流程图。处理开始于步骤800。在判决步骤810确定远程设备驱动器配置文件是否存在于本地计算机系统上。如果远程设备驱动器配置文件未存在于计算机系统上,则判决步骤810转移到“否”分支814,于是在判决步骤818继续进行处理。
如果远程驱动器配置文件存在于计算机系统上,则判决步骤810转移到“是”分支812,于是加载远程设备驱动器配置文件,以获得在计算机最后一次开机时,该计算机系统连接的远程设备的列表。
在判决步骤818,确定远程设备配置文件是否存在于可拆卸操作系统模块上。分离的远程设备驱动器配置文件可以保持在模块上,以用于由模块用户选用的远程设备。如果远程设备驱动器配置文件不存在,则判决步骤818转移到“否”分支820,于是在步骤826继续进行处理。如果远程设备驱动器配置文件存在,则判决步骤818转移到“是”分支822,在步骤824从模块加载远程设备驱动器配置文件。然后,处理前进到步骤826。
在步骤826,选择第一远程设备驱动器,在步骤828,连接远程设备驱动器注册服务器,以确定远程设备是否仍然可用。然后在判决步骤830确定设备是否可用。如果设备仍然不可用,则判决步骤830转移到“否”分支834,在判决步骤838继续进行处理。
如果设备仍然可用,则判决步骤830转移到“是”分支832,于是在步骤836接触远程设备驱动器注册服务器,以接收安装该设备的必要信息。图31的流程图提供了发生在步骤836上的处理的进一步细节。
然后在判决步骤838确定更多的设备是否存在检查的需要。如果更多设备不存在需要的检查,则判决步骤838转移到“否”分支840,于是处理结束于步骤899。如果更多设备存在需要的检查,则判决步骤838转移到“是”分支842,于是在步骤844选择新设备驱动器,然后返回到步骤828以检查所选择的驱动器。
图9是显示启动在计算机系统上执行的应用程序的处理流程图。在可拆卸操作系统模块从计算机系统最后一次移出时,存在正在计算机系统上执行并被休眠或者暂停的应用。处理开始于步骤900,在步骤910,操作系统从可拆卸操作系统模块中加载应用状态数据文件。应用状态数据文件包括诸如用户正在工作的文件的信息、编辑正在发生的文件的位置的信息等。
然后在判决步骤912确定更多应用是否存在恢复的需要。如果不存在需要恢复的应用,则判决步骤912转移到“否”分支916,于是处理结束于步骤912。如果需要恢复的应用存在,则判决步骤912转移到“是”分支914,于是在步骤918选择第一个这样的应用。
然后在判决步骤920确定所选择的应用是否可用于当前计算机系统。操作系统模块的用户可以执行在前计算机系统不可用或者当前计算机系统未安装的应用程序。如果应用程序不可用于当前计算机系统,则判决步骤920转移到“否”分支924,将应用的状态信息保持在应用状态数据文件上。保持该信息是为了在未来的计算机系统上能够自动恢复相应的应用程序。然后在判决步骤928继续进行处理。
如果应用程序可用于当前的计算机系统,则判决步骤920转移到“是”分支922,开始该应用的运行。在步骤934,操作系统保存运行应用程序的适当存储量,并且在步骤936,运行相应的可执行的应用程序。在步骤938,操作系统使用来自应用状态数据文件的数据,将应用恢复到模块的用户在前遗留的状态。例如,如果应用程序是Microsoft Word,则运行用户最后编辑的文件,编辑位置设置到最后编辑位置,工具栏配置设置到最后的工具栏配置等。然后在判决步骤928继续进行处理。
在判决步骤928,确定更多的应用程序是否需要恢复。如果没有更多的需要恢复的应用程序,则判决步骤928转移到“否”分支932,于是处理结束于步骤999。如果存在更多的需要恢复的应用程序,则判决步骤928转移到“是”分支930,于是在步骤940选择下一个应用程序,在步骤940选择下一个应用,其处理返回到判决步骤920以继续进行恢复处理。
图10是显示在加载操作系统之后管理操作系统的处理流程图。处理开始于步骤1000,在步骤1010,操作系统等候用户或者应用的作业请求。所请求的作业可以是例如打印、输入文本、显示图形、执行计算等。在判决步骤1015确定是否已经请求了作业。如果还没有请求作业,则判决步骤1015转移到“否”分支1025,于是处理返回到步骤1010,并且操作系统继续等候作业请求。
如果已经请求了作业,则判决步骤1015转移到“是”分支1020,于是在判决步骤1030确定是否已经加载了请求完成作业的可执行文件和其它文件。操作系统的某些部分可以不加载到RAM中,而是保留在可拆卸操作系统模块的非易失性存储器中。如果已经加载了所有必需文件,则判决步骤1030转移到“是”分支1035,于是在步骤1050继续进行处理。
如果未加载用于执行所请求作业的所有必要文件,则判决步骤1030转移到“否”分支1040,于是在步骤1045,从可拆卸操作系统模块的非易失性存储器加载剩余的所需文件。在步骤1050,操作系统执行所请求的作业。然后处理返回到步骤1010,操作系统在此步骤中继续等候另一个作业请求。
图11是显示模块移去之前在可拆卸操作系统模块上保存操作系统状态的处理流程图。处理开始于步骤1100,操作系统在此执行可拆卸操作系统模块移去应用。在判决步骤1115确定是否存储仍然执行的任何应用或处理。如果不存在更多的剩余执行的应用或者处理,则判决步骤1115转移到“否”分支1125,并在步骤1150继续进行处理。
如果存在仍然在执行的应用或者处理,则判决步骤1115转移到“是”分支1120,于是在步骤1130选择下一个执行的应用或者处理。在步骤1135,操作系统停止执行处理或者应用,并在步骤1140,把应用的或者处理的状态信息保存到可拆卸操作系统模块的应用状态信息数据文件中。如果该文件不存在,则建立一个新文件。例如,如果应用是Word,则保存最后编辑位置、工具栏配置等。在步骤1145,应用当前访问的任何文件的名称被保存在可拆卸操作系统模块上。当模块下一次被插入到计算机系统时,将在适当的编辑点用适当的应用打开适当的文件。
在步骤1150,操作系统的当前状态被保存在模块中。当该模块下一次被插入计算机系统时,将利用该信息重新启动操作系统。操作系统状态包括诸如桌面布置、快捷方式、配色方案和其它用户首选项的项目。
在步骤1155,确定最后的操作系统执行点,并将其作为“恢复”点保存在可拆卸操作系统模块上。当从可拆卸操作系统模块再次加载操作系统时可以使用该“恢复”点,并且与重新启动操作系统相反,用户从最后执行点选择恢复操作系统。
在步骤1160,远程设备驱动器的信息被保存在模块的远程设备驱动配置文件中。当可拆卸操作系统模块被下一次插入计算机系统时,可以利用该信息重新连接可用的远程设备。在步骤1165,还可以把任何其它非计算机系统特定数据(即仅与模块有关的数据)保存到可拆卸操作系统模块上。
图12是显示操作系统/应用模块插入和不插入计算机系统时,计算机系统状态的方框图。计算机系统1210包括:BIOS 1228,在操作系统运行之前执行基本输入/输出功能;CPU 1230,处理用于运行和控制计算机系统1210的指令;非易失性存储器1234,存储已安装的应用、用户设置等;RAM 1212,在计算机系统1210进行操作的同时进行临时存储。
此外,计算机系统1210包括能够接受可拆卸操作系统/应用模块1224的可拆卸操作系统/应用模块接口1225。可拆卸操作系统/应用模块1224包括非易失性存储器中的操作系统运行映像1226以及一个或多个应用的运行映像。
当把可拆卸操作系统/应用模块1224插入可拆卸操作系统/应用模块接口1225时,BIOS 1228将操作系统和应用运行映像1226从可拆卸操作系统/应用模块1224的非易失性存储器加载到RAM 1212(操作系统RAM 1214和应用RAM 1220)并启动操作系统的执行。执行的操作系统然后恢复已加载应用的运行。
接着,操作系统从非易失性存储器1234加载连接计算机系统1210的任何外部设备所需的装置驱动器(设备驱动器RAM 1216)、输入/输出配置(I/O配置RAM 1218)和任何所需的应用(应用RAM 1220)。除了模块1222以外,应用也可以驻留在非易失性存储器1230中。
当从计算机系统1210移出可拆卸操作系统模块1224时,就倒转加载处理。在可拆卸操作系统模块1224上更新操作系统和模块应用的当前状态,在非易失性存储器1234上更新本地应用、I/O配置和设备驱动器。一旦可拆卸操作系统/应用模块移去,就可以将其插入另一个兼容计算机系统中,使该模块的操作系统可以控制和操作其它计算机系统以及使模块的应用可以在其它计算机系统上运行。
图13是显示可拆卸操作系统/应用模块插入和移出计算机系统的处理流程图。处理开始于步骤1300,在步骤1310,用户把可拆卸操作系统/应用模块插入适于接受该模块的计算机系统。可拆卸操作系统/应用模块包含操作系统的运行映像以及一个或多个应用的运行映像,这些运行映像被存储在模块的非易失性存储器上。可拆卸操作系统/应用模块上的应用由于针对不同计算机系统的模块对每模块每应用仅需一个许可而受到青睐。此外,与在不同计算机上保存相同应用的多个拷贝相反,模块提供维护应用的中心点。
在步骤1312,计算机系统的BIOS检测插入时的可拆卸操作系统/应用模块,并将操作系统的运行映像从模块的非易失性存储器加载到计算机系统的RAM。在操作系统结束加载之后,BIOS启动操作系统的执行,然后将控制传送到操作系统。图6的流程图提供了在步骤1312发生的处理的进一步细节。
在步骤1314,操作系统发现连接该计算机的本地设备。在可拆卸操作系统模块从该计算机系统移动到目前发现的设备之前,操作系统比较包含该设备的列表,从而更新设备的列表。图7的流程图提供发生在步骤1314上的处理的进一步细节。
在步骤1316,操作系统发现可由计算机系统访问或者可由正在使用不同计算机系统的用户访问的任何远程设备。图8的流程图提供了发生在步骤1316上的处理的进一步细节。
在步骤1318,在从计算机系统最后移出可拆卸操作系统模块之前,操作系统启动休眠或者暂停的应用程序。与驻留在可拆卸操作系统/应用模块上的模块应用相反,本地应用是驻留在计算机系统上的应用。图14的流程图提供了发生在步骤1318上的处理的进一步细节。
在步骤1320,操作系统加载和恢复被驻留在可拆卸操作系统/应用模块上的模块应用,并可以在当前的计算机系统上运行。图15的流程图提供了发生在步骤1320上的处理的进一步细节。
在步骤1322,操作系统管理计算机系统。操作系统执行用户请求或者运行的应用请求的作业。图10的流程图提供了发生在步骤1322上的处理的进一步细节。
然后在判决步骤1324,确定用户是否已经请求移出可拆卸操作系统模块。如果用户还没有请求移出可拆卸操作系统模块,则判决步骤1324转移到“否”分支1328,并返回到步骤1322,操作系统在此步骤中继续执行任何所请求的作业。
如果用户已经请求移出可拆卸操作系统模块,判决步骤1324转移到“是”分支1326,并在步骤1330继续进行处理,在此将操作系统的状态保存在可拆卸操作系统模块上。图16的流程图提供了发生在步骤1330上的处理的进一步细节。
在步骤1332,将模块应用保存在可拆卸操作系统/应用模块。应用状态的改变包括应用的工具栏或者菜单的改变、优选文件位置的改变、被编辑的当前文件和编辑位置、以及其它用户特定设置和首选项。图17的流程图提供了发生在步骤1332上的处理的进一步细节。
在步骤1334,当移出可拆卸操作系统模块的所有准备已经被执行之后,将“移出模块是安全的”通知给用户,并且在步骤1336,用户移出可拆卸操作系统模块。处理在步骤1399结束。
图14显示启动运行于计算机系统上的本地应用的流程图。处理开始于步骤1400,在步骤1410,操作系统从可拆卸操作系统/应用模块加载应用状态数据文件。应用状态数据文件包括诸如用户正在工作的文件的信息、编辑正在发生的文件位置的信息等。
然后在判决步骤1412确定更多本地应用是否存在恢复的需要。如果不存在需要恢复的本地应用,则判决步骤1412转移到“否”分支1416,于是处理结束于步骤1499。如果需要恢复的本地应用存在,则判决步骤1412转移到“是”分支1414,于是在步骤1418选择第一个这样的应用。
然后在判决步骤1418确定所选择的本地应用是否可用于当前计算机系统。操作系统模块的用户可以执行在前计算机系统不可用或者当前计算机系统未安装的本地应用程序。如果本地应用程序不可用于当前计算机系统,则判决步骤1418转移到“否”分支1420,在步骤1424,将本地应用的状态信息保存在本地应用状态数据文件上。保存该信息是为了在具有可用本地应用程序的未来的计算机系统上能够自动恢复相应的本地应用程序。然后处理返回到判决步骤1412。
如果本地应用可用于当前的计算机系统,则判决步骤1418转移到“是”分支1422,开始该本地应用的运行。在步骤1426,操作系统保存运行应用程序的适当存储量,并且在步骤1428,运行相应的可执行的本地应用。在步骤1430,操作系统使用来自本地应用状态数据文件的数据,把本地应用恢复到模块的用户在前遗留的状态。例如,如果本地应用程序是Word,则运行用户最后编辑的文件,将编辑位置设置到最后编辑位置、把工具栏配置设置到最后配置等。然后处理返回到判决步骤1412。
图15是启动在计算机系统上运行的模块(模块存储的)应用的处理流程图。处理开始于步骤1500,在步骤1510,操作系统从可拆卸操作系统/应用模块加载应用状态数据文件。应用状态数据文件包括诸如用户正在工作的文件的信息、编辑正在发生的文件位置的信息等。此外,应用的运行映像可以通过保存应用的RAM空间来保存。
然后在判决步骤1512确定更多模块应用是否存在恢复的需要。如果不存在需要恢复的模块应用,则判决步骤1512转移到“否”分支1516,于是处理结束于步骤1599。如果需要恢复的模块应用存在,则判决步骤1512转移到“是”分支1514,于是在步骤1518选择第一个这样的模块应用。
然后在判决步骤1518确定所选择的模块应用是否可在当前计算机系统上运行(与其兼容)。如果模块应用不可用于当前计算机系统,则判决步骤1518转移到“否”分支1520,在步骤1524,将模块应用的状态信息保存在模块应用状态数据文件上。保存该信息是为了在模块应用是可兼容的未来计算机系统上能够自动恢复相应的模块应用。然后处理返回到判决步骤1512。
如果模块应用与当前计算机系统兼容,则判决步骤1518转移到“是”分支1522,开始该模块应用的运行。在步骤1526,操作系统保存运行模块应用的适当存储量,并且在步骤1528,从模块加载应用的运行映像。还从模块加载恢复应用所需的其它状态信息,比如应用运行的最后点。在步骤1530,操作系统在已复原的恢复点开始运行。然后处理返回到判决步骤1512。
图16是显示模块移去之前在可拆卸操作系统/应用模块上保存模块应用的处理流程图。处理开始于步骤1600,操作系统在此执行可拆卸操作系统/应用模块移去应用。在判决步骤1615确定是否存在仍然执行的任何本地应用或处理。如果不存在任何留下执行的应用或者处理,则判决步骤1615转移到“否”分支1620,并在步骤1650继续进行处理。
如果存在仍然执行的本地应用或者处理,则判决步骤1615转移到“是”分支1625,于是在步骤1630选择下一个执行的本地应用或者处理。在步骤1635,操作系统停止执行处理或者本地应用,并在步骤1640,把本地应用的或者处理的状态信息保存到可拆卸操作系统/应用模块的本地应用状态信息数据文件中。例如,如果应用是Word,则保存最后编辑位置、工具栏配置等。如果文件不存在,则建立一个新文件。在步骤1645,本地应用当前所访问的任何文件的名称被保存在可拆卸操作系统/应用模块上。当模块下一次被插入到计算机系统时,将在适当的编辑点用适当的本地应用打开适当的文件。
在步骤1650,操作系统的当前状态被保存在模块中。当该模块下一次被插入计算机系统时,将利用该信息重新启动操作系统。操作系统状态包括诸如桌面布置、快捷列表、配色方案和其它用户首选项的项目。
在步骤1655,确定最后的操作系统执行点,并将其作为“恢复”点保存在可拆卸操作系统/应用模块上。当从可拆卸操作系统/应用模块再次加载操作系统时可以使用该“恢复”点,并且与重新启动操作系统相反,用户选择从最后执行点恢复操作系统。
在步骤1660,远程设备驱动器的信息被保存在模块的远程设备驱动配置文件中。当可拆卸操作系统/应用模块下一次插入计算机系统时,可以利用该信息重新连接可用的远程设备。在步骤1665,还可以把任何其它非计算机系统特定数据(即仅与模块有关的数据)保存到可拆卸操作系统/应用模块上。
图17是显示模块移去之前在可拆卸操作系统/应用模块上保存应用状态的处理流程图。处理开始于步骤1700,于是在判决步骤1710确定是否存在更多的其状态需要保存在可拆卸操作系统/应用模块上的运行的模块应用。如果没有需要保存的模块应用,则判决步骤1710转移到“否”分支1720,然后于步骤1799结束。
如果存在更多需要保存的模块应用,则判决步骤1710转移到“是”分支1715,于是在步骤1723选择下一个模块应用。在步骤1725,操作系统停止模块应用的执行,并且在步骤1730把所选择的模块应用的当前状态保存到可拆卸操作系统/应用模块。应用的状态可以包括当前编辑的文件、编辑的位置、工具栏和菜单布置以及其它的用户优选项。
在步骤1735,确定应用的最后执行点。然后,在步骤1740将最后执行作为“恢复”点保存在模块上。执行点可以用于以后恢复运行暂停执行的应用。
然后处理返回到判决步骤1710,以确定是否更多应用存在保存应用状态的需要。
图18是显示CPU模块插入和不插入计算机系统时,计算机系统状态的方框图。计算机系统1810包括:BIOS 1850,在操作系统运行之前执行基本输入/输出功能;非易失性存储器1855,存储已安装的应用、用户设置等;RAM1820,在计算机系统1810进行操作的同时进行临时存储。
此外,计算机系统1810包括适于接受CPU模块1840的模块接口1860。CPU模块1840包括CPU 1845,在CPU模块1840连接到计算机系统1810之后,CPU 1845可以开始执行操作系统指令。
一旦可拆卸CPU模块1840插入到模块接口1860,BIOS 1850就检测该模块,并且开始将操作系统从非易失性存储器1855加载到RAM 1815(操作系统RAM 1820)。在加载操作系统之后,BIOS 1815使用CPU模块1840的CPU 1845启动操作系统的运行。
接着,操作系统从非易失性存储器1855加载连接计算机系统1810的任何外部设备所需的装置驱动器(设备驱动器RAM 1825),输入/输出配置(I/O配置RAM 1830)和任何所需的应用(应用RAM 1835)。
一旦从计算机系统1810移出可拆卸操作系统模块1824,就倒转加载处理。在非易失性存储器1855上保存操作系统的状态,在非易失性存储器1855上更新应用信息、I/O配置和设备驱动器。一旦可拆卸CPU模块移去,就可以将其插入另一个兼容计算机系统中,使该模块的CPU可以操作其它计算机系统。
图19是显示可拆卸CPU模块插入和移出计算机系统的处理流程图。处理开始于步骤1900,在步骤1910,用户把可拆卸CPU模块插入适于接受可拆卸CPU模块的计算机系统。
在步骤1915,BIOS检测可拆卸CPU模块,并确定CPU与计算机系统之间的兼容性。图20的流程图提供了发生在步骤1915上的处理的进一步细节。
在判决步骤1920,确定CPU是否与计算机系统兼容。如果CPU与计算机系统兼容,则判决步骤1920转移到“否”分支1930,于是在步骤1945将兼容性通知给用户,然后在步骤1999结束处理。
如果CPU与计算机系统不兼容,则判决步骤1920转移到“是”分支1925,于是在步骤1935加载操作系统并开始使用可拆卸CPU模块上的CPU运行。图21的流程图提供了发生在步骤1935上的处理的更多细节。
在步骤1950,操作系统管理计算机系统。操作系统执行用户或者执行的应用所请求的作业。图10的流程图提供了发生在步骤1950上的处理的更多细节。
然后在判决步骤1955确定用户是否已经请求移出可拆卸操作系统模块。如果用户还没有请求移出可拆卸操作系统模块,则判决步骤1955转移到“否”分支1965,并返回到步骤1950,于是操作系统继续执行所请求的作业。
如果用户已经请求移出可拆卸操作系统模块,则判决步骤1955转移到“是”分支1960并在步骤1970继续进行处理,于是操作系统的状态被保存到可拆卸操作系统模块上。图11提供了发生在步骤1970上的处理的更多细节。
在步骤1975,当用于可拆卸操作系统模块移去的所有准备已经被执行时,把“移出模块是安全”的消息通知给用户,在步骤1980,用户移出可拆卸操作系统模块。处理结束于步骤1999。
图20是显示BIOS检测可拆卸CPU模块和确定模块的CPU与计算机系统的兼容性的处理流程图。处理开始于步骤2000,于是在步骤2010,BIOS检测所插入的CPU模块。例如,可以使用即插即用型协议检测CPU模块。
然后确定可拆卸CPU模块此前是否已经插入该计算机系统中。如果可拆卸CPU模块此前没有插入该计算机,则判决步骤2015转移到“否”分支2020,于是在步骤2035继续进行处理。如果可拆卸CPU模块此前已经插入该计算机,则判决步骤2015转移到“是”分支2025,于是在判决步骤2026确定包含CPU信息的文件是否存在于计算机系统的非易失性存储器上。如果包含CPU信息的文件存在于计算机系统上,则判决步骤2026转移到“是”分支2028,于是在步骤2030加载包含CPU信息的文件和CPU信息,比如CPU的访问地址、CPU的寻址模式和CPU地数据传输方法等。
如果包含CPU信息的文件不存在于计算机系统上,则判决步骤2026转移到“否”分支2029,于是在步骤2035查询CPU,以提供CPU的访问地址、CPU的寻址方式、CPU的数据传送模式等。在步骤2030,所提供的数据(比如CPU访问地址、CPU寻址模式、CPU数据传送模式等)被保存在计算机系统的非易失性存储器的文件中,以便在可拆卸CPU模块又插入计算机系统期间使用。然后处理在步骤2099结束。
图21是显示BIOS使用可拆卸CPU模块的CPU加载操作系统和开始操作系统运行的处理流程图。处理开始于步骤2100。确定已休眠的操作系统的映像是否可在本地非易失性存储器中获得。如果映像是可用的,则判决步骤2110转移到“是”分支2120,于是BIOS在步骤2125从计算机系统的非易失性存储器加载操作系统。如果操作系统的映像不可用,则判决步骤2110转移到分支2115,在步骤2165继续进行处理。在步骤2130,提示用户是否恢复或重新启动已加载的操作系统,并在步骤2135接收用户的输入。
在判决步骤2140,确定用户是否已经选择重新启动操作系统。如果用户已经选择重新启动操作系统,则判决步骤2140转移到“是”分支2145,在步骤2165再次进行处理。如果用户没有选择重新启动操作系统,而是选择从它的最后执行点恢复操作系统,则判决步骤2140转移到“否”分支2150,于是在步骤2155,从计算机系统的非易失性存储器获得操作系统的恢复入口点。在步骤2160,操作系统从恢复入口点开始执行。
在步骤2165,从计算机系统的非易失性存储器获得重新启动入口点。在步骤2170,操作系统从重新启动入口点开始执行。
在步骤2175,把CPU的在前确定的属性如CPU地址、CPU寻址模式、数据传送方法等通知给操作系统,然后在步骤2199结束处理。
图22是显示CPU模块(包含第二CPU)插入和不插入计算机系统时,计算机系统状态的方框图。计算机系统2210包括:BIOS 2245,在操作系统运行之前执行基本输入/输出功能;CPU 2250,执行操作计算机系统的指令;非易失性存储器2255,存储已安装的应用、已安装的操作系统、用户设置等;RAM 2215,在计算机系统2210进行操作的同时进行临时存储。RAM 2215包括操作系统RAM 2220、设备驱动器RAM 2225、I/O配置RAM 2230和应用RAM 2235。
此外,计算机系统2210包括适于接收CPU模块2260的模块接口2240。CPU模块2260包括CPU 2265,在CPU模块2240连接到计算机系统2210之前,该CPU 2265可以和单板CPU 2250一起开始并行执行操作系统指令。
一旦可拆卸CPU模块2260插入模块接口2240,BIOS 2245就检测该模块,并把附加CPU的存在通知给操作系统。最初,操作系统仅仅把执行的指令转移到单板CPU 2250。在CPU模块插入后,操作系统把一个CPU指定为从CPU,而把另一个CPU指定为主CPU。然后,操作系统开始向两个CPU发送执行的指令。如图所示,CPU 2250被指定为主CPU,模块上的CPU 2265被指定为从CPU。
图23是显示可拆卸CPU模块插入和移出包含内置CPU的计算机系统的处理流程图。处理开始于步骤2300,在步骤2310,用户把可拆卸CPU模块插入具有现存CPU的计算机系统。
在步骤2315,BIOS检测CPU模块并确定CPU与计算机系统之间的兼容性。图20的流程图提供了发生在步骤2315上的处理的进一步细节。
然后确定CPU是否与计算机系统兼容。如果该CPU被确定与计算机系统不兼容,则判决步骤2320转移到“否”分支2330,于是在步骤2345,通知用户该CPU与计算机系统不兼容。处理结束于步骤2399。
如果CPU被确定与计算机系统兼容,则判决步骤2320转移到“是”分支2325,于是在步骤2335,BIOS把第二CPU的存在和CPU属性通知给操作系统。
在步骤2340,操作系统访问CPU并把操作系统负荷的一部分分配给辅助CPU。图24的流程图提供了发生在步骤2340上的处理的更多细节。然后,处理结束于步骤2399。
图24是显示操作系统访问第二CPU并分配部分负荷给辅助CPU的处理的流程图。处理开始于步骤2400。在步骤2410,操作系统从BIOS接收CPU的属性,比如CPU的访问地址、CPU的寻址模式、CPU的数据传送方法等。然后在判决步骤2415,确定与当前CPU配置对应的多个CPU配置文件是否存在于计算机系统中。如果与当前CPU配置对应的多个CPU配置文件不存在,则判决步骤2415转移到“否”分支2420,在步骤2450继续进行处理。如果与当前CPU配置对应的多个CPU配置文件存在,则判决步骤2415转移到“是”分支2425,于是在步骤2430,操作系统根据多个CPU配置文件把CPU指令的一部分分配给本地CPU,并把CPU指令的一部分分配给模块CPU。
在判决步骤2435确定模块CPU是否仍然存在。如果模块CPU不再存在,则判决步骤2435转移到“否”分支2440,然后处理结束于步骤2499。如果模块CPU仍然存在,则判决步骤2435转移到“是”分支2445,处理返回到步骤2430。
在步骤2450,操作系统确定哪个CPU被指定为主CPU,以及哪个CPU被指定为从CPU。在一个实施例中,主/从指定是根据CPU能力作出的。例如,最强的CPU可以被指定为主CPU。
在步骤2455,操作系统确定主CPU与从CPU之间的CPU指令的分配。此外,分配的确定基于CPU的能力。例如,如果两个CPU都存在而且两个CPU计算能力基本相等,则可以在两个CPU之间相等地分配操作系统负荷。
不同CPU之间的已确定的负荷分配被保存到计算机系统的多个CPU配置文件上。该CPU配置将来再次存在时,由操作系统以后检索该信息。处理继续在步骤2430进行,根据已确定的分配把计算机指令分配给多个CPU。
图25是显示操作系统/CPU模块插入和不插入计算机系统时,计算机系统状态的方框图。计算机系统2510包括:BIOS 2555,在操作系统执行之前,执行基本输入/输出功能;非易失性存储器2560,用于存储已安装的应用、用户设置等;和RAM 2515,在计算机系统2510操作的同时进行临时存储。
此外,计算机系统2510包括可拆卸操作系统/CPU模块接收2565,该接口能够接受可拆卸操作系统/CPU模块2540。可拆卸操作系统/CPU模块2540包括:非易失性存储器中的操作系统运行映像2550,以及执行操作系统指令以便操作计算机2510的CPU 2545。
一旦可拆卸操作系统/CPU模块2540插入可拆卸操作系统/CPU模块接口2565,BIOS 2555就把操作系统运行映像2550从可拆卸操作系统/CPU模块2540的非易失性存储器加载到RAM 2515(操作系统RAM 2520),并启动操作系统模块CPU 2545的执行。
接着,操作系统从非易失性存储器2560加载连接计算机系统2510的任何外部设备所需的设备驱动器(设备驱动器RAM 2525)、输入/输出配置(I/O配置RAM 2530)和任何已请求的应用(应用RAM 2535)。
一旦可拆卸操作系统/CPU模块2540从计算机系统2510移出,就倒转加载处理。在可拆卸操作系统/CPU模块2540上更新操作系统的当前状态,在非易失性存储器2560上更新应用信息、I/O配置和设备驱动器。一旦可拆卸操作系统/CPU模块移去,就可以将其插入另一个兼容计算机系统,使模块的操作系统与CPU一起控制和操作其它计算机系统。
图26是显示可拆卸操作系统/CPU模块插入和从计算机系统移出的处理流程图。处理开始于步骤2600,在步骤2610,用户把可拆卸操作系统/CPU模块插入适于接受模块的计算机系统中。可拆卸操作系统/CPU模块包含:被存储到模块的非易失性存储器上的操作系统运行映像;以及执行操作系统指令的CPU。
在步骤2612,计算机系统的BIOS检测插入时的可拆卸操作系统/CPU模块,并确定CPU的属性。图27的流程图提供了发生在步骤2612上的处理的进一步细节。
然后,在判决步骤2614确定模块是否与当前计算机系统兼容。如果模块被确定为与计算机系统不兼容,则判决步骤2614转移到“否”分支2616,在步骤2628继续进行处理。在步骤2628,通知用户模块与当前计算机系统不兼容。
如果该模块被确定是兼容的,则判决步骤2614转移到“是”分支2618,在步骤2620,BIOS从模块加载操作系统,并把模块上的CPU的存在和属性通知给操作系统。图6提供了发生在步骤2620上的处理的更多细节。
在步骤2622,操作系统发现连接到该计算机的本地设备。在可拆卸操作系统/CPU模块从该计算机系统移到当前已发现设备之前,操作系统比较包含该设备的列表并更新设备列表。图7的流程图提供了发生在步骤2622中的处理的详细细节。
在步骤2624,操作系统在用户正在使用不同计算机系统时发现可由计算机系统或者用户访问的任何远程设备。图8的流程图提供了发生在步骤2624上的处理的更多细节。
在步骤2626,操作系统启动在可拆卸操作系统/CPU模块从计算机系统最后移出之前休眠或暂停的应用。图9的流程图提供了发生在步骤2626上的处理的更多细节。
在步骤2630,操作系统管理计算机系统。操作系统执行由用户或者由运行的应用请求的作业。图10的流程图提供了发生在步骤2630上的处理的更多细节。
然后在判决步骤2632确定用户是否已经请求可拆卸操作系统/CPU模块的移出。如果用户还没有请求可拆卸操作系统/CPU模块的移出,则判决步骤2632转移到“否”分支2634,并返回到步骤2630,操作系统继续执行所请求的作业。
如果用户已经请求可拆卸操作系统/CPU模块的移出,则判决步骤2632转移到“是”分支2636,并在步骤2638继续进行处理,于是将操作系统的状态保存到可拆卸操作系统模块上。图11提供了发生在步骤2638上的处理的更多细节。
在步骤2640,当已经执行可拆卸操作系统/CPU模型之后,将“移出模块是安全的”消息通知给用户,并且在步骤2624,用户移出可拆卸操作系统模块。处理结束于步骤2699。
图27是显示BIOS检测可拆卸操作系统/CPU模块并确定模块上的操作系统和CPU与计算机系统兼容性的处理流程图。处理开始于步骤2700,在步骤2710,BIOS检测已插入的操作系统/CPU模块。
然后确定可拆卸操作系统/CPU模块此前是否已经插入该计算机系统。如果可拆卸操作系统/CPU模块此前未插入该计算机系统,则判决步骤2715转移到“否”分支2720,在步骤2730上继续进行处理。如果可拆卸操作系统/CPU模块此前已经插入该计算机系统,则判决步骤2715转移到“是”分支2725,于是在判决步骤2726确定包含操作系统/CPU信息的文件是否存在于计算机系统的非易失性存储器上。如果包含CPU信息的文件存在于计算机系统上,则判决步骤转移到“是”分支2728,于是在步骤2730,加载包含CPU信息的文件以及CPU信息,比如CPU的访问地址、CPU的寻址模式、CPU的数据传送方法等。
如果包含CPU信息的文件未存在于计算机系统,则判决步骤2726转移到“否”分支2729,于是在步骤2740,查询CPU以便确定CPU的访问地址、CPU的寻址模式、CPU的数据传送方法等。在步骤2745,确定操作系统与计算机系统的兼容性。然后处理结束于步骤2799。
图28是显示一个装置连接到计算机系统以及把设备驱动器从该设备的非易失性存储器传送到计算机系统的方框图。
计算机系统2810包括:控制计算机系统2810的CPU 2815;连接CPU2815、用于存储数据的存储单元2810;和连接CPU 2815、用于把计算机系统连接到其它外部设备的通信接口2825。
设备2830包括:控制设备2830的处理器2845;连接处理器2845、用于将设备2830连接到其它设备的通信接口2840;和连接处理器2845、用于存储数据的非易失性存储器2835。
设备2830是外部设备,比如是适合于经由设备2830上的通信接口2840和计算机系统2810上的通信接口2825连接计算机系统2810的打印机。为了便于通信,设备驱动器首先被安装到计算机系统上。通常,经由软盘、CD-ROM和连接计算机系统的网络,向计算机系统提供设备驱动器。如果设备驱动器不可用,则该设备驱动器将不起作用。设备2830可以把设备驱动器2850存储到非易失性存储器2835中,一旦设备2830连接到计算机系统2810,就可以向计算机系统2810提供设备驱动器2850。如果已更新的设备驱动器在计算机系统2810上可用,则已更新的设备驱动器可以从计算机系统2810传输到设备2830,以替代设备驱动器2850。
图29是显示把设备连接到计算机系统以及把设备驱动器从设备的非易失性存储器传送到该计算机系统的流程图。处理开始于步骤2900,在步骤2910,新设备被连接到计算机系统。该设备适合于使用必需安装到计算机系统上的设备驱动器来与计算机系统通信。在步骤2915,计算机系统检测新设备。在一个实施例中,在设备与计算机系统之间建立即插即用型通信。
然后,确定该设备是否可以从设备的固件供应设备驱动器。如果该设备不能供应合适的设备驱动器,则判决步骤2920转移到“是”分支2930,于是在步骤2935,计算机系统发送请求,并从设备接收用于新设备的设备驱动器。可以利用标准化设备驱动器通信协议从设备接收设备驱动器。然后,在步骤2945继续进行处理。
如果设备不提供设备驱动器,判决步骤2920转移到“否”分支2925,于是在步骤2940,计算机系统搜索本地存储设备和/或连接计算机系统的网络,以便获得用于已连接的设备的可兼容设备驱动器。
在步骤2945,操作系统注册该新设备。例如,把设备的信息加到系统注册器上,使操作系统记录设备和该设备的适当设备驱动器的存在。在步骤2950,把设备和设备驱动器的信息添加到本地设备驱动器配置文件中。在重新启动或恢复计算机系统时,可以使用设备驱动器配置文件,以便在关闭/休眠计算机系统之前或者在移出操作系统模块时,获得连接计算机系统的设备的列表。在步骤2955,计算机系统使用已安装的设备驱动器建立与新设备的通信。
图30是显示计算机系统以诸如的XML的可移植语言与远程设备驱动器注册服务器通信,以便获得存储在服务器上的设备的设备驱动器的信息的方框图。
计算机系统3010连接计算机网络3030,该计算机网络3030连接远程设备驱动器注册服务器3015、光打印机3020和高分辨率扫描仪3025。为了在计算机系统3010、光打印机3020和高分辨率扫描仪3025之间建立连接,计算机系统3010首先建立与远程设备驱动器注册服务器3015的通信。计算机系统3010使用诸如XML(一种公知语言)之类的可移植语言建立与远程设备驱动器注册服务器3015的通信。远程设备驱动器注册服务器3015存储设备驱动器和其它信息,以便在计算机系统3010、光打印机3020和高分辨率扫描仪3025之间进行通信。
在一个实施例中,远程设备驱动器注册服务器3015包含表3055和表3050。表3050包含可用设备的信息。例如,对于每个设备,表3055可以包含可以下载驱动器的网络位置、设备的接口定义、与设备使用有关的费用和联系网络地址。表3050可以包含,例如,用于每个用户的用户名、用户口令、用户是否访问第一设备、用户是否访问第二设备等。
当建立于远程设备驱动器注册服务器3015的通信之后,计算机系统接收适当设备的信息。然后计算机系统建立与设备如光打印机3020或高分辨率扫描仪3025的通信。
图31是显示计算机系统用诸如XML的可移植语言与远程驱动器注册服务器通信,以便获得存储在服务器上的设备的设备驱动器的信息。处理开始于步骤3100,在步骤3110,用户请求连接到远程业务或设备如高质量打印的光打印机。
在步骤3115,使用诸如XML的可移植语言向远程设备驱动器注册服务器发送业务或设备的请求。远程设备驱动器注册服务器可以为请求业务或者设备的用户提供认证,以及提供关于设备驱动器和设备的信息。远程设备驱动器注册服务器可以提供诸如以下的信息:驱动器的位置、与业务或者设备通信的接口定义、使用设备的应用费、发生问题情况下的联系地址等。
在步骤3120,远程设备驱动器注册服务器请求用户提供用户名和口令,以便远程设备驱动器注册服务器确定用户是否可以访问任何业务或者驱动器。然后在判决步骤3125确定用户是否已经许可访问已请求的业务或者设备。远程设备驱动器注册服务器通过将键入的用户名和口令与远程设备驱动器注册服务器上保存的用户名和口令以及访问许可的列表进行比较来确定许可。如果不许可用户访问所请求的设备或者业务,则判决步骤3125转移到“否”分支3130,在步骤3145上继续进行处理。在步骤3145,通知用户访问所请求设备或者业务的许可已经被拒绝。
如果不许可用户访问所请求的业务或者设备,则判决步骤3125转移到“是”分支3135,于是在步骤3140,计算机系统建立与所选择的业务或者装置的通信。图32的流程图提供了发生在步骤3140上的处理的更多细节。然后处理结束于步骤3199。
图32是在计算机系统与远程业务/设备之间建立通信的处理流程图。处理开始于步骤3200,在步骤3210,远程设备驱动器注册服务器向所请求的计算机系统发送所选设备驱动器的特性。远程设备驱动器注册服务器与计算机系统之间的通信以诸如XML之类的可移植语言发生。在步骤3215,远程设备驱动器注册服务器向所请求的计算机系统发送与设备驱动器通信所需的接口。远程设备驱动器注册服务器与计算机系统之间的通信再次以诸如XML之类的可移植语言发生。
在步骤3220,所请求的计算机系统将收到的与设备驱动器关联的信息保存到设备驱动器配置文件上,用于以后调用。在步骤3230,请求的计算机系统使用远程设备驱动器注册服务器提供给请求的计算机系统的接口和其它信息访问该设备。然后处理结束于步骤3299。
图33是显示包含防止未授权访问所述设备的安全设备的可拆卸操作系统模块的方框图。可拆卸模块3310可以包含模块CPU 3315、操作系统运行映像3330和/或模块应用3335。
此外,可拆卸模块3310包含锁住和保护可拆卸模块以避免未授权使用可拆卸模块的菜单。可拆卸模块3310包括安全数据3340,该安全数据例如与视网膜扫描仪3345、指纹扫描仪3350和/或小键盘3355结合,提供认证。视网膜扫描仪3345扫描用户的视网膜,并将被扫描图像与安全数据3340中存储的图像进行比较,以确定是否授权用户使用可拆卸模块3310。指纹扫描仪3350扫描用户的手指,并将被扫描的图像与安全数据3340中存储的图像进行比较,以确定是否授权用户使用可拆卸模块3310。小键盘3355提供用户输入口令的菜单,然后将输入的口令与安全数据3340中存储的口令进行比较,以确定用户是否被授权使用可拆卸模块3310。
可拆卸模块3310还包含加锁/解锁指示器3325。加锁/解锁指示器3325可以包括,例如,指示模块被加锁的红色LED和指示模块被解锁的绿色LED。
锁定按钮3320可以用来在可拆卸模块3310被解锁的任何时候,锁住可拆卸模块3310。在另一个实施例中,一旦可拆卸模块3310从计算机系统移出,就可以自动将其锁住,或者在一段不活动时间之后或者按照时间表自动锁住可拆卸模块3310。
图34是显示使用模块上的安全设备防止未授权访问可拆卸操作系统模块的处理流程图。处理开始于步骤3400,在步骤3410用户从计算机系统移出可拆卸模块。
在判决步骤3415确定模块从计算机系统移出时是否被设置为自锁。如果模块从计算机系统移出时被设置为自锁,则判决步骤3415转移到“是”分支3435,于是在步骤3440模块自动锁住。在步骤3445继续进行处理。如果模块从计算机系统移出时未被设置为自锁,则判决步骤3415转移到“否”分支3420,于是在判决步骤3425确定是否已经按压模块上的锁定按钮。如果锁定按钮已经被按压,则判决步骤3425转移到“是”分支3430,在步骤3445继续进行处理。如果锁定按钮未被按压,则判决步骤3425转移到“否”分支3475,在步骤3480模块维持解锁、可操作状态,并准备重新插入计算机系统。
在步骤3445,模块被锁住,因而是不可操作的,并且不准备进入计算机系统激活。为了再次使用,必需首先解锁该模块。模块上的指示器指示该模块被锁住。
然后在判决步骤3450确定用户是否正在试图解锁模块。如果用户不试图解锁模块,则判决步骤3450转移到“否”分支3452,于是处理返回到步骤3445,模块再次确定用户是否正在试图解锁模块。如果用户正在试图解锁模块,则判决步骤3450转移到“是”分支3454,于是在步骤3455,模块执行认证处理过程,以确定试图解锁模块的用户是否具有这样做的授权。图35、36、37的流程图提供了发生在步骤3455上的处理的更多细节。
然后在判决步骤3460确定用户已经被认证。如果用户未被认证,则判决步骤3460转移到“否”分支3465,于是处理返回到步骤3455,以等候用户解锁模块的另一个试图。如果用户被认证,则判决步骤3460转移到“是”分支3470,于是在步骤3480,模块现在是解锁的、可操作的,并且准备插入计算机系统。然后在步骤3499结束处理。
图35是显示使用模块上的指纹扫描仪3510保护可拆卸操作系统模块的处理流程图。处理开始于步骤3500,于是在步骤3510模块等候指纹扫描仪上的手指的出现。指纹扫描仪位于模块上,它是用于标识和认证目的的可操作扫描人的指纹的安全设备。
然后在判决步骤3515确定手指是否出现在扫描仪上。如果手指未出现在扫描仪上,则判决步骤3515转移到“否”分支3520,于是处理返回到步骤3510,模块在此继续等候手指在指纹扫描仪上的出现。
如果手指出现在扫描仪上,判决步骤3515转移到“是”分支,于是在步骤3530激活指纹扫描仪,并捕获手指上的指纹图像。在步骤3535,访问模块上的被认证指纹图像的数据库。存储在模块上的数据库包含来自被认证使用模块的用户的指纹图像。
然后确定是否存在还没有与已扫描图像比较的更多指纹图像。如果没有被比较的更多指纹图像不存在,则判决步骤3540转移到“否”分支,于是在步骤3560确定用户还没有被认证。然后处理结束于步骤3599。
如果没有比较的更多指纹图像存在,判决步骤3540转移到“是”分支3545,于是在步骤3555,从数据库加载下一个指纹图像,并与已扫描图像进行比较。
然后在判决步骤3565确定来自数据库的指纹图像是否与已扫描图像匹配。如果图像不匹配,则判决步骤3565转移到“否”分支3570,于是处理返回到步骤3535,以确定更多图像是否保存在需要比较的数据库中。如果图像匹配,则判决步骤3565转移到“是”分支3575,于是在步骤3580指示用户已经被授权,并且现在可以在可兼容计算机系统中插入并使用该模块。处理结束于步骤3599。
图36是显示使用模块上的眼视网膜扫描仪保护可拆卸操作系统模块的处理流程图。处理开始于步骤3600,于是在步骤3610,模块等候视网膜扫描仪前方的眼睛的出现。视网膜扫描仪位于模块上,它是用于标识和认证目的的可操作扫描人的视网膜的安全装置。
然后在判决步骤3615确定视网膜是否出现在扫描仪的前方。如果视网膜未在出现于扫描仪上,则判决步骤3615转移到“否”分支3620,于是处理返回到步骤3610,模块在此继续等候视网膜出现在视网膜扫描仪的前方。
如果视网膜未出现在扫描仪上,则判决步骤3615转移到“是”分支3625,于是在步骤3630,激活视网膜扫描仪,并捕获视网膜的图像。在步骤3635,访问模块上的被认证的视网膜的数据库。该数据库被存储在模块上,包含来自被认证使用模块的用户的视网膜图像。
然后确定是否存在还没有与被扫描图像比较的更多视网膜图像。如果没有被比较的更多视网膜图像不存在,则判决步骤3640转移到“否”分支3650,于是在步骤3660确定用户没有被认证。然后处理结束于步骤3699。
如果没有比较的视网膜存在,则判决步骤3640转移到“是”分支3645,于是在步骤3655,从数据库加载下一个视网膜图像,并与被扫描的图像进行比较。
然后在判决步骤3665确定来自数据库的视网膜图像是否配置被扫描图像。如果图像不匹配,则判决步骤3665转移到“否”分支3670,于是处理返回到步骤3635,以确定更多图像是否保存在需要比较的数据库中。如果图像匹配,则判决步骤3665转移到“是”分支3675,于是在步骤3680指示用户已经被认证,并且可以在兼容计算机系统中插入并使用该模块。处理结束于3699。
图37是显示使用键入口令的键盘保护可拆卸操作系统模块的处理流程图。处理开始于步骤3700,在步骤3710,模块等候将在键盘上键入的口令。
然后判决步骤3715确定口令是否已经被输入。如果未输入口令,则判决步骤3715转移到“否”分支3720,于是处理返回到步骤3710,模块在此继续等候口令。
如果已经输入了口令,则判决步骤3715转移到“是”分支3725,在步骤3730接收输入的口令。在步骤3735,访问模块上已认证口令的数据库。该数据库被存储在模块上,包含来自被认证使用模块的用户的口令。
然后确定是否存在还没有与被输入口令比较的更多口令。如果没有被比较的更多口令不存在,则判决步骤3740转移到“否”分支3750,于是在步骤3760确定用户没有被认证。然后处理结束于步骤3799。
如果没有比较的口令存在,则判决步骤3740转移到“是”分支3745,于是在步骤3755,从数据库加载下一个口令,并与被键入口令进行比较。
然后在判决步骤3765确定来自数据库的口令是否配置被输入的口令。如果口令不匹配,则判决步骤3765转移到“否”分支3770,于是处理返回到步骤3735,以确定更多口令是否保存在需要比较的数据库中。如果口令匹配,则判决步骤3765转移到“是”分支3775,于是在步骤3780指示用户已经被认证,并且可以在兼容计算机系统中插入并使用该模块。处理结束于3799。
图38是显示使用用于经由计算机系统提供的安全数据防止未授权访问可拆卸操作系统模块的处理流程图。处理开始于步骤3800,在步骤3810,用户把可拆卸模块插入计算机系统中。在步骤3812,BIOS检测可拆卸模块并确定模块是否与计算机系统兼容。
然后判决步骤3814确定模块是否已经被安全锁住。如果模块未被安全锁住,则判决步骤3814转移到“否”分支31180,在步骤3848继续进行处理。如果模块被安全锁住,则判决步骤3814转移到“是”分支3816,于是提示用户输入安全数据,以便解锁该模块。安全数据可以是,例如口令、指纹扫描、视网膜扫描等。
然后在判决步骤3824确定是否已经提供了安全数据。如果未提供安全数据,则判决步骤3824转移到“否”分支3828,于是处理返回到步骤3822,系统在此等候来自用户的安全数据。
如果提供了安全数据,则判决步骤3824转移到“否”分支3826,于是系统在步骤3830接收由用户输入的安全数据。在步骤3832,访问模块上已认证的安全数据的数据库。存储在模块上的已认证的安全数据可以是例如口令、指纹扫描、视网膜扫描等。
图39是显示制造/编程可拆卸模块的方框图。制造计算机3910系统包括CPU 3920、RAM 3925和非易失性存储器3915。非易失性存储器1915包括将安装到可拆卸模块的操作系统的主拷贝。
在制计算机系统3910还包括诸多接口,将可拆卸模块3930、3935、3934和3945从可拆卸模块栈3947附加并连接到计算机系统3910。在操作系统安装到计算机系统3910之后,操作系统的运行映像从RAM 3925传送给可拆卸模块3930、3935、3940、......、3945中的每一个。
在操作系统已经被安装到可拆卸模块3930、3935、3940、......、3945之后,这些可拆卸模块就从计算机中移出,并且准备分配。
图40是显示制造和编程操作系统模块的处理流程图。处理开始于步骤4000,在步骤4010,操作系统被安装到在制计算机系统上。安装到计算机系统上的操作系统是将要安装到可拆卸操作系统模块上的操作系统。在步骤4015,执行操作系统,以获得存储器中的操作系统的运行映像。已安装的操作系统将被传送到可拆卸操作系统模块上,已执行的操作系统将用来获得状态信息、恢复和重新启动点等。
在步骤4020,开始可拆卸操作系统模块的制造。得到具有以下部件的主板:互连不同部件的总线;安装BIOS的接口,所述BIOS被连接到总线上;安装处理器的接口,所述处理器被连接到总线上;安装非易失性存储器的接口,所述非易失性存储器被连接到总线上;连接总线的通信接口,用于连接到计算机系统上的模块接口。
在步骤4030,BIOS被安装到主板的BIOS接口上。BIOS负责建立模块与计算机系统上的模块接口之间的初始通信。在步骤4035,将处理器安装到主板的处理器接口上。处理器控制可拆卸操作系统模块的运行,比如,从可拆卸操作系统模块到计算机系统的通信以及可拆卸操作系统模块内的诸多部件之间的通信。在步骤4040,非易失性存储器被安装到主板的非易失性存储器接口上。非易失性存储器用来存储数据,通常还存储可拆卸操作系统模块上存储的操作系统的运行映像。
然后在判决步骤4045确定是否要制造更多模块。如果要制造更多模块,则判决步骤4045转移到“是”分支4050,于是处理返回到步骤4020,开始制造另一个可拆卸操作系统模块。如果不制造更多可拆卸操作系统模块,则判决步骤4045转移到“否”分支4055,于是在步骤4060,将一组被制造的可拆卸操作系统模块插入在制计算机系统(manufacturing computer system)中。在制计算机系统可以有适于连接到可拆卸操作系统模块的多个接口,以便于将操作系统同时加载到若干可拆卸操作系统模块上。
在步骤4070,运行于在制计算机系统上的操作系统的运行映像被加载到连接到在制计算机系统的可拆卸操作系统模块上。操作系统被传送到可拆卸操作系统模块的非易失性存储器上。
在判决步骤4080上确定更多模块是否存在加载操作系统的需要。如果需要加载操作系统的更多操作系统模块存在,则判决步骤4080转移到“是”分支4085,于是处理返回到步骤4060,将另一组可拆卸操作系统模块插入到在制计算机系统中。如果没有更多需要加载操作系统的可拆卸操作系统模块,则判决步骤4080转移到“否”分支4090,于是处理结束于步骤4099。
图41是显示用户使用运行的操作系统安装文件编程操作系统模块的处理流程图。处理开始于步骤4100,于是用户在步骤4110启动计算机系统。在步骤4115,用户使用计算机系统连接操作系统的制造商网站。在该网站,用户请求购买和下载文件,以便把操作系统安装到可拆卸操作系统模块上。
在步骤4120,用户漫游到购买网页,在此用户使用信用卡购买操作系统。在步骤4125,用户下载和接收呈可安装映像形式的所购买的操作系统。
然后在判决步骤4130确定操作系统是否包括把可拆卸操作系统模块连接到计算机系统的可拆卸操作系统模块接口。如果计算机系统不包括可拆卸操作系统模块接口,则判决步骤4130转移到“否”分支4134,于是在步骤4140,把可拆卸操作系统模块接口附加到计算机系统上。然后在步骤4150继续进行处理。
如果计算机系统包括可拆卸操作系统模块接口,则判决步骤4130转移到“是”分支4150,于是在步骤4150,将可拆卸操作系统模块插入可拆卸操作系统模块接口。在步骤4160,已插入的可拆卸操作系统模块由计算机系统检测并安装。
在步骤4170,用户执行已下载的可执行的操作系统,以开始安装已购买的操作系统。给予提示时,用户把可拆卸操作系统模块选作安装已购买的操作系统的场所。在安装完成后,用户重新启动计算机系统,在步骤4180选择使用新近安装的操作系统映像重新启动计算机系统。所安装的操作系统映像可以是运行映像。
在步骤4185,用户执行可拆卸操作系统模块移去应用,以便把操作系统的状态和执行的应用保存在可拆卸操作系统模块的非易失性存储器上,然后从可拆卸操作系统模块接口移出可拆卸操作系统模块。处理结束于步骤4199。
图42是显示用户使用运行操作系统更新安装文件来更新操作系统模块的处理流程图。处理开始于步骤4200,在步骤4210,用户把可拆卸操作系统模块插入到具有可拆卸操作系统模块接口的计算机系统,该接口适合于接受可拆卸操作系统模块。在步骤4215,计算机系统的BIOS检测可拆卸操作系统模块,并从可拆卸操作系统模块的非易失性存储器加载操作系统。
在步骤4220,用户连接到操作系统的制造商网站,并请求对操作系统的更新。然后在判决步骤4225确定是否将免费提供更新。如果不免费提供更新,则判决步骤4225转移到“否”分支4230,于是在步骤4255用户使用信用卡购买该更新。处理继续在步骤4340上进行。
如果免费提供更新,则判决步骤4225转移到“是”分支4240,在步骤4240用户从操作系统的制造商网站下载和接收的已购买的操作系统和可执行的更新。在步骤4245,用户执行已下载的操作系统的更新,并且在步骤4250,更新可拆卸操作系统模块上的操作系统。
在步骤4260,重新启动计算机,并且在步骤4265,从可拆卸操作系统模块加载已更新的操作系统,并且用户准备以更新形式使用操作系统。处理结束于步骤4299。
图43是显示具有模块接口的个人计算机的方框图。
计算机系统4310是最初制造的计算机系统,包括BIOS 4325、非易失性存储器4320、存储器4315和包含设备的设备驱动器4335的附加设备4330。
模块接口4350也附加到计算机系统上,以便能够把可拆卸模块连接到计算机系统4310。
图44是显示制造个人计算机的处理流程图,该个人计算机具有模块接口和连接到模块接口的具有不同配置选项的模块。处理开始于步骤4400,在步骤4410开始在制计算机系统。
在步骤4415,获得具有以下部件的主板:互连不同部件的总线;安装BIOS的接口,所述BIOS被连接到总线上;安装CPU的接口,所述CPU被连接到总线上;安装RAM单元的接口,所述RAM单元被连接到总线上;连接非易失性存储器的接口,所述非易失性存储器被连接到总线上;连接附加设备的接口,所述附加设备也被连接到总线上。
在步骤4420,BIOS被安装到主板的BIOS接口上。BIOS能够使计算机系统在加载操作系统之前执行基本输入/输出,然后加载操作系统。在步骤4425,将RAM单元连接到主板的RAM单元接口上。RAM单元在计算机系统正在运行时,充当临时快速存储器。在步骤4430,非易失性存储器连接到主板的非易失性存储器接口上。非易失性存储器充当加载操作系统、应用等的永久存储器。
在步骤4435,模块接口被附加和连接到计算机系统的总线上。模块接口适于接受可拆卸模块,并适于经由总线将可拆卸模块连接到计算机系统。
在步骤4440,获得具有非易失性存储器的模块,该模块适于接受模块化CPU,和/或存储在非易失性存储器中的模块化应用,和/或存储在非易失性存储器上的一个或多个模块化操作系统。该模块适于通过把模块连接到计算机系统的模块接口而连接到计算机系统上。
在步骤4445,一个或多个操作系统被安装到计算机系统上和/或可拆卸模块上。图45的流程图描述了发生在步骤4445上的处理的更多细节。
在步骤4460,一个或多个应用被安装到计算机系统上和/或可拆卸模块上。图46的流程描述了发生在步骤4460上的处理的多个细节。
在步骤4465,一个或多个CPU被安装到计算机系统上和/或可拆卸模块上。图47的流程描述了发生在步骤4465上的处理的多个细节。处理结束于步骤4499。
图45是显示在计算机系统和/或模块上加载操作系统的处理流程图。处理开始于步骤4510,然后在判决步骤4510确定在计算机系统或者在可拆卸模块上是否将要安装更多操作系统。如果没有将要安装的更多操作系统,则判决步骤4510转移到“否”分支4520,于是处理结束于步骤4599。
如果有更多操作系统要被安装,则判决步骤4510转移到“是”分支4515,于是在判决步骤4525确定是否在可拆卸模块的非易失性存储器和计算机系统的非易失性存储器上安装下一个操作系统。如果要在可拆卸模块的非易失性存储器和计算机系统的非易失性存储器上加载操作系统,则判决步骤452转移到“是”分支4530,在步骤4570,把操作系统安装到计算机系统主板的非易失性存储器上。在步骤4575,操作系统的运行映像被安装到模块的非易失性存储器上。然后处理返回到判决步骤4510,以确定是否存在更多待安装的操作系统。
如果操作系统将不安装到可拆卸模块的非易失性存储器上和计算机系统的非易失性存储器上,则判决步骤4525转移到“否”分支4535,在判决步骤4540确定是否把操作系统安装到计算机系统主板的非易失性存储器上。如果将在计算机系统主板的非易失性存储器上加载操作系统,则判决步骤4540转移到“是”分支4560,在步骤4580把操作系统安装到计算机系统的非易失性存储器上。
如果操作系统不安装到计算机系统主板的非易失性存储器上,则判决步骤4540转移到“否”分支4550,于是在判决步骤4555确定操作系统是否安装到可拆卸模块的非易失性存储器上。如果操作系统要被安装到模块的非易失性存储器上,则判决步骤4555转移到“是”分支4560,于是在步骤4585,把操作系统的运行映像安装到可拆卸模块的非易失性存储器上。
如果操作系统不安装到模块的非易失性存储器上,则判决步骤4555转移到“否”分支4565,于是处理返回到判决步骤4510,以确定是否有更多操作系统要安装到计算机系统和/或可拆卸模块上。
图46是在计算机系统和/或模块上安装应用的处理流程图。处理开始于步骤4610,然后在判决步骤4610确定是否有更多应用要安装到计算机系统上或可拆卸模块上。如果没有更多应用要被安装,则判决步骤4610转移到“否”分支4615,然后处理结束于步骤4699。
如果有更多应用要被安装,则判决步骤4610转移到“是”分支4620,在判决步骤4625确定是否在可拆卸模块的非易失性存储器和计算机系统的非易失性存储器上安装下一个应用。如果要在可拆卸模块的非易失性存储器和计算机系统的非易失性存储器上安装应用,则判决步骤4625转移到“是”分支4630,在步骤4670,把应用安装到计算机系统主板的非易失性存储器上。在步骤4675,应用的运行映像被安装到模块的非易失性存储器上。然后处理返回到判决步骤4610,以确定是否存在更多待安装的应用。
如果应用不安装到可拆卸模块的非易失性存储器上和计算机系统的非易失性存储器上,则判决步骤4625转移到“否”分支4635,在判决步骤4640确定是否把应用安装到计算机系统主板的非易失性存储器上。如果要在计算机系统主板的非易失性存储器上安装应用,则判决步骤4640转移到“是”分支4645,在步骤4680把应用安装到计算机系统的非易失性存储器上。
如果应用不安装到计算机系统主板的非易失性存储器上,则判决步骤4640转移到“否”分支4650,于是在判决步骤4655确定应用是否安装到可拆卸模块的非易失性存储器上。如果应用要被安装到模块的非易失性存储器上,则判决步骤4655转移到“是”分支4660,于是在步骤4685,把应用的运行映像安装到可拆卸模块的非易失性存储器上。
如果应用不安装到模块的非易失性存储器上,则判决步骤4655转移到“否”分支4665,于是处理返回到判决步骤4610,以确定是否有更多应用要安装到计算机系统和/或可拆卸模块上。
图47是显示在计算机系统和/或模块上安装CPU的处理流程图。处理开始于步骤4710,然后在判决步骤4710确定是否有更多CPU要安装到计算机系统上或可拆卸模块上。如果没有更多CPU要被安装,则判决步骤4710转移到“否”分支4715,然后处理结束于步骤4799。
如果有更多CPU要被安装,则判决步骤4710转移到“是”分支4720,在判决步骤4725确定是否在可拆卸模块和计算机系统上安装下一个CPU。如果要在可拆卸模块和计算机系统上安装CPU,则判决步骤4725转移到“是”分支4730,于是在步骤4770,把CPU安装到计算机系统主板上。在步骤4775,CPU被安装到模块上。然后处理返回到判决步骤4710,以确定是否存在更多待安装的CPU。
如果CPU不安装到可拆卸模块和计算机系统上,则判决步骤4725转移到“否”分支4735,在判决步骤4740确定是否把CPU安装到计算机系统主板上。如果要在计算机系统主板上安装CPU,则判决步骤4740转移到“是”分支4745,在步骤4780把CPU安装到计算机系统上。
如果CPU不安装到计算机系统主板上,则判决步骤4740转移到“否”分支4750,于是在判决步骤4755确定CPU是否安装到可拆卸模块上。如果CPU被安装到模块上,则判决步骤4755转移到“是”分支4760,于是在步骤4785,把CPU安装到可拆卸模块上。
如果CPU不安装到模块上,则判决步骤4755转移到“否”分支4765,于是处理返回到判决步骤4710,以确定是否有更多CPU要安装到计算机系统和/或可拆卸模块上。
图48是显示信息处理系统的方框图,该信息处理系统是能够执行所述操作的计算机系统的简化实例。
图48显示了能够执行所述计算操作的计算机系统的简化实例的信息处理系统4801。计算机系统4801包括连接到主机总线4802的处理器4800。二级(L2)高速缓冲存储器4804也连接主机总线4802。主机-PCI桥4806连接主存储器4808,包括高速缓冲存储器和主存储器控制功能,并提供处置PCI总线4810、处理器4800、L2高速缓冲存储器4804、主存储器4808和主机总线之间的传输。主存储器4808连接主机-PCI桥4806以及主机总线4802。仅由主机处理器4800使用的设备,比如LAN卡4830,被连接到PCI总线4810上。业务处理器接口和ISA访问通路4812在PCI总线4810与PCI总线4814之间提供一个接口。这样,就将PCI总线4814与PCI总线隔离。诸如闪存4818之类的设备被连接到PCI总线4814。在一个实施中,闪存4818包括BIOS码,它结合用于各种低级系统功能和系统引导功能的必要的处理器可操作码。
PCI总线4814提供由主机处理器4800和包括例如闪存4818的业务处理器4816共用的各种设备的接口。PCI-ISA桥4835提供处置PCI总线4814与ISA总线4840之间的传输、通用串行总线(USB)功能性4845、功率管理功能性4855的总线控制,并且可以包括未示出的其它功能组件,比如实时时钟(RTC)、DMA控制、中断支持和系统管理总线支持。非易失性RAM4820连接到ISA总线4840。业务处理器4816包括JTAG和I2C总线4822,用于在启动步骤期间与处理器4800通信。JTAG/I2C总线4822还连接L2高速缓冲存储器4804、主机-PCI桥4806和主存储器4808,提供处理器、业务处理器、L2高速缓冲存储器、主机-PCI桥和主存储器之间的通信路径。业务处理器4816还访问降低信息处理装置4801功率的系统功率资源。
外围设备和输入/输出(I/O)设备可以连接各种接口(例如,连接到ISA总线4840的并行接口4862、串行接口4864、键盘接口4868和鼠标接口4870)。作为选择,连接到ISA总线4840的超级I/O控制器(未示出)可以提供许多I/O设备。
为了把计算机系统4801连接到另一个计算机系统以在网络上拷贝文件,LAN卡4830被连接到PCI总线4810。同样,为了利用电话线连接把计算机系统4801连接到ISP并由此连接到互联网,调制解调器4875连接串行端口4864和PCI-ISA桥4835。
尽管图48所示的计算机系统能够执行所述的处理,但是该计算机系统仅仅是计算机系统的一个实例。本领域普通技术人员将会明白许多其它计算机系统设计也能够执行这里所述的处理。
本发明的优选实施之一是应用(即模块中的一组指令(程序码)),它可以例如驻留在计算机的随机存取存储器中。该组指令在被计算机需要以前存储到另一个计算机存储器(例如被存储到硬盘驱动器)中,或者被存储到诸如光盘(供CD ROM使用)或者软盘(供软盘驱动器使用)的非易失性存储器中,或者经由互联网或者其它计算机网络下载。因而,本发明可以被实施为供计算机使用的计算机程序产品。此外,尽管所述的各种方法便于在被软件选择性激活或者重新配置的通用计算机中实现。但是本领域普通技术人员还将会认识到这样的方法可以在硬件、固件中执行,或者在为执行所需方法步骤而构成的更专用的设备中执行。
尽管已经显示和说明了本发明的特定实施例,但是本领普通技术人员将会明白,基于这里的教导,可以做出诸多改变和修改而又不背离本发明和其宽广范围,所附的权利要求将覆盖落入本发明真实精神和范围的所有这种变化和修改的范围。此外,应当理解,本发明仅仅由所附的权利要求来定义。本领域普通技术人员将会理解,如果意指所引入的权利要求组件的具体数量,则将在该权利要求中明确说明这种意图,当缺少这种说明时,将没有这种限制。对于有助于理解的一个非限制例子,以下所附权利要求包含引导权利要求组件的引导短语“至少一个”和“一个或多个”的使用。然而,这种短语的使用将不构成暗示由不定冠词“a(一个)”或“an(一个)”引导的权利要求组件,把包含这种引导的权利要求组件的任何特定权利要求限制为仅包含一个这种组件的发明,即使所述权利要求包含引导短语“一个或多个”或者“至少一个”以及不定冠词如“a”或“an”也是如此。上述内容同样适用于在定冠词的权利要求中使用。