CN102799496A - 一种与非型闪存操作系统内核和文件系统校验方法及装置 - Google Patents

一种与非型闪存操作系统内核和文件系统校验方法及装置 Download PDF

Info

Publication number
CN102799496A
CN102799496A CN2012102215174A CN201210221517A CN102799496A CN 102799496 A CN102799496 A CN 102799496A CN 2012102215174 A CN2012102215174 A CN 2012102215174A CN 201210221517 A CN201210221517 A CN 201210221517A CN 102799496 A CN102799496 A CN 102799496A
Authority
CN
China
Prior art keywords
file system
operating system
code value
verification code
data
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
Application number
CN2012102215174A
Other languages
English (en)
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.)
Shenzhen Coship Electronics Co Ltd
Original Assignee
Shenzhen Coship Electronics Co Ltd
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 Shenzhen Coship Electronics Co Ltd filed Critical Shenzhen Coship Electronics Co Ltd
Priority to CN2012102215174A priority Critical patent/CN102799496A/zh
Publication of CN102799496A publication Critical patent/CN102799496A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种与非型闪存操作系统内核和文件系统校验方法,包括如下步骤:获取所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值;获取存储在闪存中的操作系统内核和文件系统的OOB数据的第二校验码值;将所述第二校验码值与所述第二校验码值进行比较,当二者一致时,提示启动成功;当二者不一致时,提示启动失败。本发明还提供了一种与非型闪存操作系统内核和文件系统校验装置。本发明的目的在于提供一种与非型闪存操作系统内核和文件系统校验方法及装置,可提高对大文件校验效率,从而提升启动效率。

Description

