CN111625840A - 程序校验方法、程序升级方法及装置 - Google Patents
程序校验方法、程序升级方法及装置 Download PDFInfo
- Publication number
- CN111625840A CN111625840A CN202010478490.1A CN202010478490A CN111625840A CN 111625840 A CN111625840 A CN 111625840A CN 202010478490 A CN202010478490 A CN 202010478490A CN 111625840 A CN111625840 A CN 111625840A
- Authority
- CN
- China
- Prior art keywords
- program
- standby
- main
- integrity
- upgrading
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 115
- 230000008569 process Effects 0.000 claims abstract description 40
- 238000005096 rolling process Methods 0.000 claims description 4
- 238000011084 recovery Methods 0.000 claims description 2
- 238000012795 verification Methods 0.000 claims description 2
- 230000002159 abnormal effect Effects 0.000 abstract description 10
- 238000004590 computer program Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 7
- 230000006855 networking Effects 0.000 description 6
- 230000005856 abnormality Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种程序校验方法、程序升级方法及装置。基于该程序校验方法能够实现在电子设备启动过程中通过程序校验实现主程序和备程序中满足完整性条件的程序恢复不满足完整性条件的程序;基于程序升级方法,实现了即使电子设备出现诸如断电、关机、故障重启等情况,电子设备的主程序和备程序中也始终有一个程序是完整的,从而提高电子设备程序升级异常容错能力。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种程序校验方法、程序升级方法及装置。
背景技术
为提高电子设备的高可用性,常在电子设备配置互为主备关系的主程序和备程序。备程序用于在主程序出现诸如损坏、不完整等异常时,临时代替主程序运行。
目前,在电子设备的主备程序升级过程中,若电子设备出现诸如断电、关机、故障重启等异常,则会中断正在进行的程序升级,也会导致正在升级的程序不完整。而一旦电子设备重新启动时发现主程序和备程序都已不完整,则电子设备不可用。比如,在主程序升级过程中,电子设备出现诸如断电、关机、故障重启等异常,则主程序升级中断,主程序不完整;之后,当电子设备需要重新启动时,电子设备从备程序进行启动;假若在电子设备从备程序成功启动后,在对备程序进行升级的过程中,电子设备又出现诸如断电、关机、故障重启等异常,则备程序升级中断,备程序不完整。之后,当电子设备再次需要重新启动时,发现主程序和备程序都已不完整,则电子设备不可用。
发明内容
有鉴于此,本申请提供一种程序校验方法、程序升级方法及装置,以减少出现主程序和备程序都不完整的可能性。
根据本申请实施例的第一方面,提供一种程序校验方法,该方法应用于电子设备,该方法包括:
在本设备启动过程中对本设备上的主程序和所述主程序的备程序分别进行校验;
在校验出所述主程序和所述备程序中任一个不满足完整性条件的情况下,利用所述主程序和所述备程序中满足完整性条件的程序恢复不满足完整性条件的程序。
在一实施例中,所述不满足完整性条件的程序包括:程序目录中不存在程序完整标志的程序,所述程序完整标志用于标识程序完整;
所述满足完整性条件的程序包括:程序目录中存在程序完整标志的程序。
在一实施例中,所述不满足完整性条件的程序为所述备程序,所述满足完整性条件的程序为所述主程序;所述利用所述主程序和所述备程序中满足完整性条件的程序恢复不满足完整性条件的程序包括:复制一份所述主程序;将已记录的备程序更新为该复制的主程序。
在另一实施例中,所述不满足完整性条件的程序为所述主程序,所述满足完整性条件的程序为所述备程序;所述利用所述主程序和所述备程序中满足完整性条件的程序恢复不满足完整性条件的程序包括:复制一份所述备程序;将已记录的主程序更新为该复制的备程序。
根据本申请实施例的第二方面,提供一种程序升级方法,该方法应用于电子设备,该方法包括:
在需要进行程序升级的情况下,对本设备的主程序和所述主程序的备程序中当前未处于运行状态的程序进行升级;
在所述当前未处于运行状态的程序成功升级后,对所述主程序和所述备程序中当前处于运行状态的程序进行升级。
在一实施例中,对所述程序进行升级,包括:
删除程序目录中用于标识程序完整的程序完整标志,并按照设定升级流程对程序进行升级。
在一实施例中,在所述主程序和所述备程序中任一程序成功升级后,该方法进一步包括:
在该成功升级的程序所对应的程序目录中记录用于标识程序完整的程序完整标志;所述程序完整标志是从所述主程序和所述备程序中除该成功升级的程序以外的另一程序所对应的程序目录中拷贝得到的,或者,是根据设定的程序完整标志生成方式生成的。
在一实施例中,在所述当前未处于运行状态的程序升级失败的情况下,该方法进一步包括:
若用于进行程序升级的升级包满足预设的一致性要求,则依据所述当前处于运行状态的程序将该升级失败的程序回滚为升级前的程序。
根据本申请实施例的第三方面,提供一种程序校验装置,该装置应用于电子设备,该装置包括:
校验模块,用于在本设备启动过程中对本设备上的主程序和所述主程序的备程序分别进行校验;
恢复模块,用于在校验出所述主程序和所述备程序中任一个不满足完整性条件的情况下,利用所述主程序和所述备程序中满足完整性条件的程序恢复不满足完整性条件的程序。
在一实施例中,所述不满足完整性条件的程序包括:程序目录中不存在程序完整标志的程序,所述程序完整标志用于标识程序完整;
所述满足完整性条件的程序包括:程序目录中存在程序完整标志的程序。
在一实施例中,所述不满足完整性条件的程序为所述备程序,所述满足完整性条件的程序为所述主程序;所述恢复模块利用所述主程序和所述备程序中满足完整性条件的程序恢复不满足完整性条件的程序包括:复制一份所述主程序;将已记录的备程序更新为该复制的主程序。
在一实施例中,所述不满足完整性条件的程序为所述主程序,所述满足完整性条件的程序为所述备程序;所述恢复模块利用所述主程序和所述备程序中满足完整性条件的程序恢复不满足完整性条件的程序包括:复制一份所述备程序;将已记录的主程序更新为该复制的备程序。
根据本申请实施例的第四方面,提供一种程序升级装置,应用于电子设备,该装置包括:
第一升级模块,用于在需要进行程序升级的情况下,对本设备的主程序和所述主程序的备程序中当前未处于运行状态的程序进行升级;
第二升级模块,用于在所述当前未处于运行状态的程序成功升级后,对所述主程序和所述备程序中当前处于运行状态的程序进行升级。
在一实施例中,所述第一升级模块或第二升级模块对程序进行升级,包括:
删除程序目录中用于标识程序完整的程序完整标志,并按照设定升级流程对程序进行升级。
在一实施例中,所述第一升级模块或第二升级模块还用于:
在该成功升级的程序所对应的程序目录中记录用于标识程序完整的程序完整标志;所述程序完整标志是从所述主程序和所述备程序中除该成功升级的程序以外的另一程序所对应的程序目录中拷贝得到的,或者,是根据设定的程序完整标志生成方式生成的。
在一实施例中,所述装置进一步包括:
回滚模块,用于在所述当前未处于运行状态的程序升级失败的情况下,若用于进行程序升级的升级包满足预设的一致性要求,则依据所述当前处于运行状态的程序将该升级失败的程序回滚为升级前的程序。
根据本申请实施例的第五方面,提供一种电子设备,所述设备包括可读存储介质和处理器;
其中,所述可读存储介质,用于存储机器可执行指令;
所述处理器,用于读取所述可读存储介质上的所述机器可执行指令,并执行所述指令以实现本申请实施例提供的程序校验方法或程序升级方法的步骤。
根据本申请实施例的第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的程序校验方法或程序升级方法的步骤。
根据本申请实施例的第七方面,提供一种计算机程序,所述计算机程序存储于计算机可读存储介质,所述计算机程序被处理器执行时实现本申请实施例提供的程序校验方法或程序升级方法的步骤。
通过以上技术方案可以看出,本申请通过在设备启动时校验设备中主程序和备程序的完整性,并在校验出主程序和备程序中的任一个程序不满足完整性条件的情况下,利用主程序和备程序中满足完整性条件的程序恢复不满足完整性条件的程序,这实现了设备在重新启动的过程中利用满足完整性条件的程序恢复不满足完整性条件的程序,保证设备在重新启动后其中的主程序和备程序都是完整的,提高设备的可用性;
进一步的,应用本申请提供的程序升级方法,在需要进行程序升级的情况下,先对当前未处于运行状态的程序进行升级,在升级成功后,再对当前处于运行状态的程序进行升级,这能够防止主程序和备程序不会同时出现不完整的情况,保证了即使电子设备出现诸如断电、关机、故障重启等情况,电子设备的主程序和备程序中也始终有一个程序是完整的,从而提高电子设备程序升级异常容错能力。
附图说明
图1为本申请实施例提出的组网结构示意图;
图2为本申请一示例性实施例提供的一种程序校验方法的实施例流程图;
图3为本申请一示例性实施例提供的一种程序升级方法的实施例流程图;
图4为本申请一示例性实施例提供的程序升级流程图;
图5为本申请一示例性实施例提供的一种程序校验装置的实施例框图;
图6为本申请一示例性实施例提供的一种程序升级装置的实施例框图;
图7为本申请根据一示例性实施例示出的一种电子设备的硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了便于理解,以下首先对本申请提出的程序校验方法和程序升级方法所应用的组网结构进行说明:
参见图1,为本申请组网结构的示意图。图1所示的组网可包括:客户端110、电子设备120。在一示例中,电子设备120中配置有软件的主程序121和备程序122。在一个例子中,备程序122用于在主程序121异常时,临时代替主程序121运行以继续提供服务。
在一示例中,客户端110可用于控制电子设备120的主备程序升级。比如,当需要对电子设备120的主或备程序进行升级的情况下,可通过客户端110向电子设备120发送升级指示,以由电子设备120按照指示进行主或备程序的升级,具体可见下文图3所示的程序升级流程。
在一示例中,上述电子设备120可以为平台存储一体机。
可选地,该平台存储一体机可以在CentOS系统下运行HCP(Hitachi ContentPlatform,云对象平台)软件。基于此,作为一个实施例,上述主程序121可为HCP软件的主程序,备程序122为HCP软件的备程序。
可选地,平台存储一体机也可运行数据库软件。基于此,作为一个实施例,上述主程序121可为数据库软件的主程序,备程序122为数据库软件的备程序。
需要说明的是,上述只是举例描述主程序、备程序,并非用于限定。本申请实施例并不具体限定上述主程序121和备程序122对应的软件,其可为上述电子设备运行的任一软件程序。
在一示例中,上述主程序121和备程序122可以存储在同一存储介质。可选地,这里的存储介质可为永久性存储介质,比如保存可为电子设备120的FLASH闪存(图1中未示出)。通过永久性存储介质存储上述主程序121和备程序122,可以在电子设备120断电等情况下也能够长久地保存主程序121和备程序122。
在另一实施例中,上述主程序121和备程序122也可以分开存储,存储在不同的存储介质。比如,主程序121存储在第一存储介质,备程序122存储在另一存储介质。这里的第一存储介质、第二存储介质也可为永久性存储介质,比如第一存储介质为第一FLASH闪存,第二存储介质为第二FLASH闪存。
至此,完成图1所示组网结构的描述。
基于图1所示例的组网结构,以下对本申请提出的程序校验方法和程序升级方法分别进行说明:
首先,通过图2所示流程对本申请提出的程序校验方法进行说明:
参见图2,为本申请一示例性实施例提供的一种程序校验方法的实施例流程图,在一个例子中,该方法可应用于上述的电子设备120。
如图2所示,该流程可包括以下步骤:
步骤201:在本设备启动过程中对本设备的主程序和主程序的备程序分别进行校验。
本申请中,电子设备可以在启动过程中对本设备的主程序和主程序的备程序分别进行校验。可选地,这里的启动是指首次启动、正常关机后的再次启动、发生异常后的重新启动等,本实施例对此并不做具体限定。
在一实施例中,本步骤201对主程序和备程序分别进行校验是没有固定的时间先后顺序。比如可先对主程序进行校验,之后再对备程序进行校验;或者,也可先对备程序进行校验,之后再对主程序进行校验;或者,可同时对主程序和备程序进行校验。本实施例并不具体限定。
可选地,本步骤201中,对主程序进行校验主要是校验主程序是否完整。在一个例子中,校验主程序是否完整可包括:校验主程序是否满足已设置的完整性条件,当校验出主程序满足完整性条件,则确定主程序完整,主程序可正常运行,而当校验出主程序不满足完整性条件,则确定主程序不完整,主程序无法正常运行。
可选地,本步骤201中,对备程序进行校验主要是校验备程序是否完整。在一个例子中,校验备程序是否完整可包括:校验备程序是否满足已设置的完整性条件,当校验出备程序满足完整性条件,则确定备程序完整,备程序可正常运行,而当校验出备程序不满足备程序对应的完整性条件,则确定备程序不完整,备程序无法正常运行。
在一个实施例中,上述完整性条件有很多,比如可为:程序目录中存在用于指示程序完整的程序完整标志等。可选地,这里的程序完整标志可以采用设定长度的二进制数值表示,比如“11”。
以完整性条件为程序目录中存在用于指示程序完整的程序完整标志为例,则在一个例子中,上述主程序是否满足已设置的完整性条件可为:主程序对应的程序目录中是否存在用于指示主程序完整的程序完整标志。当主程序对应的程序目录中存在用于指示主程序完整的程序完整标志时,确定主程序完整,反之,确定主程序不完整。类似地,上述备程序是否满足已设置的完整性条件可为:备程序对应的程序目录中是否存在用于指示备程序完整的程序完整标志。当备程序对应的程序目录中存在用于指示备程序完整的程序完整标志时,确定备程序完整,反之,确定备程序不完整。
以上对步骤201中如何对主程序和主程序的备程序进行校验进行了描述。
步骤202,在校验出主程序和备程序中任一个不满足完整性条件的情况下,利用主程序和备程序中满足完整性条件的程序恢复不满足完整性条件的程序。
在一个例子中,步骤201通过对主程序和备程序分别进行校验可得到以下任一校验结果:
结果1:主程序满足完整性条件、备程序满足完整性条件。
结果2:主程序不满足完整性条件、备程序不满足完整性条件。
结果3:主程序不满足完整性条件,备程序满足完整性条件。
结果4:主程序满足完整性条件,备程序不满足完整性条件。
当通过步骤201得到上述结果1,如结果1描述的:主程序满足完整性条件、备程序满足完整性条件,此种情况下意味着主程序、备程序均正常,本实施例可不涉及。
当通过步骤201得到上述结果2,如结果2描述的:主程序不满足完整性条件、备程序不满足完整性条件,此种情况下意味着主程序和备程序均被损坏而不完成,而当主程序和备程序均被损坏不完整,则意味着电子设备无法正常使用,本实施例可不涉及。
本实施例主要涉及主程序和备程序中的其中一个不满足完整性条件,另一个满足完整性条件的情况,具体可如上述的结果3、结果4所述。
在一个例子中,上述不满足完整性条件的程序为主程序,满足完整性条件的程序为备程序,即出现了上述结果3的情况。在此结果3的前提下,上述步骤202可包括:复制一份备程序;将已记录的主程序更新为该复制的备程序。最终实现了利用主程序和备程序中满足完整性条件的程序恢复不满足完整性条件的程序。
在另一个例子中,上述不满足完整性条件的程序为备程序,满足完整性条件的程序为主程序,即出现了上述结果4的情况。在此结果4的前提下,上述步骤202可包括:复制一份主程序;将已记录的备程序更新为该复制的主程序。最终实现了利用主程序和备程序中满足完整性条件的程序恢复不满足完整性条件的程序。
至此,完成图2所示的流程。
通过图2所示流程可以看出,本申请通过在设备启动过程中校验设备中主程序和备程序的完整性,并在校验出主程序和备程序中的任一个程序不满足完整性条件的情况下,利用主程序和备程序中满足完整性条件的程序恢复不满足完整性条件的程序,这实现了设备在重新启动的过程中利用满足完整性条件的程序恢复不满足完整性条件的程序,保证设备在重新启动后其中的主程序和备程序都是完整的,提高设备的可用性。
需要说明的是,作为一个实施例,在图2所示流程中,当利用满足完整性条件的程序恢复不满足完整性条件的程序的情况下,还可进一步在被恢复的程序所处的程序目录中记录用于表示程序完整的一个程序完整标志,这能够在电子设备的下一次启动过程中方便校验程序是否完整(具体可见上述步骤201中校验程序的步骤)。这里,程序完整标志可从主程序和备程序中除被恢复的程序以外的另一程序所对应的程序目录中拷贝得到的,或者,是根据设定的程序完整标志生成方式生成的,本实施例并不具体限定。
以图2所示流程中不满足完整性条件的程序为主程序,满足完整性条件的程序为备程序(即出现了上述结果3的情况)为例,则按照上述步骤202的描述,步骤202最终会利用备程序恢复主程序。在利用备程序恢复主程序后,如上描述,则可在主程序对应的程序目录中记录程序完整标志(该程序完整标志可从备程序对应的程序目录中拷贝得到,或者根据设定的程序完整标志生成方式生成的),这能够在电子设备的下一次启动过程中方便校验主程序是否完整(具体可见上述步骤201中校验程序的步骤)。
再以图2所示流程中不满足完整性条件的程序为备程序,满足完整性条件的程序为主程序(即出现了上述结果4的情况)为例,则按照上述步骤202的描述,步骤202最终会利用主程序恢复备程序。在利用主程序恢复备程序后,如上描述,则可在备程序对应的程序目录中记录程序完整标志(该程序完整标志可从主程序对应的程序目录中拷贝得到,或者根据设定的程序完整标志生成方式生成的),这能够在电子设备的下一次启动过程中方便校验备程序是否完整(具体可见上述步骤201中校验程序的步骤)。
以上对本申请实施例提供的程序校验方法进行了描述,以下对本申请实施例提供的程序升级方法进行说明:
为了提高主、备程序的性能,常会根据实际需求对设备的主、备程序进行升级。本实施例提供了如图3所示的程序升级流程:
参见图3,为本申请一示例性实施例提供的程序升级方法的实施例流程图,在一个例子中,该方法可应用于上述电子设备120。
如图3所示,该流程包括以下步骤:
步骤301:在需要进行程序升级的情况下,对本设备的主程序和主程序的备程序中当前未处于运行状态的程序进行升级。
作为一个实施例,本步骤301中确定需要进行程序升级有很多实现方式,比如检测到当前处于运行状态的程序(比如主程序或备程序)在运行时出现一些因程序版本性能低而导致的漏洞(bug),则确定需要进行程序升级;或者,接收到外部比如上述客户端110输入的升级指示时,则确定需要进行程序升级等,本实施例并不具体限定。
在正常情况下,主程序和备程序中的其中一个未处于运行状态,另一个处于运行状态,基于此,作为一个实施例,本步骤301中,主程序和备程序中当前未处于运行状态的程序可为主程序,也可为备程序。比如,当主程序和备程序中未处于运行状态的程序为备程序,则主程序为处于运行状态的程序;或者,当主程序和备程序中未处于运行状态的程序为主程序,则备程序为处于运行状态的程序。下文会分别举例,这里暂不赘述。
步骤302,在当前未处于运行状态的程序成功升级后,对主程序和备程序中当前处于运行状态的程序进行升级。
在一个例子中,上述主程序和备程序中当前未处于运行状态的程序为备程序,上述主程序和备程序中当前处于运行状态的程序为主程序。在此前提下,如步骤301和步骤302描述,则先对备程序进行升级,当备程序成功升级后,再对主程序进行升级。
在另一个例子中,上述主程序和备程序中当前未处于运行状态的程序为主程序,上述主程序和备程序中当前处于运行状态的程序为备程序。在此前提下,如步骤301和步骤302描述,则先对主程序进行升级,当主程序成功升级后,再对备程序进行升级。
需要说明的是,步骤302是以当前未处于运行状态的程序升级成功后执行的。假若当前未处于运行状态的程序升级失败,则作为一个实施例,可进一步执行以下步骤:若用于进行程序升级的升级包满足预设的一致性要求,则依据所述当前处于运行状态的程序将该升级失败的程序回滚为升级前的程序。这里,升级包满足预设的一致性要求在下文进行了描述,这里暂不赘述。
在一个例子中,上述主程序和备程序中当前未处于运行状态的程序为备程序,上述主程序和备程序中当前处于运行状态的程序为主程序。在此前提下,假若备程序升级失败,则依据主程序将备程序回滚至升级前的程序,最终主程序、备程序一致。
在另一个例子中,上述主程序和备程序中当前未处于运行状态的程序为主程序,上述主程序和备程序中当前处于运行状态的程序为备程序。在此前提下,假若主程序升级失败,则依据备程序将主程序回滚至升级前的程序,最终主程序、备程序一致。
至此,完成图3所示流程。
需要说明的是,本实施例对程序升级是指对程序的可执行文件进行升级,这能保证即使对当前处于运行状态的程序进行升级,也并不会影响当前处于运行状态的程序的正常运行。
通过图3所示流程可以看出,在需要进行程序升级的情况下,并非对主程序和备程序同时进行程序升级,而是将主程序和备程序分开进行升级,如步骤301描述的,先对主程序和备程序中当前未处于运行状态的程序进行升级,在对当前未处于运行状态的程序成功升级后,再对主程序和备程序中当前处于运行状态的程序进行升级。这能够保证在程序升级过程中,即使电子设备出现异常,电子设备的主程序和备程序中也始终有一个程序是完整的,从而提高电子设备升级时的容错能力。
下面通过一个实施例对上述步骤301或步骤302中对程序进行升级进行描述:
参见图4,图4为本申请一示例性实施例提供的程序升级流程图。如图4所示,该流程可包括以下步骤:
步骤401,删除程序目录中用于标识程序完整的程序完整标志。
如上描述,程序完整标志是用于表示程序完整的,而当对程序进行升级时,由于程序升级会打破程序已有的完整性,因此,本步骤401在对程序进行升级前,会先删除程序完整标志。
步骤402,按照设定升级流程对程序进行升级。
作为一个实施例,上述设定升级流程可以包括:利用满足预设的一致性要求的升级包进行程序升级。这里满足预设的一致性要求的升级包可通过以下步骤确定:从升级指令中解析出的升级包,对升级包进行校验,当校验出升级包满足预设的一致性要求时,确定该升级包为满足预设的一致性要求的升级包。可选地,这里对升级包进行校验是指:利用设定的文件特征码生成方法比如MD5消息摘要算法,计算出升级包的文件特征码(以MD5消息摘要算法为例,这里的文件特征码可为MD5值),将计算出的文件特征码与升级包中自带的文件特征码进行比较,若比较出两者一致,则可以认为该升级包满足一致性要求,若比较出两者不一致,则可以认为该升级包不满足一致性要求。需要说明的是,假若校验出升级包不满足一致性要求,则可以不再利用该升级包对程序进行升级,直接默认升级失败。
在一个实施例中,在程序升级失败的情况下,若用于进行程序升级的升级包不满足预设的一致性要求,则说明此次升级失败是在升级前的校验升级包过程导致的升级失败,实质上并未对程序进行升级,并未改变程序,则无需对该升级失败的程序执行回滚操作。
以对备程序进行升级为例,则基于图4所示流程中的步骤401和步骤402,删除备程序对应的程序目录中用于标识程序完整的程序完整标志,并按照上述设定升级流程对备程序进行升级。
再以对主程序进行升级为例,则基于图4所示流程中的步骤401和步骤402,删除主程序对应的程序目录中用于标识程序完整的程序完整标志,并按照上述设定升级流程对主程序进行升级。
可选地,作为一个实施例,当主程序和备程序中任一程序成功升级后,可进一步执行下述步骤403:
步骤403,在成功升级的程序所对应的程序目录中记录用于标识程序完整的程序完整标志。
这里,程序完整标志是从主程序和备程序中除该成功升级的程序以外的另一程序所对应的程序目录中拷贝得到的,或者,是根据设定的程序完整标志生成方式生成的。以主程序成功升级为例,则在主程序所对应的程序目录中记录用于标识程序完整的程序完整标志。这里,程序完整标志是从备程序对应的程序目录中拷贝得到的,或者,是根据设定的程序完整标志生成方式生成的。再以备程序成功升级为例,则在备程序所对应的程序目录中记录用于标识程序完整的程序完整标志。这里,程序完整标志是从主程序对应的程序目录中拷贝得到的,或者,是根据设定的程序完整标志生成方式生成的。
需要说明的是,在需要对程序进行升级的情况下,主程序、备程序的程序环境是相同的。基于此,在正常流程下,在主程序和备程序中其中一个程序成功升级的情况下,主程序和备程序中另一程序也会升级成功。
至此,完成图4所示流程。
通过图4所示流程,实现了程序升级的完成流程。
需要说明的是,步骤403是在程序升级成功时执行的。作为一个实施例,在主程序和备程序中任一程序的升级过程中,若上述电子设备120出现诸如断电等异常,则当前正在升级的程序升级失败(此时正在升级的程序也是不完整的,记为不完整的程序),在此前提下,当电子设备120再重启时,结合上述图2所示流程,则在电子设备120的重启过程中,即可利用主程序和备程序中完整的程序恢复主程序和备程序中不完整的程序。
以备程序升级过程中上述电子设备120出现诸如断电等异常为例,则备程序升级失败(此时备程序也是不完整的,记为不完整的程序),而此时主程序是完整的,称为完整的程序。在此前提下,当电子设备120再重启时,结合上述图2所示流程,则在电子设备120的重启过程中,即可利用完整的主程序恢复不完整的备程序。
再以主程序升级过程中上述电子设备120出现诸如断电等异常为例,则主程序升级失败(此时主程序也是不完整的,记为不完整的程序),此时备程序是完整的,称为完整的程序。在此前提下,当电子设备120再重启时,结合上述图2所示流程,则在电子设备120的重启过程中,即可利用完整的备程序恢复不完整的主程序。
通过上面描述可以看出,本实施例在需要进行程序升级的情况下,先对当前未处于运行状态的程序进行升级,待升级成功后,再对当前处于运行状态的程序进行升级,这能够保证在程序升级过程中,即使电子设备出现异常,电子设备的主程序和备程序中也始终有一个程序是完整的,以便后续基于上述图2所示的程序校验方法,实现基于完整的程序恢复不完整的程序,提高电子设备升级时的容错能力。
以上对本实施例提供的方法进行了描述,下面对本实施例提供的装置进行描述:
与前述程序校验方法的实施例相对应,本申请还提供了如图5所示的程序校验装置的实施例。
参见图5,为本申请一示例性实施例提供的一种程序校验装置的实施例框图,该装置对应上述图2所示的程序校验方法流程。如图5所示,该装置可包括:
校验模块51,用于在本设备启动过程中对本设备上的主程序和所述主程序的备程序分别进行校验;
恢复模块52,用于在校验出所述主程序和所述备程序中任一个不满足完整性条件的情况下,利用所述主程序和所述备程序中满足完整性条件的程序恢复不满足完整性条件的程序。
在一实施例中,所述不满足完整性条件的程序包括:程序目录中不存在程序完整标志的程序,所述程序完整标志用于标识程序完整;
所述满足完整性条件的程序包括:程序目录中存在程序完整标志的程序。
在一实施例中,所述不满足完整性条件的程序为所述备程序,所述满足完整性条件的程序为所述主程序;所述恢复模块52利用所述主程序和所述备程序中满足完整性条件的程序恢复不满足完整性条件的程序包括:复制一份所述主程序;将已记录的备程序更新为该复制的主程序;或者,
所述不满足完整性条件的程序为所述主程序,所述满足完整性条件的程序为所述备程序;所述恢复模块52利用所述主程序和所述备程序中满足完整性条件的程序恢复不满足完整性条件的程序包括:复制一份所述备程序;将已记录的主程序更新为该复制的备程序。
至此,完成图5所示的装置结构描述。
与前述程序升级方法的实施例相对应,本申请还提供了如图6所示的程序升级装置的实施例。
参见图6,为本申请一示例性实施例提供的一种程序升级装置的实施例框图,该装置对应上述图3所示的程序升级方法流程。如图6所示,该装置可包括:
第一升级模块61,用于在需要进行程序升级的情况下,对本设备的主程序和所述主程序的备程序中当前未处于运行状态的程序进行升级;
第二升级模块62,用于在所述当前未处于运行状态的程序成功升级后,对所述主程序和所述备程序中当前处于运行状态的程序进行升级。
在一实施例中,所述第一升级模块61或第二升级模块62对程序进行升级,包括:
删除程序目录中用于标识程序完整的程序完整标志,并按照设定升级流程对程序进行升级。
在一实施例中,所述第一升级模块61或第二升级模块62还用于:
在该成功升级的程序所对应的程序目录中记录用于标识程序完整的程序完整标志;所述程序完整标志是从所述主程序和所述备程序中除该成功升级的程序以外的另一程序所对应的程序目录中拷贝得到的,或者,是根据设定的程序完整标志生成方式生成的。
在一实施例中,参见图6,所述装置进一步包括:回滚模块63。
回滚模块63,用于在所述当前未处于运行状态的程序升级失败的情况下,若用于进行程序升级的升级包满足预设的一致性要求,则依据所述当前处于运行状态的程序将该升级失败的程序回滚为升级前的程序。
至此,完成图6所示的装置
可选地,本实施例还提供了对应图5或图6所示装置的硬件结构。参见图7,本申请还提供一种硬件结构。该硬件结构可称为电子设备。如图7所示,电子设备可包括处理器701和存储器702。
其中,存储器702,用于存放计算机程序;
处理器701,用于执行存储器702上所存放的计算机程序。
可选地,当所述计算机程序对应本申请实施例提供的程序校验方法时,处理器701执行所述计算机程序时实现本申请实施例提供的程序校验方法;
可选地,当所述计算机程序对应本申请实施例提供的程序升级方法时,处理器701执行所述计算机程序时实现本申请实施例提供的程序升级方法。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序。
可选地,当所述计算机程序对应本申请实施例提供的程序校验方法时,所述计算机程序被处理器执行时实现本申请实施例提供的程序校验方法;
可选地,当所述计算机程序对应本申请实施例提供的程序升级方法时,所述计算机程序被处理器执行时实现本申请实施例提供的程序升级方法。
本申请还提供一种计算机程序,所述计算机程序存储于计算机可读存储介质。
可选地,当所述计算机程序对应本申请实施例提供的程序校验方法时,所述计算机程序被处理器执行时实现本申请实施例提供的程序校验方法;
可选地,当所述计算机程序对应本申请实施例提供的程序升级方法时,所述计算机程序被处理器执行时实现本申请实施例提供的程序升级方法。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种程序校验方法,该方法应用于电子设备,其特征在于,该方法包括:
在本设备启动过程中对本设备的主程序和所述主程序的备程序分别进行校验;
在校验出所述主程序和所述备程序中任一个不满足完整性条件的情况下,利用所述主程序和所述备程序中满足完整性条件的程序恢复不满足完整性条件的程序。
2.根据权利要求1所述的方法,其特征在于,
所述不满足完整性条件的程序包括:程序目录中不存在程序完整标志的程序,所述程序完整标志用于标识程序完整;
所述满足完整性条件的程序包括:程序目录中存在程序完整标志的程序。
3.根据权利要求1所述的方法,其特征在于,
所述不满足完整性条件的程序为所述备程序,所述满足完整性条件的程序为所述主程序;所述利用所述主程序和所述备程序中满足完整性条件的程序恢复不满足完整性条件的程序包括:复制一份所述主程序;将已记录的备程序更新为该复制的主程序;或者,
所述不满足完整性条件的程序为所述主程序,所述满足完整性条件的程序为所述备程序;所述利用所述主程序和所述备程序中满足完整性条件的程序恢复不满足完整性条件的程序包括:复制一份所述备程序;将已记录的主程序更新为该复制的备程序。
4.一种程序升级方法,该方法应用于电子设备,其特征在于,该方法包括:
在需要进行程序升级的情况下,对本设备的主程序和所述主程序的备程序中当前未处于运行状态的程序进行升级;
在所述当前未处于运行状态的程序成功升级后,对所述主程序和所述备程序中当前处于运行状态的程序进行升级。
5.根据权利要求4所述的方法,其特征在于,对所述程序进行升级,包括:
删除程序目录中用于标识程序完整的程序完整标志,并按照设定升级流程对程序进行升级。
6.根据权利要求4所述的方法,其特征在于,在所述主程序和所述备程序中任一程序成功升级后,该方法进一步包括:
在该成功升级的程序所对应的程序目录中记录用于标识程序完整的程序完整标志;所述程序完整标志是从所述主程序和所述备程序中除该成功升级的程序以外的另一程序所对应的程序目录中拷贝得到的,或者,是根据设定的程序完整标志生成方式生成的。
7.根据权利要求4所述的方法,其特征在于,在所述当前未处于运行状态的程序升级失败的情况下,该方法进一步包括:
若用于进行程序升级的升级包满足预设的一致性要求,则依据所述当前处于运行状态的程序将该升级失败的程序回滚为升级前的程序。
8.一种程序校验装置,该装置应用于电子设备,其特征在于,该装置包括:
校验模块,用于在本设备启动过程中对本设备上的主程序和所述主程序的备程序分别进行校验;
恢复模块,用于在所述校验模块校验出所述主程序和所述备程序中任一个不满足完整性条件的情况下,利用所述主程序和所述备程序中满足完整性条件的程序恢复不满足完整性条件的程序。
9.一种程序升级装置,该装置应用于电子设备,其特征在于,该装置包括:
第一升级模块,在需要进行程序升级的情况下,对本设备的主程序和所述主程序的备程序中当前未处于运行状态的程序进行升级;
第二升级模块,用于在所述当前未处于运行状态的程序成功升级后,对所述主程序和所述备程序中当前处于运行状态的程序进行升级。
10.一种电子设备,其特征在于,所述设备包括可读存储介质和处理器;
其中,所述可读存储介质,用于存储机器可执行指令;
所述处理器,用于读取所述可读存储介质上的所述机器可执行指令,并执行所述指令以实现权利要求1至3、或4至7任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010478490.1A CN111625840A (zh) | 2020-05-29 | 2020-05-29 | 程序校验方法、程序升级方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010478490.1A CN111625840A (zh) | 2020-05-29 | 2020-05-29 | 程序校验方法、程序升级方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111625840A true CN111625840A (zh) | 2020-09-04 |
Family
ID=72260698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010478490.1A Pending CN111625840A (zh) | 2020-05-29 | 2020-05-29 | 程序校验方法、程序升级方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625840A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1897515A (zh) * | 2006-06-29 | 2007-01-17 | 中兴通讯股份有限公司 | 一种保证设备软件在线下载可靠性的方法 |
US20110307879A1 (en) * | 2009-02-24 | 2011-12-15 | Toyota Jidosha Kabushiki Kaisha | Program update device, program update method, and information processing device |
CN102508686A (zh) * | 2011-11-30 | 2012-06-20 | 苏州希图视鼎微电子有限公司 | 一种系统安全升级的实现方法及其系统 |
CN103106089A (zh) * | 2013-01-25 | 2013-05-15 | 大唐移动通信设备有限公司 | 一种智能平台管理控制器的升级方法和系统 |
CN104461594A (zh) * | 2013-09-22 | 2015-03-25 | 杭州海康威视数字技术股份有限公司 | 嵌入式操作系统的升级方法及装置 |
CN105302593A (zh) * | 2015-07-17 | 2016-02-03 | 天津市英贝特航天科技有限公司 | PowerPC主机板的远程升级系统及方法 |
CN109375953A (zh) * | 2018-09-03 | 2019-02-22 | 新华三技术有限公司 | 一种操作系统启动方法及装置 |
-
2020
- 2020-05-29 CN CN202010478490.1A patent/CN111625840A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1897515A (zh) * | 2006-06-29 | 2007-01-17 | 中兴通讯股份有限公司 | 一种保证设备软件在线下载可靠性的方法 |
US20110307879A1 (en) * | 2009-02-24 | 2011-12-15 | Toyota Jidosha Kabushiki Kaisha | Program update device, program update method, and information processing device |
CN102508686A (zh) * | 2011-11-30 | 2012-06-20 | 苏州希图视鼎微电子有限公司 | 一种系统安全升级的实现方法及其系统 |
CN103106089A (zh) * | 2013-01-25 | 2013-05-15 | 大唐移动通信设备有限公司 | 一种智能平台管理控制器的升级方法和系统 |
CN104461594A (zh) * | 2013-09-22 | 2015-03-25 | 杭州海康威视数字技术股份有限公司 | 嵌入式操作系统的升级方法及装置 |
CN105302593A (zh) * | 2015-07-17 | 2016-02-03 | 天津市英贝特航天科技有限公司 | PowerPC主机板的远程升级系统及方法 |
CN109375953A (zh) * | 2018-09-03 | 2019-02-22 | 新华三技术有限公司 | 一种操作系统启动方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100750132B1 (ko) | 부팅, 소프트웨어 자동 업데이트 및 에러 복원 방법과 그시스템, 그 방법을 기록한 컴퓨터 판독 가능한 기록매체 | |
US6665813B1 (en) | Method and apparatus for updateable flash memory design and recovery with minimal redundancy | |
CN106775610B (zh) | 一种电子设备启动方法及一种电子设备 | |
CN111182033B (zh) | 一种交换机还原的方法和设备 | |
US20100050014A1 (en) | Dual independent non volatile memory systems | |
CN108874582A (zh) | 一种系统恢复方法、装置及终端 | |
CN111651304B (zh) | 基于双芯智能电表的软件恢复方法、装置和计算机设备 | |
US20100217751A1 (en) | Method and system for safely deleting information from a computer | |
CN101196839A (zh) | 双快闪只读存储器的数据修复与同步方法 | |
CN111813753A (zh) | 保存文件的方法、恢复文件的方法、装置及终端设备 | |
CN113157303A (zh) | 升级方法、嵌入式系统、终端及计算机存储介质 | |
CN112905230A (zh) | 应用程序的管理方法、装置、终端设备和存储介质 | |
CN111698558A (zh) | 电视软件升级方法、电视终端及计算机可读存储介质 | |
CN113032183A (zh) | 系统管理方法、装置、计算机设备和存储介质 | |
JP2007052520A (ja) | 情報処理装置および方法、並びにプログラム | |
JP2005284902A (ja) | 端末装置、その制御方法及び制御プログラム、ホスト装置、その制御方法及び制御プログラム、遠隔更新システム、方法及びプログラム | |
JP5683088B2 (ja) | 復旧システム、復旧方法及びバックアップ制御システム | |
JP3551079B2 (ja) | 修正ロードモジュール置換後の復旧方法ならびに装置 | |
CN111625840A (zh) | 程序校验方法、程序升级方法及装置 | |
CN113448760B (zh) | 一种硬盘异常状态的恢复方法、系统、设备以及介质 | |
CN111427718B (zh) | 文件备份方法、恢复方法及装置 | |
CA2299850C (en) | System and method for the management of computer software maintenance | |
CN112099992A (zh) | 服务器的系统备份恢复方法、装置、计算机设备及存储介质 | |
US11714631B2 (en) | Method, electronic device, and computer program product for managing operating system | |
CN115421974A (zh) | 一种基于pfr的bios恢复方法、装置、设备、介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |