CN1595356A - 制造和更新可插入的便携式操作系统模块的系统和方法 - Google Patents

制造和更新可插入的便携式操作系统模块的系统和方法 Download PDF

Info

Publication number
CN1595356A
CN1595356A CNA2004100563173A CN200410056317A CN1595356A CN 1595356 A CN1595356 A CN 1595356A CN A2004100563173 A CNA2004100563173 A CN A2004100563173A CN 200410056317 A CN200410056317 A CN 200410056317A CN 1595356 A CN1595356 A CN 1595356A
Authority
CN
China
Prior art keywords
operating system
module
removable
computer system
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2004100563173A
Other languages
English (en)
Other versions
CN1275152C (zh
Inventor
本杰明·安德鲁·希默尔
马里亚·阿苏亚·希默尔
赫尔曼·罗德里格斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1595356A publication Critical patent/CN1595356A/zh
Application granted granted Critical
Publication of CN1275152C publication Critical patent/CN1275152C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Abstract

一种用于在可移动操作系统模块上存储操作系统的运行的映像的方法和系统。所述模块首先插入到第一计算机系统。操作系统首先安装在第一计算机上,开始执行操作系统,然后将操作系统的运行的映像保存到可移动模块的非易失性存储单元上。将可移动模块从第一计算机系统中取出,并插入到第二计算机系统,操作系统的运行的映像被加载到可由第二计算机系统中包括的一个或多个处理器进行访问的第二存储器中。然后,可以由处理器执行加载的操作系统。用户可以通过连接到制造商的网站并下载更新或通过将可移动操作系统模块发送到制造商那里进行更新来更新操作系统。

Description

制造和更新可插入的便携式 操作系统模块的系统和方法
技术领域
一般而言,本发明涉及用于制造和更新可移动的操作系统模块的系统和方法。具体来说,本发明涉及用于将操作系统的运行的映像加载到一个或多个可移动的操作系统模块上的系统和方法。
背景技术
许多计算机用户都拥有多个计算机系统和/或其他计算设备。例如,一个用户可以在家拥有台式计算机,在单位拥有台式计算机,并拥有便携式膝上型计算机。此外,用户还可以拥有袖珍型的计算设备,如个人数据助理和移动电话。
对于用户拥有的每一个计算机系统和设备,用户必须购买单独的操作系统许可证。例如,用户必须购买用于台式个人计算机的Windows操作系统和用于个人数据助理的Palm操作系统。操作系统的许可证常常包括在系统的价格中。甚至对于可以使用相同的操作系统的计算机系统,用户也必须购买单独的操作系统。例如,用户必须单独地为台式机和膝上型个人计算机获取Windows操作系统许可证,即使不同时使用它们。
除与拥有多个操作系统关联的成本外,用户还必须单独地维护和更新每一个操作系统。例如,如果有了Windows操作系统的更新,并且用户在台式机和膝上型个人计算机上运行Windows,那么,用户必须单独地从膝上型计算机和台式机中执行Windows Update实用程序。如果用户希望安装特定的Windows桌面主题,用户必须分别在台式机和膝上型计算机上安装桌面主题。如果用户希望安装和使用某一个打印机,则用户必须分别在台式机和膝上型计算机上安装打印机驱动程序。如果用户希望存储最爱的网站的列表,用户也必须在台式机和膝上型计算机上分别这样做。
因此,所需要的是一种系统和方法,可以给用户提供购买一个许可证并在多个计算机系统上运行单个操作系统的方式。该系统和方法应该给用户提供在可移动模块上只更新和维护单个操作系统的能力,以便用户可以插入可移动模块,并在多个计算机系统的其中一个上运行单个操作系统。
此外,还需要制造这样的模块的系统和方法。还需要最初将操作系统的运行的映像加载到模块上并将该模块提供给客户的系统和方法。还需要用户以后更新可移动模块上的操作系统的运行的映像的系统和方法。
发明内容
已经发现,使用第一计算机在可移动的操作系统模块上存储操作系统的运行的映像的方法和系统可以解决如前所述的挑战。存储在可移动模块上的操作系统在将可移动模块插入到第二计算机系统时可以由第二计算机系统执行。
可移动模块首先插入到第一个计算机系统。可移动操作系统模块包括用于连接可移动模块与带电的计算机系统的接口,以及非易失性存储单元,用于存储操作系统的运行的映像。
操作系统首先安装在第一计算机上,开始执行操作系统,然后将操作系统的运行的映像保存在第一计算机系统上。然后,可以将操作系统的运行的映像从第一计算机系统传输到可移动操作系统模块的非易失性存储单元。
在将操作系统的运行的映像传输到可移动操作系统模块之后,从第一计算机系统上取出可移动操作系统模块并提供给第二计算机系统的用户。用户可以将可移动操作系统模块插入到用于接收可移动模块的第二计算机系统的物理接口。第二计算机系统可以检测到可移动操作系统模块已经插入到第二计算机系统的物理接口,并将操作系统的运行的映像从可移动模块加载到从第二计算机系统中包括的一个或多个处理器可访问的第二存储器。然后,可以由处理器执行加载的操作系统。
可移动操作系统模块上的操作系统的运行的映像可以由用户更新。第二计算机系统可以连接到计算机网络,并由第二计算机系统发送操作系统更新的请求。在响应请求在第二计算机系统上接收到操作系统的第二运行的映像之后,存储在可移动操作系统模块的非易失性存储单元上的操作系统的运行的映像可以使用操作系统的第二运行的映像进行更新。
用户可以通过第二计算机系统支付对应于操作系统更新的价格的金额来购买更新。支付金额可以是电子形式,从第二计算机系统通过计算机网络发送到制造商的网站,在此可以接收支付信息。
或者,用户可以从第二计算机系统取出可移动操作系统模块,并将模块发送到操作系统服务提供商。服务提供商可以更新可移动模块上的操作系统的运行的映像,并将可移动操作系统模块发回到用户。
前述的内容是一个概述,因此,只是详细内容的简化形式;因此,那些精通本技术的人将理解,概述只是说明性的,而不以任何方式作出限制。如权利要求所定义的本发明的其他方面,本发明的功能,将在非限制性的详细描述中,变得显而易见。
附图说明
通过参考附图,那些精通本技术的人将会更好地理解本发明,本发明的目标、特点和优点将变得显而易见。不同图形中的相同的参考符号表示类似或相同的项目。
图1是说明可以在两个计算机系统之间互换的操作系统模块的方框图;
图2是说明用于接受包含CPU和存储了操作系统的运行的映像的非易失性存储器的模块的计算机系统的方框图;
图3是说明用于接受包含CPU和存储了操作系统的运行的映像的非易失性存储器的模块的计算机系统的方框图;
图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,所述的设备包括该设备的设备驱动程序135。设备驱动程序135安装在计算机系统110上,以促进计算机系统110和其他设备130之间的通信。其他设备130可以在其他设备130连接到计算机系统110时向计算机系统110提供设备驱动程序135,结果,用户不需要从别的来源获取其他设备130的设备驱动程序。
计算机系统110还包括可移动操作系统模块接口137,所述的接口可以接收诸如可移动操作系统模块180之类的可移动操作系统模块。可移动操作系统模块180包括非易失性存储器185和操作系统执行映像190。在将可移动操作系统模块180插入到可移动操作系统模块接口137时,BIOS 115检测可移动操作系统模块180,并将操作系统执行映像从可移动操作系统模块180加载到存储单元125中。然后,BIOS 115在计算机系统110上启动操作系统的执行。加载的操作系统操作并控制计算机系统110,并在非易失性存储器120、存储器120、BIOS 115和其他设备140之间提供接口。
同样,计算机系统140包括BIOS 145,用于在加载操作系统之前执行计算机系统140的基本输入/输出,非易失性存储器160,用于存储在计算机系统上安装的应用程序,用户的设置等等,存储器165,用于在计算机系统的操作过程中作为临时存储器。计算机系统110还包括诸如打印机之类的其他设备170,所述的设备包括该设备的设备驱动程序175。设备驱动程序135安装在计算机系统140上,以促进计算机系统140和其他设备170之间的通信。其他设备170可以在其他设备170连接到计算机系统140时向计算机系统140提供设备驱动程序175,结果,用户不需要从别的来源获取其他设备170的设备驱动程序。计算机系统140还包括可移动操作系统模块接口177,所述的接口可以接收诸如可移动操作系统模块180之类的可移动操作系统模块。
可移动操作系统模块180可以从计算机系统110取出,随后插入到计算机系统140,模块上的操作系统能够运行并控制任何一个计算机系统。在将可移动操作系统模块180插入到可移动操作系统模块接口177时,BIOS 145检测可移动操作系统模块180,并将操作系统执行映像从可移动操作系统模块180加载到存储单元165中。然后,BIOS 115以与计算机系统110的非常类似的方式在计算机系统140上启动操作系统的执行。加载的操作系统现在可以操作并控制计算机系统140,并在非易失性存储器160、存储器165、BIOS 145和其他设备170之间提供接口。
图2是说明用于接受包含CPU和存储了操作系统的运行的映像的非易失性存储器的模块的计算机系统的方框图。操作系统的运行的映像是包含初始化和执行的操作系统的存储器的快照,其中包括执行内部操作系统任务。
计算机系统201包括CPU 294,所述的CPU驻留在可移动模块290上。可移动模块290还包括非易失性RAM 292,可以取出和重新插入到计算机系统201中。可移动模块290连接到主机总线202,所述的总线将可移动模块290连接到计算机系统201。非易失存储器292包含操作系统运行映像294,在将可移动模块290插入到计算机系统201时,被加载,并开始执行以操作和控制计算机系统201。
二级(L2)高速缓存204也连接到主机总线202。主机到PCI桥206连接到主存储器208,包括高速缓存和主存储器控制功能,并提供总线控制以处理PCI总线210、处理器200、L2缓存204、主存储器208,以及主机总线202之间的传输。主存储器208连接到主机到PCI桥206以及主机总线202。只由CPU 294使用的诸如局域网网卡230之类的设备连接到PCI总线210。服务处理器接口和ISA访问通路212在PCI总线210和PCI总线214之间提供了接口。如此,PCI总线214与PCI总线210绝缘。诸如快闪存储器218之类的设备连接到PCI总线214。在一个实施例中,快闪存储器218包括BIOS代码,所述的代码包括用于执行各种低级别的系统功能和系统引导功能所需要的处理器可执行代码。
PCI总线为由CPU 294和服务处理器216共享的各种设备,包括快闪存储器218,提供了接口。PCI到ISA桥235提供了总线控制,以处理PCI总线214和ISA总线240、通用串行总线(USB)功能245、电源管理功能255之间的传输,并可以包括其他未显示的功能元件,如实时时钟(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。或者,许多I/O设备可以由连接到ISA总线240的超级I/O控制器(未显示)进行调节。
为了将计算机系统201连接到另一个计算机系统以通过网络复制文件,可以将局域网网卡230连接到PCI总线210。同样,为了将计算机系统201连接到ISP以使用电话线路连接到因特网,可以将调制解调器275连接到串行端口264和PCI到ISA桥235。
图3是说明用于接受包含CPU和存储了操作系统的运行的映像的非易失性存储器的模块的计算机系统的方框图。计算机系统301包括连接到主机总线302的处理器300。可移动模块390还包括非易失性RAM 392,可以取出和重新插入到计算机系统301中。可移动模块390连接到主机总线302,所述的总线将可移动模块390连接到计算机系统301。非易失存储器392包含操作系统运行映像394,在将可移动模块390插入到计算机系统301时,被加载,并开始执行以操作和控制计算机系统301。
二级(L2)高速缓存304也连接到主机总线302。主机到PCI桥306连接到主存储器308,包括高速缓存和主存储器控制功能,并提供总线控制以处理PCI总线310、处理器300、L2缓存304、主存储器308,以及主机总线302之间的传输。主存储器308连接到主机到PCI桥306以及主机总线302。只由主处理器300使用的诸如局域网网卡330之类的设备连接到PCI总线310。服务处理器接口和ISA访问通路312在PCI总线310和PCI总线314之间提供了接口。如此,PCI总线314与PCI总线310绝缘。诸如快闪存储器318之类的设备连接到PCI总线314。在一个实施例中,快闪存储器318包括BIOS代码,所述的代码包括用于执行各种低级别的系统功能和系统引导功能所需要的处理器可执行代码。
PCI总线314为由主处理器300和服务处理器316共享的各种设备,包括快闪存储器318,提供了接口。PCI到ISA桥335提供了总线控制,以处理PCI总线314和ISA总线340、通用串行总线(USB)功能345、电源管理功能355之间的传输,并可以包括其他未显示的功能元件,如实时时钟(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。或者,许多I/O设备可以由连接到ISA总线340的超级I/O控制器(未显示)进行调节。
为了将计算机系统301连接到另一个计算机系统以通过网络复制文件,可以将局域网网卡330连接到PCI总线310。同样,为了将计算机系统301连接到ISP以使用电话线路连接到因特网,可以将调制解调器375连接到串行端口364和PCI到ISA桥335。
图4是说明将操作系统模块插入了和没有插入计算机系统的计算机系统状态的方框图。计算机系统410包括BIOS 428,用于在执行操作系统之前执行基本输入/输出功能,CPU 430,用于处理运行和控制计算机系统410的指令,非易失性存储器434,用于存储安装的应用程序,用户的设置等等,RAM 412,用于在计算机系统410的操作过程中作为临时存储器。
此外,计算机系统410包括可移动操作系统模块接口425,所述的接口能够接收可移动操作系统模块424。可移动操作系统模块424包括非易失性存储器中的操作系统运行的映像426。
在将可移动操作系统模块424插入到可移动操作系统模块接口425时,BIOS 428将操作系统运行的映像426加载从可移动操作系统模块424的非易失性存储器加载到RAM 412(操作系统RAM414)并启动操作系统的执行。
随后,操作系统从非易失性存储器434加载连接到计算机系统410的任何外部设备所需的任何设备驱动程序(设备驱动程序RAM416),输入/输出配置(I/O配置RAM 418),以及任何请求的应用程序(应用程序RAM 420)。
在从计算机系统410中取出可移动操作系统模块424时,加载过程相反。操作系统的当前状态在可移动操作系统模块424上更新,应用程序信息、I/O配置和设备驱动程序在非易失性存储器434上更新。在取出时,可移动操作系统模块可以插入另一个兼容的计算机系统,以便模块的操作系统现在可以控制和操作其他计算机系统。
图5是说明将操作系统模块插入计算机系统和从计算机系统中取出的过程的流程图。过程从500开始,在步骤510中,用户将可移动操作系统模块插入到用于接收模块的计算机系统。可移动操作系统模块包含操作系统的运行的映像,所述的运行的映像存储在模块上的非易失性存储器上。在步骤515中,计算机系统的BIOS在插入时检测可移动操作系统模块,并开始将操作系统从模块上的非易失性存储器加载到计算机系统的RAM中。在操作系统完成加载之后,BIOS启动操作系统的执行,然后将控制传递到操作系统中。图6中的流程图提供了有关在步骤515中进行的处理的比较详细的信息。
在步骤520中,操作系统发现连接到此计算机的本地设备。操作系统比较在从此计算机系统中取出可移动操作系统模块之前包含设备的列表与当前发现的设备,并相应地更新设备的列表。图7中的流程图提供了有关在步骤520中进行的处理的比较详细的信息。
在步骤525中,操作系统发现当用户使用不同的计算机系统时可由计算机系统或由用户进行访问的任何远程设备。图8中的流程图提供了有关在步骤525中进行的处理的比较详细的信息。图9中的流程图提供了有关在步骤525中进行的处理的比较详细的信息。
在步骤530中,操作系统初始化在最后从计算机系统中取出可移动操作系统模块之前休眠或者以别的方式挂起的应用程序。
在步骤535中,操作系统对计算机系统进行管理。操作系统执行由用户或由执行应用程序所请求的任务。图10中的流程图提供了有关在步骤535中进行的处理的比较详细的信息。
然后,在判断540就用户是否请求取出可移动操作系统模块进行判断。如果用户还没有请求取出可移动操作系统模块,判断540转到“否”分支550,并返回到步骤535,在此操作系统继续执行请求的任务。
如果用户请求取出可移动操作系统模块,判断540转到“是”分支545,过程在步骤555继续,操作系统的状态保存在可移动操作系统模块上。图11中的流程图提供了有关在步骤555中进行的处理的比较详细的信息。
在步骤560中,在取出可移动操作系统模块的所有准备工作都已经执行之后,将通知用户,“可以安全地取出模块”,在步骤565中,用户取出可移动操作系统模块。过程在599结束。
图6是说明BIOS检测可移动操作系统模块、加载操作系统和将控制传递到操作系统的过程的流程图。过程从600开始,在步骤610中,BIOS检测插入的可移动操作系统模块。可移动操作系统模块可以包括即插即用类型的功能,以便给计算机系统提供有关模块的初始信息。
在步骤615中,BIOS将操作系统的运行的映像从可移动操作系统模块加载到计算机系统的RAM中。在加载操作系统时,BIOS可以直接将操作系统的运行的映像复制到RAM,或者BIOS可以将模块的存储器地址映像到RAM地址以从模块运行操作系统,或者,BIOS可以将操作系统的映像从模块上的休眠的保存状态恢复到RAM,或上述情况的组合。要在可移动操作系统模块上的存储器地址和计算机系统的RAM之间建立映像,可以指派基准地址,例如,在插入时通过预先确定的自动分配指派,或者,通过将RAM中的基准地址预留给操作系统,或者通过使用硬件插脚检测并重新定位来进行。
在步骤620中BIOS提示用户是否恢复执行操作系统还是通过有效地重新引导系统或重新初始化模块来重新启动操作系统。在步骤625中,接收用户的输入。
然后,在判断625处就用户是否选择重新启动操作系统进行判断。如果用户已经选择了重新启动系统,判断625转到“分支”635,其中,在步骤655中,从模块获取操作系统的重新启动入口点。在模块的初始创建过程中或者在从计算机系统中取出模块之前操作系统的状态保存在模块中时,操作系统重新启动点将保存在模块中。重新启动入口点代表这样的一个点,在此,重新初始化处理,而在最后一次取出可移动操作系统模块之前不考虑操作系统的以前的状态。在步骤660中,操作系统开始在重新启动入口点开始执行。随后,过程在699结束。
如果用户没有选择重新启动系统,而是选择了恢复操作系统,判断625转到“否”分支640,在步骤645中,从模块获取操作系统的恢复入口点。在最后从计算机系统中取出模块之前,操作系统恢复点将保存在模块上。恢复入口点代表了这样的一个点,在操作系统的状态保存在可移动操作系统模块之前处理停止。在步骤650中,操作系统开始从恢复入口点执行。随后,过程在699结束。
图7是说明发现连接到计算机系统的本地设备的过程的流程图。过程从700开始,在此,在判断710处就本地设备驱动程序配置文件是否存在于本地计算机系统的非易失性存储器中进行判断。如果设备驱动程序配置文件不存在,判断710转到“no”分支714,在步骤736中,将创建本地设备驱动程序配置文件。处理随后在判断738处继续。设备驱动程序配置文件包含在计算机系统最后一次休眠、挂起或关闭之前连接到计算机系统的所有本地设备的列表。此列表可能不一定反映当前存在的设备,因为自从计算机系统最后一次操作以来可能已经添加了新设备并且可能会有旧设备可能已经断开连接。
如果设备驱动程序配置文件存在,则判断710转到“是”分支712,从本地计算机系统中加载设备驱动程序配置文件。在步骤718中,从配置文件中选择第一个设备,然后,在判断720处就所选择的设备当前是否连接到计算机系统进行判断。如果设备不可用,则判断720转到“分支”722,在步骤726中从设备驱动程序配置文件中删除所选择的设备。然后过程在判断728处继续。如果所选择的设备可用,则判断720转到“是”分支724,跳过删除步骤。
在判断728处,就设备驱动程序配置文件中是否存在更多的需要进行检查的设备驱动程序进行判断。如果有更多的设备驱动程序存在,则判断726转到“是”分支732,在步骤734中,选择下一个设备驱动程序,过程返回到判断720。如果在设备驱动程序配置文件中没有更多的设备驱动程序,则判断728转到“否”分支730,在此,过程在判断736处继续。
在判断738处,就最后一次计算机系统被打开以来是否有新的设备连接到计算机系统进行判断。如果没有新的设备存在,则判断738转到“否”分支,设备驱动程序配置文件不需要进一步的更新,过程在799结束。如果有新的设备存在,则判断738转到“是”分支742,在步骤746中选择发现的第一个新设备。在步骤746中,判断并加载对应于新发现的设备的设备驱动程序。
并相应地更新操作系统的任何注册表。此外,还要更新本地设备驱动程序配置文件,以包括新发现的设备。
然后,在判断748处就是否存在更多需要注册的新设备进行判断。如果不存在更多新设备,则判断748转到“否”分支750,过程在799结束。如果存在更多新设备,则判断748转到“是”分支752,在步骤754中,选择下一个新设备,然后处理回到746,以便设置新设备并更新适当的文件。
图8是说明发现可由计算机系统进行访问的远程设备的过程的流程图。过程从800开始。然后,在判断910处就在本地计算机系统上是否存在远程设备驱动程序配置文件进行判断。如果在计算机系统上不存在远程设备驱动程序配置文件,则判断810转到“否”分支814,过程在判断818处继续。
如果在计算机系统上存在远程设备驱动程序配置文件,判断810转到“是”分支812,在此,加载远程设备驱动程序配置文件,以获取计算机系统最后一次启动时连接到计算机系统的远程设备的列表。然后过程在判断818处继续。
在判断818处,就可移动操作系统模块上是否存在远程设备驱动程序配置文件进行判断。一个单独的远程设备驱动程序配置文件可以保留在模块的用户优选的远程设备的模块上。如果远程设备驱动程序配置文件不存在,则判断818转到“否”分支820,在此,过程在步骤826处继续。如果远程设备驱动程序配置文件存在,则判断816转到“是”分支822,在步骤824中,从模块加载远程设备驱动程序配置文件。然后过程在步骤826处继续。
在步骤826中,选择第一远程设备驱动程序,并在步骤828中,联系远程设备驱动程序注册表服务器,以就远程设备是否仍可用进行判断。然后,在判断830处就设备是否可用进行判断。如果设备不可用,则判断830转到“否”分支,过程在判断838处继续。
如果设备不可用,则判断830转到“是”分支832,在步骤836中,联系远程设备驱动程序注册表服务器,以接收必需的信息以安装设备。图31中的流程图提供了有关在步骤836中进行的处理的比较详细的信息。
然后,在判断838处就是否存在更多需要检查的新驱动程序进行判断。如果不存在更多需要检查的驱动程序,则判断838转到“否”分支840,过程在899结束。如果存在需要检查的更多驱动程序,则判断838转到“是”分支842,在步骤844中,选择一个新设备驱动程序,然后,处理回到步骤828,以检查所选择的驱动程序。
图9是说明初始化应用程序以在计算机系统上执行的过程的流程图。这些是在计算机系统上执行的应用程序,并在最后一次可移动操作系统模块从计算机系统取出之后休眠或挂起。过程从900开始,在步骤910中,操作系统从可移动操作系统模块加载应用程序状态数据文件。应用程序状态数据文件包括诸如用户所处理的文件、对文件进行编辑的位置等等信息。
然后,在判断912处就是否存在更多需要恢复的应用程序进行判断。如果不存在需要恢复的应用程序,则判断912转到“否”分支916,过程在999结束。如果存在需要恢复的应用程序,则判断912转到“是”分支914,在步骤916中,选择第一个这样的应用程序。
然后,在判断920处就在当前计算机系统上所选择的应用程序是否可用进行判断。操作系统模块的用户可能在以前的计算机系统上执行一个当前计算机系统上不可用或没有安装的应用程序。如果应用程序在当前计算机系统上不可用,则判断920转到“否”分支924,应用程序的状态信息保留在应用程序状态数据文件中。保留该信息是为了在将来的计算机系统中可以恢复对应的应用程序。然后过程在判断928处继续。
如果应用程序在当前计算机系统上可用,则判断920转到“是”分支922,开始启动应用程序。在步骤934中,操作系统预留用于启动应用程序的适当的存储器量,在步骤936中,执行对应的可执行程序,以启动应用程序。在步骤938中,操作系统使用来自应用程序状态数据文件中的数据,将应用程序恢复到模块的用户以前留下的状态。例如,如果应用程序是Microsoft Word,则启动用户最后一次编辑的文件,将编辑的位置设置到最后一次编辑的位置,将工具栏配置设置到最后一个工具栏配置等等。然后过程在判断928处继续。
在判断928,就是否有更多的应用程序需要恢复进行判断。如果不存在更多需要恢复的应用程序,则判断928转到“否”分支932,过程在999结束。如果有更多应用程序需要恢复,则判断928转到“是”分支930,在步骤940中,选择下一个应用程序,处理回到判断920,以继续恢复过程。
图10是说明在操作系统被加载之后管理操作系统的过程的流程图。过程从1000开始,在步骤1010中,操作系统等待用户的或应用程序的任务请求。请求的任务可以是,打印、输入文本、显示图形、执行计算等等。在判断1015处,就是否请求了任务进行判断。如果没有请求任务,则判断1015转到“否”分支1025,处理回到步骤1010,操作系统继续等待任务请求。
如果请求了任务,则判断1015转到“是”分支1020,在判断1030处就完成任务所需要的可执行程序及其他文件是否已经加载到RAM中进行判断。操作系统的某些部分可能不会加载到RAM中,而是可能保留在可移动操作系统模块的非易失性存储器中。如果所有必需的文件都已经加载,则判断1030转到“是”分支1035,过程在步骤1050继续。
如果没有加载用于执行被请求的任务的必需的所有文件,则判断1030转到“否”分支1040,在步骤1045中,则从可移动操作系统模块的非易失性存储器加载其余的所需的文件。在步骤1050中,由操作系统执行所请求的任务。随后过程返回到步骤1010,在此,操作系统继续等待另一个任务请求。
图11是说明在取出模块之前将操作系统状态保存在可移动操作系统模块上的过程的流程图。过程从1100开始,由操作系统执行可移动操作系统模块取出应用程序。然后,在判断1115处就是否有任何应用程序或进程仍在执行进行判断。如果没有更多应用程序或进程仍在执行,则判断1115转到“否”分支1125,过程在步骤1 150处继续。
如果有应用程序或进程仍在执行,则判断1115转到“是”分支1120,在步骤1130处选择下一个正在执行的应用程序或进程。在步骤1135中,操作系统停止执行进程或应用程序,在步骤1140中,应用程序的或进程的状态信息保存到可移动操作系统模块上的应用程序的状态信息数据文件中。如果文件不存在,则创建一个新文件。例如,如果应用程序是Word,则将保存最后一个编辑位置,工具栏配置等等。在步骤1145中,当前正在被应用程序访问的任何文件的名称保存在可移动操作系统模块上。下一次模块插入到计算机系统时,将在适当的编辑点用适当的应用程序打开适当的文件。
在步骤1150中,操作系统的当前状态将保存在模块上。此信息将用于在下一次模块被插入到计算机系统时重新启动操作系统。操作系统状态包括诸如桌面布局、快捷方式列表、配色方案及其他用户首选项之类的项目。
在步骤1155中,确定最后一个操作系统执行点,并作为“恢复”点保存在可移动操作系统模块中。当操作系统再次从可移动操作系统模块加载并且用户从最后一个执行点选择恢复操作系统而不是重新启动操作系统时,可以使用“恢复”点。
在步骤1160中,将有关远程设备驱动程序的信息保存在模块上的远程设备驱动程序配置文件中。下一次将可移动操作系统模块插入到计算机系统时,可以使用此信息重新连接到可用的远程设备。在步骤1165中,也可以将任何其他非计算机系统特定的数据(即,只与模块关联的数据)保存在可移动操作系统模块中。
图12是说明将操作系统/应用程序模块插入了和没有插入计算机系统的计算机系统状态的方框图。计算机系统1210包括BIOS1228,用于在执行操作系统之前执行基本输入/输出功能,CPU 1230,用于处理运行和控制计算机系统1210的指令,非易失性存储器1234,用于存储安装的应用程序,用户的设置等等,RAM 1212,用于在计算机系统1210的操作过程中作为临时存储器。
此外,计算机系统1210还包括可移动操作系统/应用程序模块接口1225,所述的接口能够接收可移动操作系统/应用程序模块1224。可移动操作系统/应用程序模块1224还在非易失性存储器中包括操作系统运行的映像1226以及一个或多个应用程序的运行的映像。
在将可移动操作系统/应用程序模块1224插入到可移动操作系统/应用程序模块接口1225时,BIOS 1228将操作系统和应用程序运行的映像1226从可移动操作系统/应用程序模块1224的非易失性存储器加载到RAM 1212中(操作系统RAM 1214和应用程序RAM 1220),并启动操作系统的执行。然后,执行的操作系统恢复加载的应用程序的执行。
随后,操作系统从非易失性存储器1234加载连接到计算机系统1210的任何外部设备所需的任何设备驱动程序(设备驱动程序RAM1216),输入/输出配置(I/O配置RAM 1218),以及任何请求的应用程序(应用程序RAM 1220)。除模块1222上的非易失性存储器1224外,应用程序还可以驻留在非易失性存储器1230中。
在从计算机系统1210中取出可移动操作系统/应用程序模块1224时,加载过程相反。操作系统和模块应用程序的当前状态在可移动操作系统/应用程序模块1224上更新,本地应用程序信息、I/O配置和设备驱动程序在非易失性存储器1234上更新。在取出时,可移动操作系统/应用程序模块可以插入另一个兼容的计算机系统,以便模块的操作系统现在可以控制和操作其他计算机系统,模块的应用程序可以在其他计算机系统上执行。
图13是说明将可移动操作系统/应用程序模块插入计算机系统和从计算机系统中取出的过程的流程图。过程从1300开始,在步骤1310中,用户将可移动操作系统/应用程序模块插入到用于接收模块的计算机系统。可移动操作系统/应用程序模块包含操作系统的运行的映像以及一个或多个应用程序的运行的映像,它们都存储在模块的非易失性存储器上。可移动操作系统/应用程序模块上的应用程序可以随模块带到不同的计算机系统,每个模块每个应用程序只需要一个许可证。此外,模块还提供了维护应用程序的中心点,与在不同的计算机系统上维护相同的应用程序的多个副本相反。
在步骤1312中,在插入时计算机系统的BIOS检测可移动操作系统/应用程序模块,并开始从模块上的非易失性存储器将操作系统的运行的映像加载到计算机系统的RAM中。在操作系统完成加载之后,BIOS启动操作系统的执行,然后将控制传递到操作系统。图6中的流程图提供了有关在步骤1312中进行的处理的比较详细的信息。
在步骤1314中,操作系统发现连接到此计算机的本地设备。操作系统将在将可移动操作系统模块从此计算机系统取出之前包含的设备的列表与当前发现的设备进行比较,并相应地更新设备的列表。图8中的流程图提供了有关在步骤1314中进行的处理的比较详细的信息。
在步骤1316中,操作系统发现当用户正在使用不同的计算机系统时可由计算机系统进行访问的或可由用户进行访问的任何远程设备。图8中的流程图提供了有关在步骤1316中进行的处理的比较详细的信息。
在步骤1318中,操作系统初始化在将可移动操作系统模块从计算机系统中最后一次取出之前休眠或者以别的方式挂起的本地应用程序。本地应用程序是驻留在计算机系统上的应用程序,与驻留在可移动操作系统/应用程序模块上的模块相反。图14中的流程图提供了有关在步骤1318中进行的处理的比较详细的信息。
在步骤1320中,操作系统加载并恢复驻留在可移动操作系统/应用程序模块上的并可以在当前计算机系统上执行的模块应用程序。图15中的流程图提供了有关在步骤1320中进行的处理的比较详细的信息。
在步骤1322中,操作系统对计算机系统进行管理。操作系统执行由用户或由执行应用程序所请求的任务。图10中的流程图提供了有关在步骤1322中进行的处理的比较详细的信息。
然后,在判断1324就用户是否请求取出可移动操作系统模块进行判断。如果用户还没有请求取出可移动操作系统模块,判断1324转到“否”分支1328,并返回到步骤13,在此操作系统继续执行任何请求的任务。
如果用户请求取出可移动操作系统模块,判断1324分叉到“是”分支1326,过程在步骤1330继续,操作系统的状态保存在可移动操作系统模块上。图16中的流程图提供了有关在步骤1330中进行的处理的比较详细的信息。
在步骤1332中,模块应用程序的状态保存在可移动操作系统/应用程序模块上。对应用程序的状态的更改可以包括对应用程序的工具栏或菜单的更改、对首选的文件位置的更改、正在编辑的当前文件和编辑位置,及其他用户特定的设置和首选项。图17中的流程图提供了有关在步骤1332中进行的处理的比较详细的信息。
在步骤1334中,在取出可移动操作系统模块的所有准备工作都已经执行之后,将通知用户,“可以安全地取出模块”,在步骤1336中,用户取出可移动操作系统模块。过程在1399结束。
图14是说明初始化本地应用程序以在计算机系统上执行的过程的流程图。过程从1400开始,在步骤1410中,操作系统从可移动操作系统/应用程序模块加载应用程序状态数据文件。应用程序状态数据文件包括诸如用户所处理的文件、对文件进行编辑的位置等等信息。
然后,在判断1412处就是否存在更多需要恢复的本地应用程序进行判断。如果不存在更多需要恢复的本地应用程序,则判断1412转到“否”分支1416,过程在1499结束。如果存在需要恢复的本地应用程序,则判断1412转到“是”分支1414,在步骤1419中,选择第一个这样的本地应用程序。
然后,在判断1420处就在当前计算机系统上所选择的本地应用程序是否可用进行判断。操作系统模块的用户可能在以前的计算机系统上执行一个当前计算机系统上不可用或没有安装的本地应用程序。如果本地应用程序在当前计算机系统上不可用,则判断1420转到“否”分支1424,本地应用程序的状态信息保留在本地应用程序状态数据文件中。保留该信息是为了在具有可用的本地应用程序的将来的计算机系统上恢复对应的本地应用程序。然后,过程返回到判断1412。
如果本地应用程序在当前计算机系统上可用,则判断1420转到“是”分支1422,开始启动本地应用程序。在步骤1426,操作系统预留用于启动本地应用程序的适当的存储器量,在步骤1428中,执行对应的可执行程序,以启动本地应用程序。在步骤1430中,操作系统使用来自本地应用程序状态数据文件中的数据,将本地应用程序恢复到模块的用户以前留下的状态。例如,如果本地应用程序是Word,则启动用户最后一次编辑的文件,将编辑的位置设置到最后一次编辑的位置,将工具栏配置设置到最后一个配置等等。然后,过程返回到判断1412。
图15是说明初始化模块(模块存储的)应用程序以在计算机系统上执行的过程的流程图。过程从1500开始,在步骤1510中,操作系统从可移动操作系统/应用程序模块加载应用程序状态数据文件。应用程序状态数据文件包括诸如用户所处理的文件、对文件进行编辑的位置等等信息。此外,应用程序的运行的映像可以通过保存应用程序的RAM空间的映像来进行保存。
然后,在判断1512处就是否存在更多需要恢复的模块应用程序进行判断。如果不存在需要恢复的模块应用程序,则判断1512转到“否”分支1516,过程在1599结束。如果存在需要恢复的模块应用程序,则判断1512转到“是”分支1514,在步骤1518中,选择第一个这样的模块应用程序。
然后,在判断1520处就所选择的模块应用程序是否可以在当前计算机系统上执行(与当前计算机系统兼容)进行判断。如果模块应用程序在当前计算机系统上不可用,则判断1520转到“否”分支1524,模块应用程序的状态信息保留在模块应用程序状态数据文件中。保留该信息是为了在模块应用程序与其兼容的将来的计算机系统上恢复对应的模块应用程序。然后,过程返回到判断1512。
如果模块应用程序与当前计算机系统兼容,则判断1520转到“是”分支1522,开始模块应用程序。在步骤1526中,操作系统预留用于启动模块应用程序的适当的存储器量,在步骤1528中,从模块中加载应用程序的运行的映像。恢复应用程序所需的其他状态信息,如应用程序的最后一个执行点,也从模块中加载。在步骤1530中,操作系统开始在恢复的恢复点开始执行。然后,过程返回到判断1512。
图16是说明在取出模块之前将模块应用程序保存在可移动操作系统/应用程序模块上的过程的流程图。过程从1600开始,由操作系统执行可移动操作系统/应用程序模块取出应用程序。然后,在判断1615处就是否有任何本地应用程序或进程仍在执行进行判断。如果没有更多本地应用程序或进程仍在执行,则判断1615转到“否”分支1625,过程在步骤1650处继续。
如果有本地应用程序或进程仍在执行,则判断1615转到“是”分支1620,在步骤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模块插入了和没有插入计算机系统的计算机系统状态的方框图。计算机系统1610包括BIOS 1850,用于在执行操作系统之前执行基本输入/输出功能,非易失性存储器1855,用于存储安装的应用程序和安装的操作系统,用户的设置等等,RAM1820,用于在计算机系统1810的操作过程中作为临时存储器。
此外,计算机系统1810还包括模块接口1860,用于接收CPU模块1840。CPU模块1840包括CPU 1845,在将CPU模块1840连接到计算机系统1810之后,所述的CPU 1845可以开始执行操作系统指令。
在将可移动CPU模块1840插入到模块接口1860时,BIOS1850检测模块,并开始将操作系统从非易失性存储器1855加载到RAM 1815(操作系统RAM 1820)。在加载操作系统之后,BIOS 1815使用CPU模块1840的CPU 1845启动操作系统的执行。
随后,操作系统从非易失性存储器1855加载连接到计算机系统1810的任何外部设备所需的任何设备驱动程序(设备驱动程序RAM1825),输入/输出配置(I/O配置RAM 1830),以及任何请求的应用程序(应用程序RAM 1635)。
在从计算机系统1810中取出可移动操作系统模块1624时,加载过程相反。操作系统的当前状态保存在非易失性存储器1855上,应用程序信息、I/O配置和设备驱动程序在非易失性存储器1855上更新。在取出时,可移动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 2200、设备驱动程序RAM 2225、I/O配置RAM 2230和应用程序RAM 2235。
此外,计算机系统2210还包括模块接口2240,用于接收CPU模块2260。CPU模块2260包括CPU 2265,在将CPU模块2240连接到计算机系统2210之后,所述的CPU 2265可以开始与机载CPU 2250并行地执行操作系统指令。
在将可移动CPU模块2260插入到模块接口2240时,BIOS2245检测模块,并通知操作系统存在其他CPU。最初,操作系统只将执行指令转移到机载CPU 2250。在插入CPU模块2260之后,操作系统将一个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指定为主CPU。
在步骤2455中,操作系统判断主CPU和从属CPU之间的CPU指令的分配。此外,基于CPU的功能进行分配判断。例如,如果存在两个CPU,两个CPU在计算能力方面大致相等,操作系统负载可以在两个CPU之间平均地分配。
可以将不同的CPU之间的确定负载的分配保存到计算机系统上的多个CPU配置文件中。当此CPU配置将来再次存在时,可以由操作系统对此信息进行检索。随后处理继续到步骤2430,根据确定了分配,将CPU指令分配给多个CPU。
图25是说明将操作系统/CPU模块插入了和没有插入计算机系统的计算机系统状态的方框图。计算机系统2510包括BIOS2555,用于在执行操作系统之前执行基本输入/输出功能,非易失性存储器2560,用于存储安装的应用程序、用户设置等等,RAM 2515,用于在计算机系统2510的操作过程中作为临时存储器。
此外,计算机系统2510还包括可移动操作系统/CPU模块接口2565,所述的接口能够接收可移动操作系统/CPU模块2540。可移动操作系统/CPU模块2540在非易失性存储器包括操作系统运行的映像2550,以及CPU 2550,用于执行操作系统指令,以便操作计算机系统2510。
在将可移动操作系统/CPU模块2540插入到可移动操作系统/CPU模块接口2565时,BIOS 2555将操作系统运行的映像2550从可移动操作系统/CPU模块2550的非易失性存储器加载到RAM2515中(操作系统RAM 2520)并使用模块CPU 2545启动操作系统的执行。
随后,操作系统从非易失性存储器2560加载连接到计算机系统2510的任何外部设备所需的任何设备驱动程序(设备驱动程序RAM2525),输入/输出配置(I/O配置RAM 2530),以及任何请求的应用程序(应用程序RAM 2535)。
在从计算机系统2510中取出可移动操作系统/CPU模块2540时,加载过程相反。操作系统的当前状态在可移动操作系统/CPU模块2540上更新,应用程序信息、I/O配置和设备驱动程序在非易失性存储器2560上更新。在取出时,可移动操作系统/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并通知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模块的所有准备工作都已经执行之后,将通知用户,“可以安全地取出模块”,在步骤2642中,用户取出可移动操作系统模块。过程在2699结束。
图27是说明BIOS检测可移动操作系统/CPU模块并判断模块上的操作系统和CPU和计算机系统之间的兼容性的过程的流程图。过程从2700开始,在步骤2710中,BIOS检测插入的操作系统/CPU模块。
然后,就以前是否将可移动操作系统/CPU模块插入到此计算机系统进行判断。如果以前没有将可移动操作系统/CPU模块插入到此计算机,则判断2715转到“否”分支2720,过程在步骤2730处继续。如果以前已经将可移动操作系统/CPU模块插入到此计算机,则判断2715转到“是”分支2725,在判断2726处就计算机系统上的非易失性存储器上是否存在包含操作系统/CPU信息的文件进行判断。如果计算机系统上存在包含CPU信息的文件,则判断2726转到“是”分支2728,在步骤2730中,加载包含CPU信息的文件,CPU信息包括CPU的访问地址、CPU的寻址模式,以及CPU的数据传输方法等等。
如果计算机系统上不存在包含CPU信息的文件,则判断2726转到“否”分支2729,在步骤2740中,对CPU进行查询,以便确定CPU的访问地址、CPU的寻址模式、CPU的数据传输模式等等。在步骤2745中,判断操作系统与计算机系统的兼容性。处理随后在2799中结束。
图28是说明将设备连接到计算机系统并将设备驱动程序从设备上的非易失性存储器传输到计算机系统的方框图。
计算机系统2810包括CPU 2815,用于控制计算机系统2810,连接到CPU 2615的存储单元2620,用于存储数据,也连接到CPU2815的通信接  2825,用于将计算机系统连接到其他外部设备。
设备2830包括处理器2845,用于控制设备2630,连接到处理器2845的通信接口2840,用于将设备2830连接到其他设备,也连接到处理器2845的非易失性存储器2835,用于存储数据。
设备2830是外部设备,如用于通过设备2830上的通信接口2840和计算机系统2810上的通信接口2825连接到计算机系统2610的打印机。为便于进行通信,必须首先在计算机系统上安装设备驱动程序。通常,通过软盘、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连接到也连接了远程设备驱动程序注册表服务器3015、照片打印机3020以及高分辨率扫描仪3025的计算机网络3030。为了在计算机系统3016、照片打印机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,表示模块被解锁。
在可移动模块3310被解锁的任何时间,都可以使用锁定按钮3320来将可移动模块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转到“是”分支3525,在步骤3530中,激活指纹扫描仪,并捕获手指上的指纹的图像。在步骤3535中,访问模块上的经过身份验证的指纹图像的数据库。存储在模块上的数据库包含经过身份验证可以使用模块的用户的指纹的图像。
然后就是否存在更多没有与扫描的图像进行比较的指纹图像进行判断。如果不存在更多没有比较的指纹图像,判断3540转到“否”分支3550,在步骤3560中,判断用户还没有经过身份验证。然后过程在3599处结束。
如果存在更多没有比较的指纹图像,则判断3450转到“是”分支3455,在步骤3555中,从数据库中加载下一个指纹图像并与扫描的图像进行比较。
然后在判断3565中就数据库中的指纹图像是否匹配扫描的图像进行判断。如果图像不匹配,则判断3565转到“否”分支3570,过程返回到步骤3535,以判断数据库中是否有更多需要进行比较的图像。如果图像匹配,则判断3565转到“是”分支3575,在步骤3580中,指出用户已经经过身份验证,现在可以插入模块并可以在兼容的计算机系统中使用。过程在3599处结束。
图36是说明使用模块上的眼睛视网膜扫描仪保护可移动操作系统模块的安全的过程的流程图。过程从3600开始,在步骤3610中,模块等待在视网膜扫描仪的前面出现眼睛。位于模块上的视网膜扫描仪是可操作的安全设备,用于扫描人的视网膜,以便完成识别和授权用途。
然后,在判断3615处就扫描仪的前面是否出现视网膜进行判断。如果扫描仪上不存在视网膜,则判断3615转到“否”分支3620,过程返回到步骤3610,模块继续等待在视网膜扫描仪的前面出现视网膜。
如果扫描仪上出现视网膜,则判断3615转到“是”分支3625,在步骤3530中,激活视网膜扫描仪,并捕获视网膜的图像。在步骤3635中,访问模块上的经过身份验证的视网膜图像的数据库。存储在模块上的数据库包含经过身份验证可以使用模块的用户的视网膜图像。
然后就是否存在更多没有与扫描的图像进行比较的视网膜图像进行判断。如果不存在更多没有比较的视网膜图像,判断3640转到“否”分支3650,在步骤3660中,判断用户还没有经过身份验证。然后过程在3699处结束。
如果存在更多没有比较的视网膜图像,则判断3650转到“是”分支3655,在步骤3655中,从数据库中加载下一个视网膜图像并与扫描的图像进行比较。
然后在判断3665中就数据库中的视网膜图像是否匹配扫描的图像进行判断。如果图像不匹配,则判断3665转到“否”分支3670,过程返回到步骤3535,以判断数据库中是否有更多需要进行比较的图像。如果图像匹配,则判断3665转到“是”分支3675,在步骤3680中,指出用户已经经过身份验证,现在可以插入模块并可以在兼容的计算机系统中使用。过程在3699处结束。
图37是说明使用模块上的键盘输入密码来保护可移动操作系统模块的安全的过程的流程图。过程从3700开始,在步骤3710中,模块等待在键盘上输入密码。
然后,在判断3715处就是否已经输入密码进行判断。如果没有输入密码,则判断3715转到“否”分支3720,过程返回到步骤3710,模块继续等待密码。
如果已经输入密码,则判断3715转到“是”分支3725,在步骤3730中,接收输入的密码。在步骤3735中,访问模块上的经过身份验证的密码的数据库。存储在模块上的数据库包含经过身份验证可以使用模块的用户的密码。
然后就是否存在更多没有与输入的密码进行比较的密码进行判断。如果不存在更多没有比较的密码,判断3740转到“否”分支3750,在步骤3760中,判断用户还没有经过身份验证。然后过程在3799处结束。
如果存在更多没有比较的密码,则判断3450转到“是”分支3455,在步骤3755中,从数据库中加载下一个密码并与输入的密码进行比较。
然后在判断3765中就数据库中的密码是否匹配输入的密码进行判断。如果密码不匹配,则判断3765转到“否”分支3770,过程返回到步骤3735,以判断数据库中是否有更多需要进行比较的密码。如果密码匹配,则判断3765转到“是”分支3775,在步骤3780中,指出用户已经经过身份验证,现在可以插入模块并可以在兼容的计算机系统中使用。过程在3799处结束。
图36是说明使用由用户通过计算机系统提供的安全数据防止对可移动操作系统模块进行未授权访问的过程的流程图。过程从3800开始,在步骤3610中,用户将可移动模块插入到计算机系统中。在步骤3810中,BIOS检测可移动模块,并判断模块和计算机系统是否兼容。
然后在判断3814处就模块是否被安全锁定进行判断。如果模块没有被安全锁定,则判断3814转到“否”分支3818,过程在步骤3848处继续。如果模块被安全锁定,则判断3814转到“是”分支3816,提示用户提供安全数据,以便将模块解锁。安全数据可以是密码、指纹扫描、视网膜扫描等等。
然后,在判断3828处就是否已经提供安全数据进行判断。如果没有提供安全数据,则判断3824转到“否”分支3828,过程返回到步骤3822,在此,系统等待用户提供安全数据。
如果提供了安全数据,则判断3824转到“是”分支3836,在步骤3830中,由系统接收用户输入的安全数据。在步骤3832中,访问模块上的经过身份验证的安全数据的数据库。存储在模块上的经过身份验证的安全数据可以是密码、指纹扫描、视网膜扫描等等。
图39是说明可移动模块的制造/编程的方框图。制造型计算机系统3910包括CPU 3920、RAM 3925和非易失性存储器3915。非易失性存储器3915包括将要安装在可移动模块上的操作系统的主副本。
制造型计算机系统3910还包括用于将来自可移动模块层叠3947中的可移动模块3930、3935、3940,...和3945连接到计算机系统3910的接口。在将操作系统安装在计算机系统3910之后,操作系统的运行的映像从RAM 3925传输到可移动模块3930、3935、3940,...,和3945中的每一个可移动模块。
在操作系统安装在可移动模块3930、3935、3940,...,和3945之后,可移动模块从计算机取出,并准备好进行分发。
图40是说明操作系统模块的制造和编程的过程的流程图。过程从4000开始,在步骤4010中,操作系统安装在制造型计算机系统中。安装在计算机系统上的操作系统是将要安装在可移动操作系统模块上的操作系统。在步骤4015中,执行操作系统以获取存储器中的操作系统的运行的映像。安装的操作系统将传输到可移动操作系统模块,执行的操作系统将用于获取状态信息、恢复点和重新启动点等等。
在步骤4020中,可移动操作系统模块的制造过程开始。获取一个主板,上面具有用于将不同的组件互相连接的总线、用于安装连接到总线的BIOS的接口、用于安装连接到总线的处理器的接口、用于安装连接到总线的非易失性存储器的接口,以及连接到总线的通信接口,用于连接到计算机系统上的模块接口。
在步骤4030中,将BIOS安装在主板上的BIOS接口。BIOS负责在模块和计算机系统上的模块接口之间建立初始通信。在步骤4035中,将处理器安装到主板上的处理器接口。处理器控制可移动操作系统模块的运行,如从可移动操作系统模块到计算机系统的通信以及可移动操作系统模块内的各个组件之间的通信。在步骤4040中,将非易失性存储器安装到主板上的非易失性存储器接口。一般来说,非易失性存储器用于存储数据,以及存储可移动操作系统模块上存储的操作系统的运行的映像。
然后,在判断4045中就用户是否将要制造更多模块进行判断。如果将要制造更多模块,则判断4045转到“是”分支4050,过程返回到步骤4020,在此,另一个可移动操作系统模块的制造过程开始。如果不再需要制造可移动操作系统模块,则判断4045转到“否”分支4055,在步骤4060中,将制造的可移动操作系统模块集插入到制造型计算机系统中。制造型计算机系统可以具有许多接口,用于连接到可移动操作系统模块,以促进将操作系统同时加载到多个可移动操作系统模块上。
在步骤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中,用户使用信用卡购买更新。过程在步骤4240处继续。
如果更新将免费提供,则判断4225转到“是”分支4240,在步骤4240中,用户从操作系统的制造商的网站下载并接收购买的操作系统更新可执行程序。在步骤4245中,用户执行下载的操作系统更新,并在步骤4250中,可移动操作系统模块上的操作系统被更新。
在步骤4260中,计算机重新启动,在步骤4265中,从可移动操作系统模块中加载更新的操作系统,以其更新的形式,准备好供用户使用。过程在4299处结束。
图43是说明具有模块接口的个人计算机的方框图。
计算机系统4310最初包括BIOS 4325、非易失性存储器4320、存储器4315,以及其他设备4330,所述的其他设备4330包含该设备的设备驱动程序4335。
模块接口4350还连接到计算机系统,以便能够将可移动模块连接到计算机系统4350。
图44是说明制造具有模块接口的个人计算机和连接到模块接口具有不同配置选项的模块的过程。过程从4400开始,在步骤4410中,计算机系统的制造过程开始。
在步骤4415中,获取一个主板,上面具有用于将各种组件互相连接的总线、用于安装连接到总线的BIOS的接口、用于安装连接到总线的CPU的接口、用于安装连接到总线的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处就是否要在可移动模块的非易失性存储器上和计算机系统的非易失性存储器上都安装下一个操作系统进行判断。如果将要在可移动模块的非易失性存储器和计算机系统的非易失性存储器上都安装操作系统,则判断4525转到“是”分支4530,在步骤4570中,将操作系统安装在计算机系统的主板上的非易失性存储器上。在步骤4575中,将操作系统的运行的映像安装在模块上的非易失性存储器上。然后,过程返回到判断4510,以判断是否有更多操作系统需要安装。
如果可移动模块的非易失性存储器和计算机系统的非易失性存储器上不都安装操作系统,则判断4525转到“否”分支4535,在判断4540中,就是否要将操作系统安装在计算机系统的主板上的非易失性存储器上进行判断。如果操作系统将要安装在计算机系统的主板上的非易失性存储器上,则判断4545转到“是”分支4545,在步骤4580中,将操作系统安装在计算机系统的非易失性存储器上。
如果可移动模块的非易失性存储器和计算机系统的非易失性存储器上不都安装操作系统,则判断4545转到“否”分支4535,在判断4540中,就是否要将操作系统安装在可移动模块的非易失性存储器上进行判断。如果操作系统将要安装在模块的非易失性存储器上,则判断4545转到“是”分支4560,在步骤4585中,将操作系统的运行的映像安装在可移动模块的非易失性存储器上。
如果操作系统将不安装在模块的非易失性存储器上,则判断4545转到“否”分支4565,过程返回到判断4510,以就是否有更多操作系统将要安装在计算机系统和/或可移动模块上进行判断。
图46是说明在计算机系统和/或模块上安装应用程序的过程的流程图。过程4610开始,然后在判断4610处就是否将在计算机系统上或在可移动模块上安装更多应用程序进行判断。如果没有更多需要安装的应用程序,则判断4610转到“否”分支4620,过程在4699结束。
如果有更多应用程序要安装,则判断4610转到“是”分支4615,在判断4625处就是否要在可移动模块的非易失性存储器上和计算机系统的非易失性存储器上都安装下一个应用程序进行判断。如果可移动模块的非易失性存储器和计算机系统的非易失性存储器上都将安装应用程序,则判断4625转到“是”分支4630,在步骤4670中,将应用程序安装在计算机系统的主板上的非易失性存储器上。在步骤4675中,将应用程序的运行的映像安装在模块上的非易失性存储器上。然后,过程返回到判断4610,以判断是否有更多应用程序需要安装。
如果可移动模块的非易失性存储器和计算机系统的非易失性存储器上不都安装应用程序,则判断4625转到“否”分支4635,在判断4640中,就是否要将应用程序安装在计算机系统的主板上的非易失性存储器上进行判断。如果应用程序将要安装在计算机系统的主板上的非易失性存储器上,则判断4645转到“是”分支4645,在步骤4680中,将应用程序安装在计算机系统的非易失性存储器上。
如果应用程序将不安装在计算机系统的主板上的非易失性存储器上,则判断4645转到“否”分支4650,在判断4640中,就是否要将应用程序安装在可移动模块的非易失性存储器上进行判断。如果应用程序将要安装在模块的非易失性存储器上,则判断4645转到“是”分支4660,在步骤4685中,将应用程序的运行的映像安装在可移动模块的非易失性存储器上。
如果应用程序将不安装在模块的非易失性存储器上,则判断4645转到“否”分支4665,过程返回到判断4610,以就是否有更多应用程序将要安装在计算机系统和/或可移动模块上进行判断。
图47是说明在计算机系统和/或模块上安装CPU的过程的流程图。过程从4710开始,然后在判断4710处就是否将在计算机系统上或在可移动模块上安装更多CPU进行判断。如果没有更多需要安装的CPU,则判断4710转到“否”分支4720,过程在4799结束。
如果有更多CPU要安装,则判断4710转到“是”分支4715,在判断4725处就是否要在可移动模块和计算机系统上都安装下一个CPU进行判断。如果可移动模块和计算机系统上都将安装CPU,则判断4725转到“是”分支4730,在步骤4770中,将CPU安装在计算机系统的主板上。在步骤4775中,将CPU安装在模块上。然后,过程返回到判断4710,以判断是否有更多CPU需要安装。
如果可移动模块和计算机系统上不都安装CPU,则判断4725转到“否”分支4735,在判断4740中,就是否要将CPU安装在计算机系统的主板上进行判断。如果CPU将要安装在计算机系统的主板上,则判断4745转到“是”分支4745,在步骤4780中,将CPU安装在计算机系统上。
如果CPU将不安装在计算机系统的主板上,则判断4745转到“否”分支4750,在判断4740中,就是否要将CPU安装在可移动模块上进行判断。如果CPU将要安装在模块上,则判断4745转到“是”分支4760,在步骤4780中,将CPU安装在可移动模块上。
如果CPU将不安装在模块上,则判断4745转到“否”分支4765,过程返回到判断4710,以就是否有更多CPU将要安装在计算机系统和/或可移动模块上进行判断。
图48是说明了信息处理系统的方框图,所述的信息处理系统是能够执行这里所描述的操作的计算机系统的简化示例。
图48说明了信息处理系统4801,这是一个能够执行这里所描述的计算操作的计算机系统的简化示例。计算机系统4801包括连接到主机总线4802的处理器4800。二级(L2)高速缓存4804也连接到主机总线4802。主机到PCI桥4806连接到主存储器4608,包括高速缓存和主存储器控制功能,并提供总线控制以处理PCI总线4810、处理器300、L2缓存4804、主存储器4608,以及主机总线4802之间的传输。主存储器4808连接到主机到PCI桥4806以及主机总线4802。只由主处理器4800使用的诸如局域网网卡4830之类的设备连接到PCI总线4810。服务处理器接口和ISA访问通路4812在PCI总线4810和PCI总线4814之间提供了接口。如此,PCI总线4814与PCI总线4810绝缘。诸如快闪存储器4818之类的设备连接到PCI总线4814。在一个实施例中,快闪存储器4818包括BIOS代码,所述的代码包括用于执行各种低级别的系统功能和系统引导功能所需要的处理器可执行代码。
PCI总线4814为由主处理器4800和服务处理器4816共享的各种设备,包括快闪存储器4818,提供了接口。PCI到ISA桥4835提供了总线控制,以处理PCI总线4814和ISA总线4840、通用串行总线(USB)功能4845、电源管理功能4855之间的传输,并可以包括其他未显示的功能元件,如实时时钟(RTC)、DMA控制、中断支持,以及系统管理总线支持。非易失性RAM 4820连接到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。或者,许多I/O设备可以由连接到ISA总线4840的超级I/O控制器(未显示)进行调节。
为了将计算机系统4801连接到另一个计算机系统以通过网络复制文件,可以将局域网网卡4830连接到PCI总线4810。同样,为了将计算机系统4801连接到ISP以使用电话线路连接到因特网,可以将调制解调器4875连接到串行端口4864和PCI到ISA桥4835。
尽管图48中所描述的计算机系统能够执行这里所描述的进程,但是,此计算机系统只不过是计算机系统的一个示例。那些精通本技术的人将理解,许多其他计算机系统设计也能够执行这里所描述的进程。
本发明的其中一个优选实施例是应用程序,即,代码模块中的一组指令(程序代码),例如,可以是驻留在计算机的随机存取存储器中的一组指令。直到计算机需要,指令集可以存储在另一台计算机的存储器中,例如,存储在硬盘驱动器中,或在诸如光盘之类的可移动存储器中(用于CD ROM中)或软盘(用于软盘驱动器中),或通过因特网或其他计算机网络下载。如此,本发明可以作为在计算机中使用的计算机程序产品来实现。此外,虽然这里所描述的各种方法可以方便地以通用计算机(有选择地由软件激活或重新配置)来实现,但是,那些精通本技术的普通人员也将认识到,这样的方法可以以硬件、固件或为执行所要求的方法步骤所制造的比较专门的设备来执行。
尽管这里显示和描述了本发明的特定实施例,但是,对那些精通本技术的人很明显,基于这里所提供的原理,在不偏离本发明的精神和范围的情况下,可以进行各种修改。因此,所附加的权利要求包含在它们的范围内,所有这样的更改和修改都在本发明的真正的精神和范围内。此外,应该理解,本发明只由所附加的权利要求进行定义。那些精通本技术的人应该理解,如果给所引入的权利要求元素使用了特定的编号,其意图将在权利要求书中清楚地阐述,没有这些编号也不会构成限定。为了便于理解,举一个非限制性的例子,下面所附的权利要求书中包含“至少一个”和“一个或多个”这样的语句来引入权利要求的元素。  然而,使用这样的句子不应该被理解为暗指,包含这样的引入的权利要求元素的任何特定权利要求由不定冠词“a”或“an”引入的权利要求元素将限制为只包含一个这样的元素的发明,即使在同一权利要求中包括引入性语句“一个或多个”或“至少一个”以及诸如“a”或“an”的不定冠词时;上述说明同样适用于在权利要求中使用定冠词的情况。

Claims (24)

1.一种用于在可移动模块上存储操作系统的方法,该方法包括:
将可移动模块插入到第一计算机系统,其中可移动操作系统模块包括:
用于连接可移动模块与带电的计算机系统的接口,以及
非易失性存储单元;
将操作系统的运行的映像存储到可移动操作系统模块的非易失性存储单元上,其中在存储之后,操作系统在将可移动模块插入到第二计算机系统时可以由第二计算机系统执行。
2.根据权利要求1所述的方法,进一步包括:
在第一计算机系统上安装操作系统;
执行操作系统;
保存正在执行的操作系统的运行的映像;以及
将所保存的操作系统的运行的映像传输到可移动模块中包括的非易失性存储单元上。
3.根据权利要求1所述的方法,进一步包括从第一计算机系统上取出可移动模块并将可移动操作系统模块提供给第二计算机系统的用户。
4.根据权利要求3所述的方法,进一步包括:
将可移动模块插入到位于第二计算机系统上的物理接口;
检测可移动模块已插入到物理接口中;
将操作系统的运行的映像从可移动模块加载到从第二计算机系统中包括的一个或多个处理器可访问的第二存储单元中;以及
由处理器执行操作系统。
5.根据权利要求4所述的方法,进一步包括:
将第二计算机系统连接到计算机网络;
从第二计算机系统发送对操作系统进行更新的请求;
响应所述请求在第二计算机系统中接收操作系统的第二运行的映像;以及
使用第二运行的映像更新非易失性存储单元上存储的操作系统的运行的映像。
6.根据权利要求5所述的方法,进一步包括:
在第二计算机系统中接收对应于操作系统更新的支付金额;以及
通过计算机网络从第二计算机系统发送电子支付,电子支付对应于支付金额。
7.根据权利要求6所述的方法,进一步包括:
通过计算机网络将第二计算机系统连接到制造商的网站,其中从网站接收支付信息,并且将电子支付发送到制造商的网站。
8.根据权利要求3所述的方法,进一步包括:
从第二计算机系统中取出可移动模块;
将可移动模块发送到操作系统服务提供商,其中服务提供商更新可移动模块上的操作系统的运行的映像;以及
从服务提供商接收具有更新的操作系统的可移动模块。
9.一种用于在可移动操作系统模块上存储操作系统的信息处理系统,该信息处理系统包括:
一个或多个处理器;
连接到处理器的第一存储单元,其中第一存储单元用于存储操作系统的运行的映像;以及
可移动操作系统模块接口,连接到一个或多个处理器并用于接收可移动操作系统模块,
其中可移动操作系统模块包括第二存储单元,
其中一个或多个处理器用于将操作系统的运行的映像从第一存储单元传输到第二存储单元,以及
其中在传输之后,操作系统在将可移动模块插入到第二信息处理系统时可以由第二信息处理系统执行。
10.根据权利要求9所述的信息处理系统,其中一个或多个处理器用于:
将操作系统最初加载到第一存储单元中,
执行操作系统以创建操作系统的运行的映像,
将操作系统的映像传输到可移动操作系统模块上的第二存储单元。
11.根据权利要求9所述的信息处理系统,其中可移动操作系统模块可以:
从可移动操作系统模块接口中取出,以及
提供给第二信息处理系统的用户。
12.根据权利要求11所述的信息处理系统,其中可移动操作系统模块进一步可以:
插入到第二信息处理系统的第二可移动操作系统模块,
由第二可移动操作系统模块接口检测,
将存储在可移动操作系统模块的第二存储单元上的操作系统的运行的映像传输到第二信息处理系统的第三存储单元,
其中第三存储单元可由第二信息处理系统的一个或多个处理器的第二组进行访问,以及
其中第二组一个或多个处理器可操作,以执行操作系统的传输的运行的映像。
13.根据权利要求12所述的信息处理系统,其中第二组一个或多个处理器可以:
促进与计算机网络的连接;
促进对操作系统更新的请求的传输;
响应所述请求促进操作系统的第二运行的映像的接收;以及
使用第二运行的映像促进存储在第二存储单元上的操作系统的运行的映像的更新。
14.根据权利要求13所述的信息处理系统,其中第二组一个或多个处理器进一步可以:
促进对应于操作系统更新的成本的支付金额的接收;以及
促进通过计算机网络进行的电子支付的传输,电子支付对应于支付金额。
15.根据权利要求14所述的信息处理系统,其中第二组一个或多个处理器进一步可以:
促进通过计算机网络连接到制造商的网站,其中从制造商的网站接收支付信息,并且将电子支付发送到制造商的网站。
16.根据权利要求11所述的信息处理系统,其中可移动操作系统模块可以:
从第二可移动操作系统模块接口中取出;
发送到操作系统服务提供商,其中服务提供商更新可移动操作系统模块上的操作系统的运行的映像;以及
重新连接到第二可移动操作系统模块接口。
17.一种计算机可操作的介质上的计算机程序产品,该计算机程序产品包括:
用于与可移动操作系统模块接口进行通信的装置,其中可移动操作系统模块接口用于接收可移动操作系统模块,并且可移动操作系统模块包括非易失性存储单元;
用于将操作系统的运行的映像存储到可移动操作系统模块的非易失性存储单元上的装置,其中在存储之后,操作系统在将可移动模块插入到计算机系统时可以由所述计算机系统执行。
18.根据权利要求17所述的计算机程序产品,进一步包括:
用于将操作系统的运行的映像加载到第一存储单元中的装置;
用于执行操作系统的装置;以及
用于将操作系统的运行的映像从第一存储单元传输到可移动模块的非易失性存储单元的装置。
19.根据权利要求17所述的计算机程序产品,其中可移动操作系统模块可以:
从可移动操作系统模块接口中取出,以及
提供给计算机系统的用户。
20.根据权利要求19所述的计算机程序产品,其中可移动操作系统模块进一步可以:
插入到第二计算机系统的第二可移动操作系统模块,
由第二可移动操作系统模块接口检测;
将操作系统的运行的映像从可移动操作系统模块传输到可由第二计算机系统中包括的一个或多个处理器进行访问的第二存储器中,其中所述第二计算机系统用于执行操作系统的传输的运行的映像。
21.根据权利要求20所述的计算机程序产品,其中第二计算机系统可以:
连接到计算机网络;
发送对操作系统进行更新的请求;
响应所述请求接收操作系统的第二运行的映像;以及
使用第二运行的映像更新可移动操作系统模块上存储的操作系统的运行的映像。
22.根据权利要求21所述的计算机程序产品,其中第二计算机系统可以:
接收对应于操作系统更新的支付金额;以及
通过计算机网络发送电子支付,电子支付对应于支付金额。
23.根据权利要求22所述的计算机程序产品,其中第二计算机系统可以:
通过计算机网络连接到制造商的网站,其中从网站接收支付信息,并且将电子支付发送到制造商的网站。
24.根据权利要求19所述的计算机程序产品,其中可移动操作系统模块可以:
从第二计算机系统中取出;
发送到操作系统服务提供商,其中服务提供商更新可移动操作系统模块上的操作系统的运行的映像;以及
由服务提供商与更新的操作系统一起发回。
CNB2004100563173A 2003-08-14 2004-08-06 制造和更新可插入的便携式操作系统模块的系统和方法 Active CN1275152C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/641,363 US7225440B2 (en) 2003-08-14 2003-08-14 System and method for manufacturing and updating insertable portable operating system module
US10/641,363 2003-08-14

Publications (2)

Publication Number Publication Date
CN1595356A true CN1595356A (zh) 2005-03-16
CN1275152C CN1275152C (zh) 2006-09-13

Family

ID=34136324

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100563173A Active CN1275152C (zh) 2003-08-14 2004-08-06 制造和更新可插入的便携式操作系统模块的系统和方法

Country Status (4)

Country Link
US (1) US7225440B2 (zh)
JP (1) JP4608265B2 (zh)
KR (1) KR100641665B1 (zh)
CN (1) CN1275152C (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104298531A (zh) * 2014-10-31 2015-01-21 南京酷派软件技术有限公司 操作系统的应用方法、操作系统的应用装置及终端
CN106572104A (zh) * 2016-10-28 2017-04-19 鄢碧珠 一种安全的移动式数据存储方法
CN108270846A (zh) * 2017-12-19 2018-07-10 西安电子科技大学 一种云环境下支持安全操作系统动态部署的便携式装置
CN111382436A (zh) * 2018-12-28 2020-07-07 卡巴斯基实验室股份制公司 检测用于异常系统的兼容系统的方法

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100671153B1 (ko) * 2001-04-25 2007-01-17 엘지전자 주식회사 디바이스 드라이버 설치방법
US7225440B2 (en) 2003-08-14 2007-05-29 International Business Machines Corporation System and method for manufacturing and updating insertable portable operating system module
US7120789B2 (en) * 2003-08-14 2006-10-10 International Business Machines Corporation System and method for portable on-demand central processing unit
US20050038879A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for discovery of remote device driver functionality and interface
US7225448B2 (en) 2003-08-14 2007-05-29 Lenovo (Singapore) Pte. Ltd. System and method for hibernating application state data on removable module
US7308584B2 (en) * 2003-08-14 2007-12-11 International Business Machines Corporation System and method for securing a portable processing module
US7032053B2 (en) * 2003-08-14 2006-04-18 International Business Machines Corporation System and method for loading, executing, and adapting a portable running operation system from a removable module to multiple computer systems
DE10358019A1 (de) * 2003-12-11 2005-07-14 Siemens Ag Verfahren zur Aktualisierung eines Automatisierungssystems
US20050235281A1 (en) * 2004-04-19 2005-10-20 Telefonaktiebolaget L M Ericsson (Publ) Combined software installation package
KR100792786B1 (ko) * 2005-08-26 2008-01-14 이철호 백업 이미지 파일을 이용한 컴퓨터의 최적화 운영체제 복구방법
KR100810473B1 (ko) * 2006-03-08 2008-03-07 김예진 운영체계 소스 공급 경로를 가변 시키는 멀티유저 환경의제공 방법 및 그에 따른 컴퓨터 시스템
JP4969301B2 (ja) * 2006-05-09 2012-07-04 株式会社リコー コンピュータ装置
DE102006057708A1 (de) * 2006-12-07 2008-06-12 Sick Ag Systemarchitektur und Verfahren zum sicheren Aktualisieren von Firmware
CN101645964B (zh) * 2008-08-08 2013-06-05 深圳富泰宏精密工业有限公司 移动终端及其快速显示图形的方法
US9424017B2 (en) * 2008-08-29 2016-08-23 Red Hat, Inc. Live operating system installation for Universal Serial Bus devices
KR100989191B1 (ko) * 2009-12-23 2010-10-20 주식회사 노바칩스 유에스비3.0 프로토콜로 통신하는 이동식 저장 장치 및 이를 포함하는 컴퓨터 시스템
JP5602424B2 (ja) 2009-12-24 2014-10-08 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US20120042113A1 (en) * 2010-08-12 2012-02-16 Robert Lee Mobile computing appliance for hosting a portable, bootable medium
US8819672B2 (en) * 2010-09-20 2014-08-26 International Business Machines Corporation Multi-image migration system and method
US8789034B1 (en) * 2011-12-31 2014-07-22 Parallels IP Holdings GmbH Method for updating operating system without memory reset
US9286496B2 (en) 2012-10-08 2016-03-15 Hand Held Products, Inc. Removable module for mobile communication terminal
TW201415365A (zh) * 2012-10-15 2014-04-16 Askey Computer Corp 作業系統更新的方法及手持電子裝置
US20140380292A1 (en) * 2013-06-25 2014-12-25 Xiaomi Inc. Method, device, and storage medium for upgrading operating system
KR102369319B1 (ko) * 2015-11-17 2022-03-03 삼성전자주식회사 전자 장치 및 전자 장치의 핸드오프 기능 제공 방법
KR102278811B1 (ko) * 2015-12-02 2021-07-19 삼성전자주식회사 모바일 장치를 이용한 호스트 장치의 부팅 방법
JP7053979B2 (ja) * 2018-06-29 2022-04-13 株式会社Pfu 情報処理装置、情報処理方法、及びプログラム

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4590557A (en) 1983-09-12 1986-05-20 Pitney Bowes Inc. Method and apparatus for controlling software configurations in data processing systems
US4991085A (en) 1988-04-13 1991-02-05 Chips And Technologies, Inc. Personal computer bus interface chip with multi-function address relocation pins
US5471674A (en) 1992-02-07 1995-11-28 Dell Usa, L.P. Computer system with plug-in override of system ROM
US5311397A (en) 1992-08-06 1994-05-10 Logistics Management Inc. Computer with modules readily replaceable by unskilled personnel
US5392433A (en) 1992-09-25 1995-02-21 International Business Machines Corporation Method and apparatus for intraprocess locking of a shared resource in a computer system
JPH07219885A (ja) 1994-02-04 1995-08-18 Canon Inc 情報処理システム及び電子機器及び制御方法
US5625829A (en) 1994-03-25 1997-04-29 Advanced Micro Devices, Inc. Dockable computer system capable of symmetric multi-processing operations
US5694546A (en) * 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US5547283A (en) * 1994-11-01 1996-08-20 Kronberg; James W. Optical temperature sensor using thermochromic semiconductors
US5748912A (en) 1995-06-13 1998-05-05 Advanced Micro Devices, Inc. User-removable central processing unit card for an electrical device
US6385645B1 (en) 1995-08-04 2002-05-07 Belle Gate Investments B.V. Data exchange system comprising portable data processing units
JP3386640B2 (ja) 1995-09-29 2003-03-17 株式会社東芝 コンピュータシステムおよびこのシステムで使用される拡張ユニット
US5694600A (en) * 1996-02-09 1997-12-02 Iomega Corporation Methods and apparatus for booting a computer having a removable media disk drive
US5923897A (en) 1996-04-01 1999-07-13 Microsoft Corporation System for adapter with status and command registers to provide status information to operating system and processor operative to write eject command to command register
US6292941B1 (en) * 1996-04-30 2001-09-18 Sun Microsystems, Inc. Operating system installation
US5974473A (en) 1996-06-14 1999-10-26 Texas Instruments Incorporated System for controlling insertion, locking, and removal of modules by removing plurality of device drivers for module to be removed from BIOS and informing BIOS of module removal
US6029183A (en) 1996-08-29 2000-02-22 Xybernaut Corporation Transferable core computer
US6141711A (en) 1996-12-19 2000-10-31 National Semiconductor Corporation Method and apparatus to enable insertion/ejection of a device in a computer system while maintaining operation of the computer system and application software
KR19980050678A (ko) * 1996-12-21 1998-09-15 구자홍 네트워크 컴퓨터의 데이터 저장 장치 및 방법
US6041372A (en) 1996-12-30 2000-03-21 Intel Corporation Method and apparatus for providing a processor module for a computer system
US6160813A (en) 1997-03-21 2000-12-12 Brocade Communications Systems, Inc. Fibre channel switching system and method
KR100247952B1 (ko) 1997-04-11 2000-03-15 윤종용 이동단말시스템의부팅제어장치및방법
US6154834A (en) 1997-05-27 2000-11-28 Intel Corporation Detachable processor module containing external microcode expansion memory
US6170055B1 (en) 1997-11-03 2001-01-02 Iomega Corporation System for computer recovery using removable high capacity media
US6298443B1 (en) * 1998-04-24 2001-10-02 Dell Usa, L.P. Method and system for supplying a custom software image to a computer system
US6216185B1 (en) 1998-05-01 2001-04-10 Acqis Technology, Inc. Personal computer peripheral console with attached computer module
KR20000009369A (ko) * 1998-07-23 2000-02-15 윤종용 피씨카드를장착가능한컴퓨터시스템및그것의부팅방법
US6484309B2 (en) 1998-10-08 2002-11-19 Intel Corporation Enabling software designed for one operating system to operate on another operating system
US6195695B1 (en) * 1998-10-27 2001-02-27 International Business Machines Corporation Data processing system and method for recovering from system crashes
US6438622B1 (en) 1998-11-17 2002-08-20 Intel Corporation Multiprocessor system including a docking system
US6772328B1 (en) 1999-06-18 2004-08-03 Samsung Electronics Co., Ltd. Dynamic initialization of processor module via motherboard interface
US6516372B1 (en) 1999-09-29 2003-02-04 Silicon Graphics, Inc. Partitioning a distributed shared memory multiprocessor computer to facilitate selective hardware maintenance
US6735708B2 (en) 1999-10-08 2004-05-11 Dell Usa, L.P. Apparatus and method for a combination personal digital assistant and network portable device
KR100462591B1 (ko) 1999-11-10 2004-12-20 삼성전자주식회사 휴대형 컴퓨터의 도킹 시스템
US6473789B1 (en) 1999-11-23 2002-10-29 Inventec Corporation Notebook/desktop docking system allowing both peripheral sharing and parallel processing
US6215705B1 (en) 2000-02-10 2001-04-10 Advanced Micro Devices, Inc. Simultaneous program, program-verify scheme
US6505258B1 (en) 2000-02-29 2003-01-07 Compaq Information Technologies Group, L.P. Comprehensive interface between bios and device drivers to signal events
US6594721B1 (en) 2000-02-29 2003-07-15 Hewlett-Packard Development Company, L.P. Surprise hot bay swapping of IDE/ATAPI devices
US6549968B1 (en) 2000-03-31 2003-04-15 Intel Corporation Context transferring between portable computer processor and docking station processor upon docking and undocking
US6668318B1 (en) 2000-05-31 2003-12-23 Xybernaut Corp. System and method for loading one of a plurality of operating systems and adjusting the operating frequency accordingly using transferable core computer that recognizes a system environment
US6636918B1 (en) 2000-06-29 2003-10-21 International Business Machines Corporation Mobile computing device and associated base stations
EP1176500A1 (en) 2000-07-28 2002-01-30 Hewlett-Packard Company, A Delaware Corporation Method and apparatus for job preview in printer device
US6421232B2 (en) 2000-08-02 2002-07-16 Xybernaut Corporation Dual FPD and thin client
KR20020066151A (ko) 2001-02-09 2002-08-14 한국통신정보기술 주식회사 개방형 gis 기반의 공간정보 유통시스템 및 방법
US6728734B2 (en) 2001-06-11 2004-04-27 Sony Corporation Method and apparatus to facilitate data updates between a base processing unit and a portable processing unit
KR100557554B1 (ko) * 2001-06-21 2006-03-03 주식회사 하이닉스반도체 불소가 치환된 벤질 카르복실레이트 그룹을 포함하는단량체 및 이를 함유한 포토레지스트 중합체
KR20030003611A (ko) * 2001-07-03 2003-01-10 (주)싸이버뱅크 대용량 메모리를 가지는 휴대형 단말 장치 및 그 동작 방법
US6552454B2 (en) * 2001-07-12 2003-04-22 Generac Power Systems, Inc. Generator structure incorporating multiple electrical generator sets
US6944757B2 (en) 2001-10-16 2005-09-13 Dell Products L.P. Method for allowing CD removal when booting embedded OS from a CD-ROM device
US20030112585A1 (en) 2001-12-13 2003-06-19 Silvester Kelan Craig Multiprocessor notebook computer with a tablet PC conversion capability
KR20030060342A (ko) * 2002-01-08 2003-07-16 엘지전자 주식회사 개인 휴대 정보 단말기의 부팅 방법
US20030137689A1 (en) 2002-01-18 2003-07-24 General Instrument Corporation. Remote printer driver server
US7533101B2 (en) * 2002-03-04 2009-05-12 Microsoft Corporation Extensible loader
US7379982B2 (en) * 2002-04-15 2008-05-27 Bassam Tabbara System and method for custom installation of an operating system on a remote client
US7043588B2 (en) 2002-05-24 2006-05-09 Dell Products L.P. Information handling system featuring multi-processor capability with processor located in docking station
CN1141831C (zh) 2002-06-24 2004-03-10 西安大唐电信有限公司 一种语音短信息传输系统
US7225440B2 (en) 2003-08-14 2007-05-29 International Business Machines Corporation System and method for manufacturing and updating insertable portable operating system module
KR100522040B1 (ko) * 2003-08-29 2005-10-17 한국기계연구원 압착성형장치의 편심보정용 자가정렬 스테이지
US7555568B2 (en) 2004-02-28 2009-06-30 Huang Evan S Method and apparatus for operating a host computer from a portable apparatus

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104298531A (zh) * 2014-10-31 2015-01-21 南京酷派软件技术有限公司 操作系统的应用方法、操作系统的应用装置及终端
CN106572104A (zh) * 2016-10-28 2017-04-19 鄢碧珠 一种安全的移动式数据存储方法
CN108270846A (zh) * 2017-12-19 2018-07-10 西安电子科技大学 一种云环境下支持安全操作系统动态部署的便携式装置
CN111382436A (zh) * 2018-12-28 2020-07-07 卡巴斯基实验室股份制公司 检测用于异常系统的兼容系统的方法
CN111382436B (zh) * 2018-12-28 2023-06-23 卡巴斯基实验室股份制公司 检测用于异常系统的兼容系统的方法

Also Published As

Publication number Publication date
US7225440B2 (en) 2007-05-29
US20050038960A1 (en) 2005-02-17
JP2005071347A (ja) 2005-03-17
CN1275152C (zh) 2006-09-13
KR100641665B1 (ko) 2006-11-03
JP4608265B2 (ja) 2011-01-12
KR20050018753A (ko) 2005-02-28

Similar Documents

Publication Publication Date Title
CN1275152C (zh) 制造和更新可插入的便携式操作系统模块的系统和方法
CN1313924C (zh) 用于便携运行的操作系统的系统和方法
CN1266598C (zh) 用于应用程序执行的动态java类的加载
CN1270270C (zh) 接近通信系统、接近通信方法、数据管理装置、数据管理方法、记录介质和计算机程序
CN1109983C (zh) 病毒清除方法和信息处理设备
CN101069157A (zh) 用于访问资源的方法和系统
CN1781087A (zh) 安全访问带有客户端接收的专用网的方法和系统
CN1774695A (zh) 用于计算机的总线桥安全系统与方法
CN1624657A (zh) 安全相关的编程接口
CN1791871A (zh) 企业控制台
CN1922576A (zh) 操作系统
CN1612122A (zh) 服务供给设备、服务供给程序、记录介质和服务供给方法
CN1556943A (zh) 客户终端,软件控制方法和控制程序
CN1729442A (zh) 在网络中使用共享资源的方法和装置
CN1609802A (zh) 用于管理许可的编程接口
CN1809815A (zh) 管理锁定和事务
CN1282071C (zh) 数据处理装置、数据处理方法和程序
CN1423232A (zh) 可搭载多个卡管理程序的ic卡
CN1706657A (zh) 印刷装置、控制印刷程序、记录控制印刷程序的记录媒体
CN1677277A (zh) 服务提供方法、服务提供商设备、信息处理方法和设备
CN101056346A (zh) 控制装置及其控制方法、图像处理装置控制系统
CN1702634A (zh) 便利无环境主机干预下的可分页模式虚拟环境存储管理
CN1605471A (zh) 图像形成装置、图像处理方法、图像处理程序和记录介质
CN101068299A (zh) 复合机及其控制系统和方法、控制装置及其控制方法
CN1532661A (zh) 信息提供以及用户验证设备、方法、程序和记录媒体

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: GOOGLE INC.

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORP.

Effective date: 20120503

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120503

Address after: American California

Patentee after: Google Inc.

Address before: American New York

Patentee before: International Business Machines Corp.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: Google limited liability company

Address before: American California

Patentee before: Google Inc.