一种与非型闪存操作系统内核和文件系统校验方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种与非型闪存操作系统内核和文件系统校验方法及装置。
背景技术
与非型闪存(Nand-flash)是flash内存的一种,具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,由于Nand flash的制作工艺原因,使得Nand的生产和使用过程中都有可能产生坏块,为了对坏块进行有效管理,Nand-flash生产厂商提出了多种解决方案,其中一种就是使用操作系统内核(Kernel)和文件系统(file system ,FS)循环冗余校验码值CRC进行数据校验。
现有技术中使用内核和文件系统CRC值进行数据校验虽然能够支持各种不同种类的Flash,但是当操作系统内核和文件系统过大时,将kernel 和FS区域完整的数据读取到内存中会消耗大量的时间,这样会影响系统启动(BOOT)的启动速度,降低启动效率。
发明内容
本发明所要解决的技术问题在于,提供一种与非型闪存操作系统内核和文件系统校验方法及装置,可提高对大文件校验效率,从而提升启动效率。
为了解决上述技术问题,本发明实施例提供了一种与非型闪存操作系统内核和文件系统校验方法,包括:
获取所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值;
获取存储在闪存中的操作系统内核和文件系统的OOB数据的第二校验码值;
将所述第二校验码值与所述第一校验码值进行比较,当二者一致时,提示启动成功,当二者不一致时,提示启动失败。
其中,所述操作系统内核和文件系统的OOB数据区是用来保存校验码的,所述校验码包括CRC、ECC、MD、HASH中的任一一种。
其中,所述获取所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值之后,还包括:
将所述操作系统内核和文件系统的数据和第一校验码值保存在所述闪存中。
其中,所述获取所述与非型闪存中内核文件系统的OOB数据的第一校验码值,包括: 
读取所述与非型闪存中操作系统内核和文件系统的OOB数据;
计算所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值。
其中,所述获取存储在闪存中的操作系统内核和文件系统的OOB数据的第二校验码值,包括: 
读取所述存储在闪存中的操作系统内核和文件系统的OOB数据;
计算所述存储在闪存中的操作系统内核和文件系统的OOB数据的第二校验码值。
相应地,本发明实施例还提供了一种与非型闪存操作系统内核和文件系校验装置,包括:
第一获取模块,用于获取所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值;
第二获取模块,用于获取存储在闪存中的操作系统内核和文件系统的OOB数据的第二校验码值;
比较模块,用于根据所述第二获取模块获取到的第二校验码值,将所述第二获取模块获取到的第二校验码值与所述第一获取模块获取到的第一校验码值进行比较;
提示模块,用于当所述比较模块的比较结果为是时,提示启动成功;以及当所述比较模块的比较结果为否时,提示启动失败。
其中,包括:
存储模块,用于将所述第一获取模块获取到的操作系统内核和文件系统的数据和所述第一校验码值保存在所述闪存中。
其中,所述第一获取模块包括:
第一读取单元,用于读取所述与非型闪存中操作系统内核和文件系统的OOB数据;
第一计算单元,用于根据所述第一读取单元读取到的OOB数据,计算所述OOB数据的第一校验码值。
其中,所述第二获取模块包括:
第二读取单元,用于读取所述存储闪存中的操作系统内核和文件系统的OOB数据;
第二计算单元,用于根据所述第二读取单元读取到的存储在闪存中的操作系统内核和文件系统的OOB数据,计算所述存储在闪存中的操作系统内核和文件系统的OOB数据的第二校验码值。
实施本发明,具有如下有益效果:
本发明实施例提供的与非型闪存内核文件系统的校验方法及装置,通过获取与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值和存储在闪存中的操作系统内核和文件系统的OOB数据的第二校验码值,对所述第二校验码值与所述第二校验码值进行比较,当二者一致时,提示启动成功;当二者不一致时,提示启动失败。由于操作系统内核和文件系统数据远大于该区域OOB数据的大小,因此,在系统启动BOOT启动程序时,不读取整个操作系统内核和文件系统的数据,而只读取该区域的OOB数据做校验,来检查启动程序的完整性,可提高对大文件校验效率,从而提升启动速率。
附图说明
图1为本发明的一种与非型闪存操作系统内核和文件系统校验方法的第一实施例的流程图; 
图2为本发明的一种与非型闪存操作系统内核和文件系统校验方法的第二实施例的流程图;
图3为本发明的一种与非型闪存操作系统内核和文件系统校验方法的第三实施例的流程图;
图4为本发明的一种与非型闪存操作系统内核和文件系统校验装置的第一实施例的结构示意图;
图5为本发明的一种与非型闪存操作系统内核和文件系统校验装置的第二实施例的结构示意图;
图6为本发明的一种与非型闪存操作系统内核和文件系统校验装置的第三实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,图1为本发明提供的一种与非型闪存内核文件系统校验方法的第一实施例的流程图。如图1所示,该方法可以包括以下步骤: 
S101,获取所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值;
具体的,本发明实施例中的与非型闪存(Nand-flash)是flash内存的一种,与非型闪存Flash 最小读写单位为Page,每1个Page的最后有一个被称为OOB(Out of Band)的数据区,所述OOB数据区在Linux MTD相关系统中用来保存校验码的,以及其他一下信息,如上层文件系统的相关的数据和自己文件系统相关的数据,其中,所述校验码包括CRC、ECC、MD、HASH中的任一一种,所述校验码可保证每一个PAGE的数据完整性,同时,由于与非型闪存Flash的规格不一样,存储页的大小也是不一样的,如三星 FlashK9F1G08U0D-SCB0 型号的NAND Flash,1 Page为2K(2048 Bytes),每个Page对应的 OOB数据大小为 64 Bytes。
由于Nand flash的制作工艺原因,使得Nand的生产和使用过程中都有可能产生坏块,为了对坏块进行有效管理,本发明实施例通过校验与非型闪存中操作系统内核和文件系统的OOB数来判断Kernel和FS的合法性,由于操作系统内核和文件系统数据大小远大于该区域OOB数据的大小,根据一个PAGE 包含64Bytes的OOB数据来计算,操作系统内核和文件系统数据大小是该区域OOB数据的大小32倍,因此,通过校验操作系统内核和文件系统的OOB数会大大缩短BOOT去读数据的时间,从而提升启动效率。
本发明实施例通过读取所述与非型闪存中操作系统内核和文件系统的OOB数据,并根据所述读取的与非型闪存中操作系统内核和文件系统的OOB数据,计算所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值。
需要说明的是,本发明实施例中LINUX操作系统包括:操作系统内核(Kernel )和文件系统(File system,FS),所述与非型闪存中操作系统内核和文件系统的OOB数据最小读写单位为Page,如果所述与非型闪存中内核文件系统大小不满一个Page时,则需要将所述与非型闪存中操作系统内核和文件系统大小填充至1Page的大小,即与1Page的大小对齐。
需要说明的是,本发明实施例中读取所述与非型闪存中操作系统内核和文件系统的OOB数据的前提条件是需要启动整个应用程序程序(Application,APP),引导系统启动程序(BOOT),该应用程序是使用的LINUX系统,而所述LINUX系统又由操作系统内核和文件系统组成,因此,可以理解的是所述应用程序APP是由操作系统内核和文件系统组成的。
S102,获取存储在闪存中的操作系统内核和文件系统OOB数据的第二校验码值;
具体的,本发明实施例中在S101步骤中获取所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值之后,将所述操作系统内核和文件系统的数据和所述第一校验码值存储在所述闪存中,对于2个Page的数据来说,如果所述2个Page数据不同,则通过它们计算的校验值也不相同,因此,通过读取所述存储在闪存中的操作系统内核和文件系统OOB数据,并根据所述读取到的OOB数据,计算所述存储在闪存中的操作系统内核和文件系统OOB数据的第二校验码值,同时,获取所述存储在闪存中的第一校验码值,并将所述第二校验码值与所述第一校验码值进行比较,判断二者是否一致,当二者一致时,应用程序(APP)是完整的,提示启动成功,当二者不一致时,提示启动失败。
S103,将所述第二校验码值与所述第一校验码值进行比较,当二者一致时,提示启动成功;当二者不一致时,提示启动失败。
具体的,本发明实施例通过读取存储在闪存中的操作系统内核和文件系统的OOB数据来计算所述OOB数据的第二校验码值,并与预存在闪存Flash中的第一校验码值比较,来确认数据的完整性,对于2个Page的数据来说,如果每个Page的数据不同,则根据每1个Page的数据计算得到的校验值也不相同,因此,通过读取所述存储在闪存中的操作系统内核和文件系统OOB数据,并根据所述OOB数据,计算所述存储在闪存中的操作系统内核和文件系统OOB数据的第二校验码值,同时,获取所述存储在闪存中的第一校验码值,并将所述第二校验码值与所述第一校验码值进行比较,判断二者是否一致,当二者一致时,启动程序的完整,提示启动成功,当二者不一致时,校验失败,提示启动失败。
需要说明的是,本发明实施例中当所述第二校验码值和所述第一校验码值一致,就认为应用程序APP启动成功,即在确认计算出的第二校验码值与预存的第一校验码值一致时,可以认为所述应用程序APP是完整的,这个是人为约束,在确认计算出的第二校验码值与预存的第一校验码值不一致时,可以认为所述应用程序APP是不完整的,一个不完整的应用程序APP启动是无意义的,它是不能正常运行的,所以会启动失败。
本发明实施例中与非型闪存(Nand-flash)最小读写单位为Page,与非型闪存Nand flash中每一页存储页的最后有一块OOB区域,用于存放校验的校验值如CRC、ECC、MD、HASH,及其他一些信息,而对于2个Page的数据来时,如果每个Page的数据不同,则根据每1个Page的数据计算得到的校验值也不相同,因此,通过校验所述第二校验码值和第一校验码值是否一致可检验启动程序的完整性,当二者一致时,提示启动成功,当二者不一致时,提示启动失败。
请参见图2,为本发明的一种与非型闪存内核文件系统校验方法的第二实施例的流程图。如图2所示,该方法可以包括以下步骤:
S201,读取所述与非型闪存中操作系统内核和文件系统的OOB数据;
具体的,本发明实施例通过读取所述与非型闪存中操作系统内核和文件系统的数据,在读取操作系统内核和文件系统的数据大小后,才可以根据所述读取的操作系统内核和文件系统的数据的大小,读取相应的与非型闪存中内核文件系统的OOB数据,并根据所述OOB数据计算所述与非型闪存中内核文件系统的OOB数据的第一校验码值,并将所述与非型闪存中操作系统内核和文件系统的数据和所述第一校验码值存储在闪存中。
需要说明的是,所述OOB的计算有其算法,不同的NAND FLASH可能规定的算法不一样,但是这个并不影响其可靠性,当得知某款NAND FLASH后,会获取其OOB算法,通过该算法开发PC工具,再用工具来对某个文件来计算OOB数据。
需要说明的是,本发明实施例只针对非型闪存Flash有用,对于NOR、SPI/CFI等Flash不能使用。
S202,计算所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值;
具体的,本发明实施例中在S201步骤中读取所述与非型闪存中操作系统内核和文件系统的OOB数据后,根据所述OOB数据,计算所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值,由于与非型闪存Flash的规格不一样,存储页的大小也是不一样的,对于2个Page的数据来说,如果每个Page的数据不同,则根据每1个Page的数据计算得到的校验值也不相同,这样通过计算所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值,并将所述操作系统内核和文件系统的数据和所述第一校验码值保存在所述闪存中,以便在获取存储在闪存中的操作系统内核和文件系统OOB数据的第二校验码值后,将所述第二校验码值与所述第一校验码值进行比较,判断所述第二校验码值与所述第一校验码值是否一致,来检查启动程序的完整性,而不再是将所述操作系统内核和文件系统的数据完整数据读取出来,从而提升启动速率。
S203,将所述操作系统内核和文件系统的数据和所述第一校验码值保存在所述闪存中;
具体的,本发明实施例通过读取所述与非型闪存中操作系统内核和文件系统的数据来计算得到第一校验码值后,将所述操作系统内核和文件系统的数据和所述第一校验码值保存在所述闪存中,以便根据所述存储在闪存Flash中的操作系统内核和文件系统的OOB数据获取第二校验码值,并根据所述第二校验值,对所述第二校验值和第一校验值进行比较,来确认数据完整,对于2个Page的数据来说,如果每个Page的数据不同,则根据每1个Page的数据计算得到的校验值也不相同,因此,通过读取与非型闪存中操作系统内核和文件系统每个Page中的OBB数据进行校验,而不是校验1Page数据大小,就会大大缩短BOOT去读数据的时间,从而提升启动效率,因为1个Page的OOB数据大小要远小于一个Page的空间大小。 
S204,获取存储在闪存中的内核文件系统OOB数据的第二校验码值;
S205,将所述第二校验码值与所述第一校验码值进行比较,当二者一致时,提示启动成功;当二者不一致时,提示启动失败。
本发明实施例在校验数据时不需要读取与非型闪存中操作系统内核和文件系统每个Page的数据,只需要读取每个Page中的OBB数据即可,因为1个Page的OOB数据大小要远小于一个Page的空间大小,因此,通过读取所述与非型闪存中操作系统内核和文件系统的OOB数据的校验值,并根据所述OOB数据的校验值来检查启动程序的完整性,这样会大大缩短BOOT去读数据的时间,从而提升启动效率。
请参见图3,为本发明的一种与非型闪存操作系统内核和文件系统校验方法的第三实施例的流程图。如图3所示,该方法可以包括以下步骤:
S301,获取所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值;
S302,将所述操作系统内核和文件系统的数据和所述第一校验码值保存在所述闪存中;
S303,读取所述存储在闪存中的操作系统内核和文件系统OOB数据;
具体的,本发明实施例在S302步骤将所述操作系统内核和文件系统的数据和所述第一校验码值保存在所述闪存中后,读取所述存储在闪存中的操作系统内核和文件系统的数据,并计算所述存储在闪存中的操作系统内核和文件系统的OOB数据的第二校验码值,以便在计算得到存储在闪存中的操作系统内核和文件系统的OOB数据的第二校验码值后,与所述第一校验码值进行比较。
S304,计算所述存储在闪存中的内核文件系统OOB数据的第二校验码值;
具体的,本发明实施例在S303步骤中读取所述存储在闪存中的操作系统内核和文件系统OOB数据后,根据所述读取到的存储在闪存中的操作系统内核和文件系统OOB数据,计算所述OOB数据的第二校验码值,同时,读取保存在闪存中的第一校验码值,对所述第二校验码值与所述第一校验码值进行比较,判断二者是否一致,实现了不读取操作系统内核和文件系统的数据,而是读取存储在闪存中的操作系统内核和文件系统的OOB数据来计算第二校验码值,并与预存在闪存中的第一校验码值进行比较,来确认数据完整。
本发明实施例中通过使用操作系统内核和文件系统的OOB数据的校验值进行数据校验,由于与非型闪存Flash的规格不一样,存储页的大小也是不一样的,而且每个Page的OOB数据大小要远小于一个Page的空间大小,对于2个Page的数据来说,如果每个Page的数据不同,则根据每1个Page的数据计算得到的校验值也不相同,因此,通过校验与非型闪存中操作系统内核和文件系统的OOB数会大大缩短BOOT去读数据的时间,从而提升启动效率。
S305,将所述第二校验值与所述第一校验值进行比较,当二者一致时,提示启动成功;当二者不一致时,提示启动失败。
请参见图4,为本发明的一种与非型闪存操作系统内核和文件系统校验装置的第一实施例的结构示意图。如图4所示,所述装置包括:
第一获取模块10,用于获取所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值;
具体的,本发明实施例中所述第一获取模块10用于获取所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值,与非型闪存Flash 最小读写单位为Page,每1个Page最后有一块区域OOB,用于存放校验的校验码如CRC、ECC、MD、HASH,及其他一下信息,所述校验码可保证每一个PAGE的数据完整性,由于与非型闪存Flash的规格不一样,存储页的大小也是不一样的,而且一个Page的OOB数据大小要远小于一个Page的空间大小,对于2个Page的数据来说,如果2个Page数据不同,则通过2个Page数据计算的校验值也是不同的,因此,通过所述第一获取模块10读取所述与非型闪存中操作系统内核和文件系统的OOB数据,并根据所述OOB数据,计算所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值,以便和第二获取模块30获取到的第二校验码值进行比较。
第二获取模块30,用于获取存储在闪存中的操作系统内核和文件系统OOB数据的第二校验码值;
具体的,本发明实施例中在所述第一获取模块10获取所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值之后,将所述操作系统内核和文件系统的数据和所述第一校验码值存储在所述闪存中,所述第二获取模块30通过读取存储在闪存中的操作系统内核和文件系统的OOB数据,并根据所述OOB数据,获取存储在闪存中的操作系统内核和文件系统OOB数据的第二校验码值,对于2个Page的数据来说,如果2个Page的数据不同,则通过它们计算的校验值也不相同,因此,通过所述第二获取模块30获取到的存储在闪存中的操作系统内核和文件系统OOB数据的第二校验码值与所述第一获取模块10获取到的与非型闪存中内核文件系统的OOB数据的第一校验码值进行比较,判断二者是否一致,当二者一致时,提示启动成功,当二者不一致时,提示启动失败。
比较模块40,用于根据所述第二获取模块30获取到的第二校验码值,将所述第二获取模块30获取到的第二校验码值与所述第一获取模块10获取到的第一校验码值进行比较;
具体的,本发明实施例通过读取操作系统内核和文件系统的OOB数据,并根据所述OOB数据来计算第二校验码值,并与存储在闪存Flash中的第一校验码值比较,来确认数据的完整性,所述比较模块40根据所述第二获取模块30获取到的第二校验码值和所述第二获取模块30获取到的第一校验码值的基础上,对所述第二获取模块30获取到的第二校验码值和所述第一获取模块10获取到的第一校验码值进行比较,对于2个Page的数据来说,如果每个Page的数据不同,则根据每1个Page的数据计算得到的校验值也不相同,因此,通过所述第二获取模块30读取所述存储在闪存中的内核文件系统OOB数据,并根据所述OOB数据,计算所述存储在闪存中的操作系统内核和文件系统OOB数据的第二校验码值,同时获取所述存储在闪存中的第一校验码值,通过比较模块40对所述第二校验码值与所述第一校验码值进行比较,判断二者是否一致,当二者一致时,启动程序的完整,提示启动成功,当二者不一致时,校验失败,提示启动失败。
提示模块50,用于当所述比较模块40的比较结果为是时,提示启动成功;以及当所述比较模块的比较结果为否时,提示启动失败。
具体的,本发明实施例中所述比较模块40根据所述第二获取模块30获取到的第二校验码值,将所述第二获取模块30获取到的第二校验码值与所述第一获取模块10获取到的第一校验码值进行比较,当所述比较模块40的比较结果为是时,通过提示模块50提示启动成功,当所述比较模块40的比较结果为否时,通过提示模块50提示启动失败。
本发明实施例中所述第一获取模块10获取所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值,所述第二获取模块30获取存储在闪存中的操作系统内核和文件系统OOB数据的第二校验码值,所述比较模块40根据所述第二获取模块30获取到的第二校验码值,将所述第二获取模块30获取到的第二校验码值与所述第一获取模块10获取到的第一校验码值进行比较,当二者一致时,通过提示模块50提示启动成功,当二者不一致时,校验失败,通过提示模块50提示启动失败。
请参见图5,为本发明的一种与非型闪存操作系统内核和文件系统校验装置的第二实施例的结构示意图。如图5所示,所述装置包括上述图4中的:第二获取模块30、比较模块40、提示模块50,本发明实施例中,所述第一获取模块10进一步包括:
第一读取单元101,用于读取所述与非型闪存中操作系统内核和文件系统的OOB数据;
具体的,本发明实施例中所述第一读取单元101用于读取所述与非型闪存中操作系统内核和文件系统的数据,只有在读取操作系统内核和文件系统的数据大小后,才可以根据所述读取的操作系统内核和文件系统的数据的大小,读取相应的操作系统内核和文件系统的OOB数据,并通过第一计算单元102计算所述操作系统内核和文件系统的OOB数据的第一校验码值,并与存储在闪存Flash中的第一校验码值比较,来确认数据的完整性,而不再是将操作系统内核和文件系统的数据完整地读取出来,因此,通过所述第一读取单元101读取所述与非型闪存中操作系统内核和文件系统的OOB数据,以便第一计算单元102根据所述第一读取单元101读取到的OOB数据,计算所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值,以便和获取到的第二校验码值进行比较。
第一计算单元102,用于根据所述第一读取单元读取到的OOB数据,计算所述OOB数据的第一校验码值。
具体的,本发明实施例中在S201步骤中读取所述与非型闪存中操作系统内核和文件系统的OOB数据后,根据所述OOB数据,计算所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值,由于与非型闪存Flash的规格不一样,存储页的大小也是不一样的,而对于2个Page的数据来说,如果每个Page的数据不同,则根据每1个Page的数据计算得到的ECC值也不相同,因此,通过计算所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值,并将所述操作系统内核和文件系统的数据和所述第一校验码值保存在所述闪存中,以便在获取存储在闪存中的操作系统内核和文件系统OOB数据的第二校验码值后,将所述第二校验码值与所述第一校验码值进行比较,判断所述第二校验码值与所述第一校验码值是否一致,来检查启动程序的完整性,从而提升启动速率。
本发明实施例中所述装置进一步包括:
存储模块20,用于将所述第一获取模块10获取到的操作系统内核和文件系统的数据和所述第一校验码值保存在所述闪存中。
请参见图6,为本发明的一种与非型闪存操作系统内核和文件系统校验装置的第三实施例的结构示意图。如图6所示,所述装置包括上述图4中的:第一获取模块10、比较模块40、提示模块50以及上述图5中的:存储模块20,本发明实施例中,所述第二获取模块30进一步包括:
第二读取单元301,用于读取所述存储闪存中的操作系统内核和文件系统OOB数据;
具体的,本发明实施例在所述存储模块20将所述第一获取模块10获取到的操作系统内核和文件系统的数据和所述第一校验码值保存在所述闪存中后,通过所述第二读取单元301读取所述存储闪存中的操作系统内核和文件系统OOB数据以便第二计算单元302根据所述第二读取单元301读取到的存储在闪存中的操作系统内核和文件系统OOB数据,计算所述存储在闪存中的操作系统内核和文件系统OOB数据的第二校验码值。
第二计算单元302,用于根据所述第二读取单元301读取到的存储在闪存中的操作系统内核和文件系统OOB数据,计算所述存储在闪存中的操作系统内核和文件系统OOB数据的第二校验码值。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,所述的程序可存储于一计算机可读写存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为FLASH闪存、电可擦可编程只读存储器、磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

