首页 / 计算机系统

计算机系统有效专利 发明

技术领域

[0001] 本发明的系统与方法实施例有关于计算机启动系统。更具体地,本发明的系统与方法实施例有关于具有主要与次级启动的计算机启动系统。

相关背景技术

[0002] 具有单一启动码的计算机通常由计算机上的快闪存储器中启动。如果此单一启动码遭到破坏,计算机将无法正常启动。可能损坏启动码将会被修改,表示它不再起作用。这种情形通常要求联系制造商寻求帮助或送回计算机。接着,再由制造商提供替换的启动码,此将同时造成购买者和制造商的不方便。

具体实施方式

[0081] 为使本发明的上述和其他目的、特征、和优点能更明显易懂,下文特举出一或多个优选实施例,并配合附图,作详细说明如下。在以下描述中,各种实施例将通过举例的方式示出而不是限制在附图的图中的方法。在本公开中引用的各种实施例不一定是相同的实施例,并且这样的引用意味着至少一个。注意的是,虽然公开书依附图进行说明,然其并非用以限定本发明,任何熟悉此项技艺者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视所附权利要求书界定范围为准。
[0082] 本公开实施例提供一种用以启动一计算机的系统,其中在计算机的快闪存储器中提供一对启动(boot)(或双启动)。所述启动用以于计算机重新启动(restart)时将一操作系统载入至计算机的主存储器中的软件模块。第一快闪启动,也称为主要启动,较佳地于计算机开机时且在开机自我测试(POST)之后被启动。主要启动判断计算机中是否有存储且为可用的次级启动。当计算机中未存储有可用的次级启动时,主要启动启动计算机并且进一步计算机操作都基于主要启动。当一次级启动存在并可用时,主要启动完成,在此之后,计算机重置(reset)并使用次级启动重新启动(reboot)。
[0083] 图1显示依据本发明一实施例的计算机系统100的一双启动示意图。其中主要启动110以及次级启动120连接到一个中央处理器(CPU)或处理器130。复杂可编程逻辑装置(Complex Programmable Logic Device,简称CPLD)140也连接至CPU 130。CPU 130同时连接至主要启动110以及次级启动120。CPLD 140连接至CPU 130并控制CPU 130关于主要启动
110或次级启动120的选择。
[0084] 在计算机系统100的启动期间,在开机自我测试(POST)完成之后,CPLD140选择主要启动110作为启动程序来启动计算机系统100。此可为预设设定或一更特定的选择。
[0085] CPLD 140也判断是否次级启动120是否存在计算机系统100中并且可用。在某些情况下,次级启动120可能不存在计算机系统100中或为不可用的。举例来说但不限于,次级启动120可能不存在,因为计算机系统100是新的且次级启动120可能还没有建立。通过非限制性示例的方式,次级启动可能由于一些损坏或其他不可操作性而不可用。
[0086] 主要启动110较佳地为局部只读,使得消费者不能直接存取修改或以其他方式操作主要启动110。
[0087] 次级启动120较佳地为一局部可修改的启动,也就是说,次级启动120可以在局部建立(例如:通过消费者)来执行可或可能不与主要启动110一致的各种定制的任务与行为。或者,用户可以从另一来源载入一次级启动120,例如经由一网络。启动的双重性质可建立一环境,其中消费者可在此环境中操纵次级启动120以符合他们的定制需求,但可在故障情况下仍有可靠的固定备份,因此避免了联系制造商或送回机器的需求。
[0088] 在一些实施例中,主要启动110以及次级启动120可以是相似或不相似。如果次级启动120存在并且可用,一旦主要启动顺序完成之后,CPLD 140指示计算机系统100,经由CPU 130,使用次级启动120重新启动。
[0089] 主要启动110继续,在判断出次级启动120存在且CPU 130指示以次级启动120重新启动之后,启动各种可被连接到计算机系统的装置,例如但不限于周边装置,如图像与音效卡以及输入/输出装置。藉由在主要启动110期间启动各种周边装置,次级启动120可以跳过这些启动,或只需启动在主要启动110期间没有启动的额外周边装置,从而更迅速且更有效地完成次级启动。一旦主要启动110结束,计算机系统重新开始,或重新以次级启动120再次重新启动。CPLD 140判定次级启动120存在藉由检查计算机系统100保留用于次级启动的存储器的部分。接着,CPU存取次级启动120,中断主要启动110,并启动计算机系统100。
[0090] 如上所述,次级启动120与主要启动110可以相同或可以不相同,然而,次级启动120的目的与主要启动110是相同的-都是希望成功地启动计算机系统100。
[0091] 在一些实施例中,如果次级启动120成功完成之后,次级启动120的副本或备份版本将被存储在主要启动110的一分割区(partition)。如果次级启动120未成功完成时,计算机系统100可能不会将次级启动120的副本或备份版本存储在主要启动110的一分割区。如此一来可以防止恢复一个不能启动计算机系统100的备份次级启动120的版本。这可为有用的,例如,当计算机系统100的固件被更新时,并且更新后的固件与其它现有固件和/或元件可能存在相容性问题。藉由在主要启动110的一分割区存储次级启动120的备份版本,计算机系统100可以回溯到较早的次级启动,直到固件更新问题可以得到解决。
[0092] 图2显示依据本发明一实施例的用于一计算机系统200的一双启动的示意图,其中,主要启动210包括多种元件,包括主要启动码220、主要启动环境230、主要内核根文件系统240、次启动备份250、次级已验证备份启动255以及诊断码260。应当理解的是,主要启动210可以含有其他附加的元件,这里所列出的元素仅示例性的,而非用以限制。主要启动210和次级启动270被连接到CPU或处理器280。复杂可编程逻辑装置(CPLD)290也连接至CPU280。CPLD 290是一个可编程数字逻辑装置,它比CPU或处理器280更简化。
[0093] 如图2所示,主要启动210包括主要启动码220以及主要启动环境230。主要启动内核根文件系统240选择计算机系统200执行所需的文件。次级启动备份250也被存储在主要启动210,较佳地在主要启动210内的一分区,为计算机系统200最后一次成功的次级启动270的副本。次级启动备份250通常不能被计算机系统200的用户所存取。用户只能使用特定密码或安全密钥(未绘示)来存取次级启动备份250,这些密码或安全密钥较佳地由远距管理机构如制造商维护。换句话说,次级启动备份250被局部地保护。
[0094] 当现有的次级启动270被损坏/丢失/或以其他方式不可用时,次级启动备份250可用以取代次级启动270。用户可以从一个远距管理机构如制造商中取得密码或安全密钥。藉由提供所请求的信息,用户可以接收密码或安全密钥来解锁次级启动备份250并且可覆写已损坏/缺失/或以其他方式不可用的次级启动270。
[0095] 当现有的次级启动270被损坏/丢失/或以其他方式不可用时,次级已验证启动备份255可用以取代次级启动270。次级启动270的这个备份版本被称为次级已验证启动备份255,是因为它的安装和相应的诊断测试的性质使其成为高度可靠的。例如,次级已验证启动备份255可使用诊断工具或模拟器来进行测试,以验证次级已验证启动255。
[0096] 对于次级启动备份250而言,存取次级已验证启动备份255可为有限或受限,例如利用一密码。用户可以从一远距管理机构如制造商中检索密码或安全密钥。藉由提供所请求的信息,用户可以接收密码或安全密钥来解锁次级已验证启动备份255;然而,这些密码或安全密钥可能与用来存取次级启动备份250的密码或安全密钥相同或可不相同。
[0097] 图3显示依据本发明另一实施例的用于一计算机系统300的一双启动系统的示意图,其中,主要启动305包括多种元件,包括主要启动码310、主要启动环境315、主要内核根文件系统320、次启动备份330、次级已验证备份启动335以及诊断码340。应当理解的是,主要启动305可以含有其他附加的元件,这里所列出的元素仅示例性的,而非用以限制。次级启动345包含了各种元件,包括次级ONIE启动码350、次级启动环境355、以及次级ONIE内核根文件系统360。次级启动345的一区段(section)用于用户执行时间(customer runtime)365,其中包括与计算机系统300的操作有关的指令。主要启动305以及次级启动345连接至CPU或处理器370。复杂可编程逻辑元件(CPLD)375也连接至CPU 370。CPLD 375是一个可编程数字逻辑装置,它比CPU或处理器370更简化。
[0098] 如图3所示,主要启动305包括主要启动码310。主要启动码310包含主要启动载入程序,并且可提供主要启动305和/或次级启动345的升级。各种硬件例如串行即时时钟(DS1339)以及一般用途输入/输出(GPIO)引脚等可以使用主要启动码310进行初始化。主要启动环境315包含存储的主要启动码310。主要启动环境315可以将信息传递给主要启动内核文件系统320,例如MAC地址以及MTD(存储器技术装置)的分割区信息。用户可以经由主要启动内核文件系统320存取此信息。主要启动内核(根文件系统)320选择计算机系统300的操作所需的文件。
[0099] 次级启动备份330也可以被存储在主要启动305。在一些实施例中,次级启动备份(ONIE备份码)330存储在主要启动305内的一分割区中。次级启动备份330复制自计算机系统300的最后一次成功的次级启动345。
[0100] 在一些实施例中,次级启动备份330通常不能被计算机系统300的用户存取。用户只能使用特定密码或安全密钥(未绘示)来存取次级启动备份330。换句话说,次级启动备份330被局部地保护。当现有的次级启动345被损坏/丢失/或以其他方式不可用时,次级启动备份330可使计算机系统300重新启动。用户可以通过一些方法,例如经由一网络联系制造商,来联系取得密码或安全码。藉由提供所请求的信息,用户可以接收来自制造商的密码或安全密钥,以将次级启动备份330解锁并将其复制至次级启动345或允许其从在主要启动
305的当前位置被取用。主要启动305中的诊断码340包含用于执行维护计算机系统300的各种诊断工具。
[0101] 当现有的次级启动345被损坏/丢失/或以其他方式不可用时,次级已验证启动备份335可用以取代次级启动345。次级启动345的这个备份版本被称为次级已验证启动备份335,是因为它的安装和相应的诊断测试的性质使其成为高度可靠的。例如,次级已验证启动备份335可使用诊断工具或模拟器来进行测试。
[0102] 对于次级启动备份330而言,存取次级已验证启动备份335可为有限或受限,例如利用一密码。用户可以从一远距管理机构如制造商中检索密码或安全密钥。藉由提供所请求的信息,用户可以接收密码或安全密钥来解锁次级已验证启动备份335;然而,这些密码或安全密钥可能与用来存取次级启动备份330的密码或安全密钥相同或可不相同。
[0103] 此外,在图3中,次级启动345包括各种元件,包括次级ONIE启动码350、次级启动环境355以及次级ONIE内核根文件系统360。次级启动345的一区段(section)用于用户执行时间365,其中包括与计算机系统300的使用者有关的指令。至少这三种元件以ONIE定义,换句话说,这些元件被包含在一个开放网络安装环境并且为用户可修改的。然而,额外的元件也可以以ONIE定义。用户可以各种方式修改这些或额外的元件以适应计算机系统300的特定应用或用途。然而,如前所述,用户可能在计算机系统300不再使用次级启动345来启动的情形下,最终修改这些元件。因此,用户可能希望返回到两个次级启动备份选项之一。第一选项可为次级启动345的上一次成功版本,其存储在主要启动305,以作为次级启动备份330。第二选项可为次级启动345的上一次成功测试,或通过认证的版本,其存储在主要启动305,以作为次级已验证启动备份335。当次级启动345已不再具有功能或不再如用户预期执行时,用户可以提取次级备份启动330或次级已验证备份启动335。
[0104] 然而,如上面所解释的,次级备份启动330与次级已验证启动备份335实际上不容易存取。这种安排可防止次级备份启动330与次级已验证备份启动335的不受控制的存取并且也可防止损坏或不适当的变形。为了存取次级备份启动330或次级已验证启动备份335,必须向制造商发出请求来取得密码或安全密钥,以便从主要启动305中存取次级备份启动330或次级已验证启动备份335。请求可以是多种方法,经由网络或者通过电子邮件。例如,访问制造商的网页,例如,以提供身份信息,并且接收回复的密码或安全码,以解锁主要启动305中的次级启动备份330或次级已验证启动备份335。次级启动345也包括用户执行时间
365,其中包括与计算机系统300的用户有关的指令。主要启动305以及次级启动345被连接到CPU 370以及CPLD 375,其控制当计算机启动顺序初始化时的主要启动305或次级启动
345的选择。
[0105] 如前述,但在这里为了清楚起见也包括在内,计算机系统的启动顺序使用主要启动305进行初始化。CPU 370与CPLD 375判断次级启动345的状态。举例来说,当计算机系统是新的且没有次级启动345时,次级启动345可能不存在。如果次级启动345不存在并且非可用,主要启动305完成。如果次级启动345存在并可用,CPLD 375指示CPU在主要启动305完成之后使用次级启动345重新启动。如果在使用次级启动345重新启动的过程中,计算机系统300并未成功地重新启动,则可使用如CTRL-R来开始次级启动备份330。
[0106] 在另一实施例中,如果在使用次级启动345重新启动期间,计算机系统300并未成功地重新启动,可开始如上所述的提取密码或安全密钥来存取次级启动备份330的流程。
[0107] 此外,如图3中所示,次级启动345包括存储的ONIE启动载入程序(用于启动码)。次级启动环境355通过包含区段例如次级启动码350与次级启动内核根文件系统360以及其他客户可修改的区段来允许用户修改次级启动。次级启动内核根文件系统360可以包括存储的用户修改过的ONIE内核与根文件系统。一内核壳(kernel shell)环境也可以存在并且可以由客户进行存取。次级启动执行时间365可以包括存储的用户切换操作系统码。
[0108] 图4显示依据本发明另一实施例的用于一计算机系统400的一双启动系统的示意图,其中CPU 410,或者具有或不具有CPLD(未绘示),开始主要启动420。CPU 410判定次级启动430为可用。
[0109] 在一个实施例中,主要启动420继续,并且计算机系统400的各种周边装置(未绘示)可被启动。在主要启动420完成之后,计算机系统400进行重置。第二启动顺序以主要启动420开始并且CPU 410判定次级启动430为可用的。在检测到次级启动430之后,主要启动420停止,并且次级启动430进行初始化。由于主要启动420已在先前结束,主要启动420期间所启动的周边装置可在次级启动430时保持启动,因而缩短了次级启动430的持续时间。
[0110] 如前所述,次级启动430一般为用户可更改的启动,而主要启动420一般为一个局部保护的启动。次级启动430完成,但由于各种周边装置已在使用主要启动420的第一个启动顺序中被启动,次级启动430确实需要再次完成这些任务;因此,次级启动430可以比如果相同的各种周边装置在次级启动430期间被启动时更有效地与迅速地发生。在另一实施例中,主要启动420被停止,CPU 410切换至次级启动430。次级启动430开始,并且在次级启动顺序期间,各种周边装置可以被启动。在本实施例中,CPU 410不返回至主要启动420,除非次级启动失败。
[0111] 在一实施例中,主要启动420自动地开始,而无需用户输入。CPU 410判断次级启动430的状态并且可依据次级启动430的状态决定要切换至次级启动430或返回主要启动420。
另一方面,用户可使用一硬件跳线(jumper)或一输入装置输入指令(例如:热键)来切换覆写CPU 410,以指示CPU 410来使用主要启动420或次级启动430进行启动。
[0112] 如图5所示,示出了示例性计算机系统500的实施例。CPU 510连接至CPLD 520。CPU设定值的信号通路530提供一个值给CPLD 520。CPLD 520在下一个启动顺序中判断哪个启动在执行,如主要启动或次级启动(未绘示)。如果CPU设定值信号通路530包含,例如,一个“是”的值,例如二进位的“0”,CPLD 520可以指示CPU 510使用主要启动进行启动。在另一方面,如果CPU 510设定值信号通路530包含,例如,一个“否”的值,例如二进位的“1”,CPLD 520可以指示CPU 510使用次级启动进行启动。应当指出的是,可以有其他的值和额外的启动顺序,例如但不限于第三启动,其中第三启动可能会与或本实施例中的主要启动或次要启动相同或不同。CPLD 520将如前所述的将CPU的设定值信号通路530传送至CPU 510。CPU 
510传送给CPLD 520一确认信号540,可以是CPU_BOOT_OK_Y或CPU_BOOT_OK_N。(CPU_BOOT_OK_Y可以确保CPU无论是从主要启动和次级启动都启动OK,如果信号540是CPU_BOOT_OK_N,CPU 510从主要启动以及次级启动都不能成功启动。)另一信号,PLD_SYS_RST 550从CPLD520传送给CPU 510。如果此信号号是一个指定的既定值,CPLD 520可以重置CPU 510;
如果该信训是另一个指定的既定值,CPLD 520可不重置CPU510。额外的I2C通信560可以在CPU 510和CPLD 520之间发生以启动周边装置或执行其他任务。
[0113] 图6显示依据本发明一实施例的一计算机系统的CPLD启动流程图。一般而言,CPLD 630在计算机系统接上电源之后开始一个主要启动610。如果主要启动610是可用的,则主要启动610码设为BOOT_OK=L(二进位“0”)并且该信号被发送给CPLD 630。CPLD 630接着切换到监视状态,检查主要启动610在每个后续启动周期的状态。如果主要启动610不再起作用或BOOT_OK信号没有清除(高(H,二进位“1”),并且非低(L,二进位“0”)),CPLD 630暂停CPU(未绘示)重置并且改变启动自举值(boot strap value),在此之后,释放重置并且次级启动620开始。如果次级启动620可以启动计算机系统,次级启动620码设置为BOOT_OK=L,并且CPLD 630接着切换到监控状态。如果次级启动620无作用(不能启动计算机系统)或BOOT_OK信号没有清除(换句话说,仍为(H)高),CPLD 630暂停CPU重置并改变启动自举值,在此之后,释放重置并且主要启动610开始。CPLD 630监控用户是否开始一重置功能(将BOOT_OK信号从低(L,“0”)改变为高(H,“1”)),并开始主要启动610。
[0114] 图7显示依据本发明一实施例的一计算机系统的一个主要启动以及次级启动的流程图700。一般而言,在CPU 710完成开机自我测试(POST)之后,主要启动720进行初始化。如果CPU 710接着判定次级启动730并不存在或可用时,CPU 710可在屏幕上显示选项740。第一请求可以是输入一个诊断码的请求,例如按入“CTRL+D”。第二请求可以是恢复次级启动730的备份版本的请求,例如按入”Ctrl+R”。在此第二请求中,可能需要来自用户的附加信息,例如密码或安全密钥。如上所述,密码或安全密钥可从制造商或其它来源取得。
[0115] 图8显示依据本发明一实施例的一计算机系统的一主要启动以及一次级启动的示范处理流程图800。第一步骤805执行开机自我测试(POST)来启动计算机系统。在步骤810中,主要启动初始化,其包括步骤815,检查启动模式,可为诊断启动或次级启动,取决于用户输入。步骤820提供了一个轮询时间(polling time)。在轮询时间中,密码或安全密钥可被输入,在这两种情况下,流程处理移动到步骤825,其启动连接到计算机系统的任何周边装置并且在步骤830中执行启动壳(boot shell),其可包括来自该用户的其它码和/或命令。在步骤830完成之后,用户可以重新启动或重置以继续流程。在步骤830后,有两种选项。第一种选项包含步骤835,其执行一诊断码,接着,计算机系统被重置,并且流程移动至步骤
865,其中CPLD切换启动为次级启动,在返回至步骤810之前,第二个选项则是绕过在步骤
835的诊断码,并且流程直接到步骤865。
[0116] 在步骤840中,如果输入不正确的密码或安全密钥时,无论是执行步骤835进入一个诊断模式或执行步骤845进入一正常模式,CPLD将主要启动切换至次级启动,并在步骤850中执行次级启动初始化。在步骤855中,各种周边装置可以连接至计算机系统,例如次级启动专属的周边装置。
[0117] 在另一实施例中,次级启动备份在主要启动的一分割区。此备份可以包括如上所述的一次级启动备份和/或一次级已验证过的启动备份。在步骤860中执行次级启动壳,在此之后,计算机系统被重置,从步骤810的主要启动开始执行。
[0118] 图9显示依据本发明一实施例的一示范运算装置900的一组通用元件的逻辑配置。于此例中,运算装置900包括一处理器902用于执行可以存储在一个存储装置或元件904的指令。如本领域技术人员所熟知的,装置可以包括多种类型的存储器、数据存储、或者非暂态计算机可读存储介质,例如供处理器902执行用的程序指令的第一数据存储,单独的图像或数据的存储,可移除式存储器,用于与其他装置分享信息等等。装置通常可包括一些类型的显示元件906,例如触控屏幕或液晶显示器(LCD),尽管如便携式介质播放器可能通过其他方式传达信息,例如通过音讯扬声器。如前所讨论的,该装置在许多实施例中可包括至少一输入元件908,其可接收来自用户的传统输入。这种传统的输入可以包括,例如,一按钮、触控板、触控屏幕、键盘、鼠标、按键,或任何可供用户输入一个命令给装置的这类装置或元件。在一些实施例中,图9中的运算装置900可包括一个或多个网络接口元件910,其可通过各种网络,例如无线网络、蓝牙、射频(RF)、有线或无线通信系统等进行通信。在许多实施例中,装置可以与一网络例如互联网进行通信,并且可以与其他这类的装置进行通信。
[0119] 每个运算装置通常可包括操作系统,其提供可执行程序指令,以提供装置的一般管理和操作,并且通常可以包括计算机可读介质,其存储有多个指令,当这些指令被服务器的处理器执行时,可使运算装置执行其预期的功能。操作系统以及服务器的一般功能的适当实现方式是已知的或可商用的并且易于由本领域技术人员加以实现,特别是根据本公开书的内容实现。
[0120] 其他实施例可另外在各种操作环境中实现,该各种操作环境在一些实施例中可包括用于操作多个应用程序的一或多台服务器计算机、用户计算机或运算装置。用户或客户装置可包括任意多个通用个人计算机,例如以标准操作系统运作的桌上型或膝上型计算机、以及以移动软件运作并能支持多个网络和讯息通信协议的蜂窝、无线以及手持装置。该系统也可包括多个以各种商用操作系统以及其他已知针对特殊目的的应用程序运作的工作站,上述特殊目的可例如为发展和数据库管理。上述装置也可包括其他电子装置,例如虚拟终端、瘦客户端、游戏系统以及其他能通过网络通信的装置。
[0121] 大部分实施例使用本领域技术人员周知的至少一网络,用于支持各种商用通信协议的通信,例如TCP/IP、OSI、FTP、UPnP、NFS、CIFS、AppleTalk等等。网络可为,例如为局部区域网络、广域网络、虚拟私有网络、互联网、内连网(intranet)、外连网(extranet)、公众电话交换网络(public switched telephone network)、红外线网络、无线网络以及以上任意组合。
[0122] 在运算装置包含有网络服务器的实施例中,网络服务器可执行各种服务器或中层应用程序,包括HTTP服务器、FTP服务器、CGI服务器、数据服务器、Java服务器以及商业应用程序服务器。服务器也能够相应于用户装置的请求而执行程序或脚本,例如藉由执行一或多个以任意程序语言或其他脚本语言编写的网络应用程序,上述任意程序语言可例如为C、C#或C++,且上述其他脚本语言可例如为Perl、Python或TCL、以及其中一种组合。服务器也可包括数据库服务器,包括但不限于可在开放商业市场上取得的服务器如以及 等的服务器。
[0123] 操作环境可包括上述讨论的各种数据存储以及其他存储器和存储介质。各种数据存储以及其他存储器和存储介质会驻于各种位置之内,例如存储介质局部之上(和/或驻于)一或多台计算机或网络上任意计算机或所有计算机的远端。在实施例的特定组合中,信息可驻于本领域技术人员所熟知的存储区域网络(SAN)之内。类似地,用于执行计算机,服务器或其他网络装置特性功能的任意所需文件可于合适之处在局部和/或远端存储。上述系统包括计算机化装置,每个这种装置可包括通过总线电耦接的硬件元件,元件包括,例如至少一中央处理单元(CPU)、至少一输入装置(例如鼠标、键盘、控制器、触控显示器元素或按键)以及至少一输出装置(例如显示器装置、打印机或喇叭)。此种系统也可包括一或多个存储装置,例如碟机、光学存储装置和固态存储装置例如随机存取存储器(RAM)或只读存储器(ROM),以及可移除介质装置、存储器卡、快闪卡等等。
[0124] 该装置也可包括所述的计算机可读存储介质读取器、通信装置(例如终端机、网络卡(无线或有线)、红外线通信装置)以及工作存储器。计算机可读存储介质读取器可连接或用于接收计算机可读存储介质用于暂时和/或更永久包括、存储、传送、以及提取计算机可读信息,该计算机可读存储介质代表远端、局部、固定和/或可移除存储装置以及存储介质。系统和各种装置通常也可包括位于至少一工作存储器装置之内的多个软件应用程序、模块、服务或其他元件,包括操作系统和应用程序程序,例如定制应用程序或网络浏览器。本领域技术人员可知替代实施例具有上述实施例的各种变化型。例如,也可使用定制硬件和/或特定元件可以硬件、软件(包括可携软件、例如小程序(applet))或两者兼有加以实现。另外,也可使用到其他运算装置的连接,该其他运算装置可例如为网络输入/输出装置。
[0125] 用以包括编码、或部分编码的存储介质和计算机可读介质可包括此技艺中已知或使用的任意合适介质,包括存储介质和运算介质,例如但不限于易失性和非易失性、可移除和不可移除介质,以针对存储和/或信息传输的任意方法或技术实现,例如计算机可读指令、数据构造、程序模块或其他数据,包括RAM、ROM、EEPROM、快闪存储器或其他存储器技术、CD-ROM、数字光盘(digital versatile disk,DVD)或其他光学存储、磁盒、磁带、磁碟存储或其他磁性存储装置或任意其他用于存储所需信息且会由系统装置存取的介质,。依据本发明技术和教示,本领域技术人员可知其他方式和/或方法用以实现本发明各种实施例。
[0126] 本发明虽以优选实施例公开如上,然其并非用以限定本发明。本领域技术人员在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视所附权利要求书界定范围为准。

当前第1页 第1页 第2页 第3页