一种系统安全启动的方法、装置、机顶盒及存储介质与流程

文档序号:14554452阅读:219来源:国知局
一种系统安全启动的方法、装置、机顶盒及存储介质与流程

本发明实施例涉及计算机技术,尤其涉及一种系统安全启动的方法、装置、机顶盒及存储介质。



背景技术:

在嵌入式系统中,采用mlc/slcnandflash作为程序存储器和数据存储器的应用越来越广,但是nandflash由于其工艺原理限制,随着使用时间和环境的变化经常出现位反转,如果是程序区只要出现一个无法纠错的位反转,整个系统将无法启动和恢复。

目前,为了解决上述问题,通过设置双系统或双备份,但该方法需要多消耗一倍的存储空间,导致较大的空间消耗和浪费。



技术实现要素:

本发明提供一种系统安全启动的方法、装置、机顶盒及存储介质,以实现兼顾系统的安全启动和避免存储空间浪费。

第一方面,本发明实施例提供了一种系统安全启动方法,该方法包括:

根据启动指令,加载程序区数据,并检测所述程序区数据是否存在异常数据;

若存在异常数据,则确定所述异常数据所在的条带信息;

于广播网络中循环播放的多个校验数据中确定与所述条带信息相匹配的目标校验数据,所述校验数据为预先根据标准程序区数据确定;

根据所述目标校验数据恢复所述异常数据,并加载恢复后的程序区数据。

第二方面,本发明实施例还提供了一种系统安全启动装置,该装置包括:

数据加载模块,用于根据启动指令,加载程序区数据;

异常数据检测模块,用于检测所述程序区数据是否存在异常数据;

条带信息确定模块,用于若存在异常数据,则确定所述异常数据所在的条带信息;

目标校验数据确定模块,用以于广播网络中循环播放的多个校验数据中确定与所述条带信息相匹配的目标校验数据,所述校验数据为预先根据标准程序区数据确定;

数据恢复模块,用于根据所述目标校验数据恢复所述异常数据;

所述数据加载模块,还用于加载恢复后的程序区数据。

第三方面,本发明实施例还提供了一种机顶盒,所述机顶盒包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例提供的系统安全启动方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的系统安全启动方法。

本发明实施例通过在接收到启动指令时,加载程序区数据,并检测数据加载过程中是否存在异常数据,当存在异常数据时,确定异常数据所在的磁盘阵列条带,从循环广播的校验数据中读取对应的校验数据,并基于该校验数据和磁盘阵列条带中的其他正常数据对异常数据进行数据恢复,保证了系统的安全启动,同时将检验数据在广播网络中播放,占用存储空间小,避免了存储空间的消耗。

附图说明

图1是本发明实施例一提供的一种系统安全启动方法的流程图;

图2a是本发明实施例一提供的程序区数据分区示意图;

图2b是本发明实施例一提供的一个磁盘阵列条带的示意图;

图3是本发明实施例二提供的一种系统安全启动装置的结构示意图;

图4是本发明实施例三提供的一种机顶盒的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种系统安全启动方法的流程图,本实施例可适用于智能终端中嵌入式系统安全启动的情况,尤其适用于智能机顶盒中嵌入式系统安全启动的情况,该方法可以由本发明实施例提供的系统安全启动装置来执行,该装置可采用软件和/或硬件的方式实现。该方法具体包括:

s110、根据启动指令,加载程序区数据,并检测程序区数据是否存在异常数据。

其中,启动指令可以是通过打开设备上的电源开关生成的指令,其中,设备可以是机顶盒。机顶盒接收启动指令后,开始加载程序区数据,其中,程序区数据指的是系统中的只读的程度区数据。

本实施例中,在boot启动时,检测只读程序区数据是否存在异常数据,其中异常数据包括但不限于读fail(失败)数据、读empty(空页)数据或超过ecc(errorcorrectingcode,错误检查和纠正)纠错范围的数据。

本实施例中,通过在嵌入式系统启动时,检测加载的程序区数据是否存在异常数据,避免程序区数据加载错误,提高了系统启动的安全性。

s120、若存在异常数据,则确定异常数据所在的当前磁盘阵列条带的条带信息。