Claims (9)

1.一种与非型闪存操作系统内核和文件系统校验方法,其特征在于,包括:
获取所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值;
获取存储在闪存中的操作系统内核和文件系统的OOB数据的第二校验码值;
将所述第二校验码值与所述第一校验码值进行比较,当二者一致时,提示启动成功;当二者不一致时,提示启动失败。
2.如权利要求1所述方法,其特征在于,所述操作系统内核和文件系统的OOB数据区是用来保存校验码的,所述校验码包括CRC、ECC、MD、HASH中的任一一种。
3.如权利要求1所述方法,其特征在于,所述获取所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值之后,还包括:
将所述操作系统内核和文件系统的数据和第一校验码值保存在所述闪存中。
4.如权利要求1所述方法,其特征在于,所述获取所述与非型闪存中内核文件系统的OOB数据的第一校验码值,包括: 
读取所述与非型闪存中操作系统内核和文件系统的OOB数据;
计算所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值。
5.如权利要求1所述方法,其特征在于,所述获取存储在闪存中的操作系统内核和文件系统的OOB数据的第二校验码值,包括: 
读取所述存储在闪存中的操作系统内核和文件系统的OOB数据;
计算所述存储在闪存中的操作系统内核和文件系统的OOB数据的第二校验码值。
6.一种与非型闪存操作系统内核和文件系校验装置,其特征在于,包括:
第一获取模块,用于获取所述与非型闪存中操作系统内核和文件系统的OOB数据的第一校验码值;
第二获取模块,用于获取存储在闪存中的操作系统内核和文件系统的OOB数据的第二校验码值;
比较模块,用于根据所述第二获取模块获取到的第二校验码值,将所述第二获取模块获取到的第二校验码值与所述第一获取模块获取到的第一校验码值进行比较;
提示模块,用于当所述比较模块的比较结果为是时,提示启动成功;以及当所述比较模块的比较结果为否时,提示启动失败。
7.如权利要求6所述装置,其特征在于,包括:
存储模块,用于将所述第一获取模块获取到的操作系统内核和文件系统的数据和所述第一校验码值保存在所述闪存中。
8.如权利要求6所述装置,其特征在于,所述第一获取模块包括:
第一读取单元,用于读取所述与非型闪存中操作系统内核和文件系统的OOB数据;
第一计算单元,用于根据所述第一读取单元读取到的OOB数据,计算所述OOB数据的第一校验码值。
9.如权利要求6所述装置,其特征在于,所述第二获取模块包括:
第二读取单元,用于读取所述存储闪存中的操作系统内核和文件系统的OOB数据;
第二计算单元,用于根据所述第二读取单元读取到的存储在闪存中的操作系统内核和文件系统的OOB数据,计算所述存储在闪存中的操作系统内核和文件系统的OOB数据的第二校验码值。
CN2012102215174A 2012-06-30 2012-06-30 一种与非型闪存操作系统内核和文件系统校验方法及装置 Pending CN102799496A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012102215174A CN102799496A (zh) 2012-06-30 2012-06-30 一种与非型闪存操作系统内核和文件系统校验方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012102215174A CN102799496A (zh) 2012-06-30 2012-06-30 一种与非型闪存操作系统内核和文件系统校验方法及装置

Publications (1)

Publication Number Publication Date
CN102799496A true CN102799496A (zh) 2012-11-28

Family

ID=47198610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012102215174A Pending CN102799496A (zh) 2012-06-30 2012-06-30 一种与非型闪存操作系统内核和文件系统校验方法及装置

Country Status (1)

Country Link
CN (1) CN102799496A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035833A (zh) * 2013-03-07 2014-09-10 联发科技股份有限公司 校验机器可读代码完整性的方法及系统
CN109976815A (zh) * 2019-03-20 2019-07-05 深圳忆联信息系统有限公司 一种加速Nandboot的方法及其系统
CN111107089A (zh) * 2019-12-23 2020-05-05 成都三零瑞通移动通信有限公司 一种保护Android系统数据传输安全的方法及装置
CN112379835A (zh) * 2020-11-12 2021-02-19 厦门市美亚柏科信息股份有限公司 一种oob区数据提取方法、终端设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263431B1 (en) * 1998-12-31 2001-07-17 Intle Corporation Operating system bootstrap security mechanism
JP2005180966A (ja) * 2003-12-16 2005-07-07 Toshiba Corp プログラムの認証機能を備えた電力量計
CN101135974A (zh) * 2006-08-28 2008-03-05 中兴通讯股份有限公司 一种提高芯片启动速度的装置及方法
CN102110028A (zh) * 2009-12-25 2011-06-29 康佳集团股份有限公司 一种nand闪存及其数据的校验方法和装置
CN102467522A (zh) * 2010-11-10 2012-05-23 中兴通讯股份有限公司 一种基于nand闪存的文件系统的自编程方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263431B1 (en) * 1998-12-31 2001-07-17 Intle Corporation Operating system bootstrap security mechanism
JP2005180966A (ja) * 2003-12-16 2005-07-07 Toshiba Corp プログラムの認証機能を備えた電力量計
CN101135974A (zh) * 2006-08-28 2008-03-05 中兴通讯股份有限公司 一种提高芯片启动速度的装置及方法
CN102110028A (zh) * 2009-12-25 2011-06-29 康佳集团股份有限公司 一种nand闪存及其数据的校验方法和装置
CN102467522A (zh) * 2010-11-10 2012-05-23 中兴通讯股份有限公司 一种基于nand闪存的文件系统的自编程方法及装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035833A (zh) * 2013-03-07 2014-09-10 联发科技股份有限公司 校验机器可读代码完整性的方法及系统
CN109976815A (zh) * 2019-03-20 2019-07-05 深圳忆联信息系统有限公司 一种加速Nandboot的方法及其系统
CN109976815B (zh) * 2019-03-20 2022-03-29 深圳忆联信息系统有限公司 一种加速Nandboot的方法及其系统
CN111107089A (zh) * 2019-12-23 2020-05-05 成都三零瑞通移动通信有限公司 一种保护Android系统数据传输安全的方法及装置
CN111107089B (zh) * 2019-12-23 2022-03-11 成都三零瑞通移动通信有限公司 一种保护Android系统数据传输安全的方法及装置
CN112379835A (zh) * 2020-11-12 2021-02-19 厦门市美亚柏科信息股份有限公司 一种oob区数据提取方法、终端设备及存储介质
CN112379835B (zh) * 2020-11-12 2022-07-01 厦门市美亚柏科信息股份有限公司 一种oob区数据提取方法、终端设备及存储介质