本实施例中,设备出厂时,将程序区数据进行磁盘阵列条带划分,可选的,程序区条带设置有条带编号,在进行程序区数据加载时,根据条带编号依次写入。其中,于检测到存在异常数据时,确定的异常数据所在的条带信息可以是条带编号。

可选的,若存在异常数据,则跳跃异常数据所在的磁盘阵列条带,继续加载并检测下一磁盘阵列条带的数据。本实施例中,当确定当前磁盘阵列条带存在异常数据时,在后台对该磁盘阵列条带的异常数据进行恢复,并继续对下一磁盘阵列条带数据进行加载,避免了由于异常数据导致的程序区数据加载停止,提高了程序区数据的加载效率。可选的,在所有磁盘阵列条带数据加载完成,且不存在异常数据时,确定程序区数据加载完成。

s130、于广播网络中循环播放的多个校验数据中确定与条带信息相匹配的目标校验数据,校验数据为预先根据标准程序区数据确定。

其中,每一个条带数据对应一个校验数据,可选的,校验数据可以是携带有条带编号,根据条带信息可匹配到对应的校验数据。

可选的,校验数据为预先根据标准程序区数据确定,校验数据的确定方法包括:将程序区数据划分为数据分区,其中,各数据分区的大小相同;将连续的预设数量的数据分区组成磁盘阵列条带;对每一个磁盘阵列条带中各数据分区的数据依次进行异或处理,确定每一个磁盘阵列条带的校验数据。

示例性的,参见图2a,图2a是本发明实施例一提供的程序区数据分区示意图。图2a中,将程序区数据划分为多个大小相同的数据块,将数量相同的数据块组成磁盘阵列条带,示例性的,每一个磁盘阵列条带中数据块的数量可以是5或者7。对于任意磁盘阵列条带,数据块1至数据块n-1可以是程序区数据,数据块n可以是校验数据。对每一个磁盘阵列条带,根据其中的数据块中的数据确定校验数据,示例性的,参见图2b,图2b是本发明实施例一提供的一个磁盘阵列条带的示意图,其中,该磁盘阵列条带包含5个数据块,其数据分别为a、b、c、d和e,parity为该磁盘阵列条带的检验数据。可选的,对每一个磁盘阵列条带中的数据块进行编号,示例性的,a、b、c、d和e对应的数据块的编号可以是1、2、3、4和5。可选的,校验数据为根据数据块的编号依次对数据进行异或运行确定。示例性的,parity=a^b^c^d^e,其中符号“^”表示异或运算。

其中,校验数据可以是在设备出厂时确定并存储。且计算校验数据的数据分区和系统启动加载程序区数据时的数据分区完全一致。

可选的,校验数据存储于校验数据区,在接收启动指令之后,还包括:在广播网络中根据预设时间间隔循环广播校验数据;相应的,在系统启动完成后,取消在广播网络中根据预设时间间隔循环广播校验数据。

本实施例中,在设备接收启动指令时,读取校验数据区的校验数据,并根据预设时间间隔循环播放,示例性的,预设时间间隔可以是1毫秒或者5毫秒。当检测到存在异常数据时,在循环广播的校验数据中确定目标校验数据,其中目标校验数据指的是存在异常数据的当前磁盘阵列条带对应的校验数据。

s140、根据目标校验数据恢复异常数据,并加载恢复后的程序区数据。

本实施例中,根据目标校验数据和当前磁盘阵列条带中正常数据可恢复该异常数据。

可选的,步骤s140包括:获取当前磁盘阵列条带中除异常数据外的正常数据,对所述正常数据和所述目标校验数据进行异或处理,生成恢复数据,并根据恢复数据替换异常数据。

示例性的,参见图2b,若图2b数据块3的数据出现异常,则根据其他数据块的数据以及校验数据恢复异常数据。其中,以异常数据对应的数据块为起始点,以循环的方式确定各数据块的顺序,并根据确定的顺序对数据依次进行异或处理。示例性的,图2b中,数据块3的数据出现异常,其他数据按照顺序依次为d、e、parity、a和b,因此恢复数据c’=d^e^parity^a^b,将恢复数据c’替换异常数据。

本实施例中,在系统启动过程中,当程序区数据加载出现异常数据时,基于校验数据进行数据恢复,保证了程序区数据加载成功,且将检验数据在广播网络中播放,占用存储空间小,相对于现有技术中通过设置双系统或者双备份的情况,大大的减少了存储空间的消耗。

本实施例的技术方案,通过在接收到启动指令时,加载程序区数据,并检测数据加载过程中是否存在异常数据,当存在异常数据时,确定异常数据所在的磁盘阵列条带,从循环广播的校验数据中读取对应的校验数据,并基于该校验数据和磁盘阵列条带中的其他正常数据对异常数据进行数据恢复,保证了系统的安全启动,同时将检验数据在广播网络中播放,占用存储空间小,避免了存储空间的消耗。

实施例二

图3是本发明实施例二提供的一种系统安全启动装置的结构示意图,该装置具体包括:

数据加载模块210,用于根据启动指令,加载程序区数据;

异常数据检测模块220,用于检测程序区数据是否存在异常数据;

条带信息确定模块230,用于若存在异常数据,则确定异常数据所在的当前磁盘阵列条带的条带信息;

目标校验数据确定模块240,用以于广播网络中循环播放的多个校验数据中确定与条带信息相匹配的目标校验数据,校验数据为预先根据标准程序区数据确定;

数据恢复模块250,用于根据目标校验数据恢复异常数据;

数据加载模块210,还用于加载恢复后的程序区数据。

可选的,装置还包括校验数据确定模块,校验数据确定模块包括:

数据分区单元,用于将程序区数据划分为数据分区,其中,各数据分区的大小相同;

条带确定单元,用于将连续的预设数量的数据分区组成磁盘阵列条带;

校验数据确定单元,用于根据每一个磁盘阵列条带中各数据分区的数据确定每一个磁盘阵列条带的校验数据。

可选的,数据恢复模块250具体用于:

获取当前磁盘阵列条带中除异常数据外的正常数据,根据正常数据和目标校验数据确定恢复数据,并根据恢复数据替换异常数据。

可选的,校验数据存储于校验数据区,装置还包括:

校验数据广播模块,用于在接收启动指令之后,在广播网络中根据预设时间间隔循环广播校验数据;

广播取消模块,用于在系统启动完成后,取消在广播网络中根据预设时间间隔循环广播校验数据。

可选的,装置还包括跳跃加载模块,用于若存在异常数据,则跳跃异常数据所在的条带,继续加载并检测下一磁盘阵列条带的数据。

本发明实施例提供的系统安全启动装置可执行本发明任意实施例所提供的系统安全启动方法,具备执行系统安全启动方法相应的功能模块和有益效果。

实施例三

本实施三例提供了一种机顶盒。图4是本发明实施例三提供的一种机顶盒的结构示意图。参见图4,该机顶盒包括:

一个或多个处理器310;

存储器320,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器310执行,使得所述一个或多个处理器310实现如本发明实施例提出的系统安全启动方法。

图4中以一个处理器310为例;处理器310和存储器320可以通过总线或其他方式连接,图4中以通过总线连接为例。

存储器320作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的系统安全启动方法对应的程序指令/模块。处理器310通过运行存储在存储器320中的软件程序、指令以及模块,从而执行机顶盒的各种功能应用以及数据处理,即实现上述的系统安全启动方法。

存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据机顶盒的使用所创建的数据等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器320可进一步包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至机顶盒。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

另外,根据机顶盒的不同形式,除了处理器310和存储器320,机顶盒还可以包括其他模块或结构,例如,机顶盒可以接收遥控器机顶盒的控制指令,则还包括控制指令接收模块,还包括屏幕、扬声器结构。

本实施例提出的机顶盒与本发明实施例提出的系统安全启动方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见实施例一,并且本实施例与实施例一具有相同的有益效果。

实施例四

本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提出的系统安全启动方法。

本实施例提出的计算机可读存储介质与本发明实施例提出的系统安全启动方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见实施例一,并且本实施例与实施例一具有相同的有益效果。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台机顶盒(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1