Similar Documents

Publication Publication Date Title
KR101375992B1 (ko) 불휘발성 메모리로부터의 디바이스 부트업 동안 에러들의 핸들링
CN109189405B (zh) 一种验证程序Flash数据一致性的方法及系统
CN104063477B (zh) 嵌入式系统启动异常的处理方法及装置
CN102650949A (zh) 一种存储设备的固件升级的方法及装置
CN102662715B (zh) 一种嵌入式操作系统启动方法
CN103744694A (zh) 基于Nand闪存的动态分区搜索装置及其方法
CN103970557A (zh) 存储设备启动系统的方法及存储设备
US10038565B2 (en) Methods and systems for bypassing authenticity checks for secure control modules
CN103778964B (zh) 一种NAND Flash烧写数据的处理、使用方法及装置、系统
CN102163155A (zh) 存储设备的升级方法及升级控制装置
CN102799496A (zh) 一种与非型闪存操作系统内核和文件系统校验方法及装置
CN101923473A (zh) 嵌入式电子装置及更新其固件的方法
CN107015878B (zh) 用于计算机的系统修复方法及系统
CN102981872A (zh) 终端设备开机、升级方法和终端设备
CN104484185A (zh) 固件生成系统及方法
CN105677409B (zh) 一种系统升级方法及装置
CN103226505A (zh) 一种校验基本输入输出系统bios的方法及设备
WO2018059565A1 (zh) 闪存数据的备份方法及系统
CN107168750B (zh) 一种固件升级保护方法及系统
CN105045718A (zh) 基于Linux嵌入式系统的调试系统、方法及修改方法
CN103455750A (zh) 一种嵌入式设备的高安验证方法及装置
WO2018014687A1 (zh) 一种参数传递方法、装置及计算机存储介质
CN102467522B (zh) 一种基于nand闪存的文件系统的自编程方法及装置
US20170131946A1 (en) Method and device for formatting storage of mobile terminal
CN104750617A (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
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20121128