CN113590168B - 嵌入式设备升级方法、装置、设备、介质及程序产品 - Google Patents

嵌入式设备升级方法、装置、设备、介质及程序产品 Download PDF

Info

Publication number
CN113590168B
CN113590168B CN202110861904.3A CN202110861904A CN113590168B CN 113590168 B CN113590168 B CN 113590168B CN 202110861904 A CN202110861904 A CN 202110861904A CN 113590168 B CN113590168 B CN 113590168B
Authority
CN
China
Prior art keywords
original
block
current
differential data
image file
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.)
Active
Application number
CN202110861904.3A
Other languages
English (en)
Other versions
CN113590168A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202110861904.3A priority Critical patent/CN113590168B/zh
Publication of CN113590168A publication Critical patent/CN113590168A/zh
Application granted granted Critical
Publication of CN113590168B publication Critical patent/CN113590168B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种嵌入式设备升级方法、装置、设备、介质及程序产品,涉及计算机技术领域,尤其涉及***升级技术。具体实现方案为:对原始镜像文件和目标镜像文件分别进行第一方向的分块处理;若确定目标镜像文件中的当前目标分块满足双向引用条件,则获取与当前目标分块对应的多个原始分块,多个原始分块中包括前向原始分块和后向原始分块,多个原始分块均属于原始镜像文件;采用多个原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据;采用当前第一差分数据及对应的多个原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。本公开能够找到最能近似匹配的分块,进而能够获得最优差分数据,有效提高差分率。

Description

嵌入式设备升级方法、装置、设备、介质及程序产品
技术领域
本公开涉及计算机技术领域中的***升级技术,尤其涉及一种嵌入式设备升级方法、装置、设备、介质及程序产品。
背景技术
嵌入式设备是以应用为中心,通过计算机技术,将软硬件进行剪裁以适配具体应用环境的专门计算机小型设备。嵌入式设备被广泛使用,例如智能手机、可穿戴设备、无线耳机、音箱等。
为了产品功能或数据的更新与维护,对嵌入式设备进行升级是必不可少的。目前对嵌入式设备进行升级时,一般采用差分升级的方式。具体为正向差分、反向差分或正向差分与反向差分相结合的方式。
发明内容
本公开提供了一种嵌入式设备升级方法、装置、设备、介质及程序产品。
根据本公开的第一方面,提供了一种嵌入式设备升级方法,包括:
对原始镜像文件和目标镜像文件分别进行第一方向的分块处理;
若确定目标镜像文件中的当前目标分块满足双向引用条件,则获取与所述当前目标分块对应的多个原始分块,多个原始分块中包括前向原始分块和后向原始分块,多个所述原始分块均属于原始镜像文件;
采用所述多个原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据;
采用所述当前第一差分数据及对应的多个原始分块对所述嵌入式设备中原始镜像文件的当前原始分块进行升级。
根据本公开的第二方面,提供了一种嵌入式设备升级装置,包括:
分块处理单元,用于对原始镜像文件和目标镜像文件分别进行第一方向的分块处理;
分块获取单元,用于若确定目标镜像文件中的当前目标分块满足双向引用条件,则获取与所述当前目标分块对应的多个原始分块,多个原始分块中包括前向原始分块和后向原始分块,多个所述原始分块均属于原始镜像文件;
差分操作单元,用于采用所述多个原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据;
升级单元,用于采用所述当前第一差分数据及对应的多个原始分块对所述嵌入式设备中原始镜像文件的当前原始分块进行升级。
根据本公开的第三方面,提供了一种嵌入式设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够第一方面中任一项所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求第一方面中任一项所述的方法。
根据本公开的第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,嵌入式设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得嵌入式设备执行第一方面所述的方法。
根据本公开的技术,由于在满足双向引用条件的情况下,均引用属于原始镜像文件的既包括前向原始分块,又包括后向原始分块的多个原始分块来对当前目标分块进行差分操作,以获得差分数据。所以能够找到最能近似匹配的分块,进而能够获得最优差分数据,有效提高差分率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是现有技术中采用正向差分升级的原理图;
图2是现有技术中采用反向差分升级的原理图;
图3是根据本公开提供的嵌入式设备升级方法的应用场景示意图;
图4是根据本公开第一实施例提供的嵌入式设备升级方法的流程示意图;
图5是根据本公开第二实施例提供的嵌入式设备升级方法的流程示意图;
图6a是根据本公开第二实施例提供的嵌入式设备升级方法中正向差分的第一原理图;
图6b是根据本公开第二实施例提供的嵌入式设备升级方法中正向差分的第二原理图;
图7是根据本公开第三实施例提供的嵌入式设备升级方法的流程示意图;
图8是根据本公开第四实施例提供的嵌入式设备升级方法的流程示意图;
图9是根据本公开第五实施例提供的嵌入式设备升级装置的结构示意图;
图10是用来实现本公开实施例的嵌入式设备升级方法的嵌入式设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,本公开的技术方案中,所涉及数据处理有用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
为了清楚理解本公开的技术方案,首先对现有技术的技术方案进行详细介绍。
目前对嵌入式设备进行升级时,一般采用差分升级的方式。具体为正向差分、反向差分或正向差分与反向差分相结合的方式。
在采用正向差分进行升级时,在将原始镜像文件和目标镜像文件分别进行正向方向的分块处理后,针对目标镜像文件中的每个目标分块,由于需要块回写操作,所以均引用正向方向的原始镜像文件中对应的原始分块。如图1所示,原始镜像文件和目标镜像文件分别进行正向方向的分块处理后,均有标识为0-N的多个分块。对于标识为i的目标分块,由于标识为i之前的原始分块已经被进行了块回写操作,被标记为不可引用分块。所以标识为i的目标分块只能引用原始镜像文件中的标识为i至N的原始分块进行差分操作,以获得对应的差分数据。然后采用差分数据和引用的原始分块生成标识为i的用于升级的分块,将标识为i的用于升级的分块替换第i个原始分块。即进行了标识为i的块回写操作。在所有目标分块均进行完块回写后,重启嵌入式设备,引导运行块回写后的用于升级的分块,完成嵌入式设备的升级。在图1中示意出了标识为2的目标分块,引用原始镜像文件中的标识为2至N的原始分块进行差分操作,以获得对应的差分数据的情况。所以采用正向差分进行升级时,每个目标分块只能依赖正向方向上的原始镜像文件的分块。但是对于每个目标分块,有可能更能近似匹配前向原始分块,又有可能更能近似匹配后向原始分块,而这种只引用正向方向上的分块,并不能使每个目标分块找到最能近似匹配的分块,导致不能获得到最优差分数据,差分率较低。
而在采用反向差分进行升级时,将原始镜像文件和目标镜像文件分别逐字节反转,并分别进行反向方向的分块处理后,针对目标镜像文件中的每个目标分块,由于需要块回写操作,所以均引用反向方向的原始镜像文件中对应的原始分块。如图2所示,原始镜像文件和目标镜像文件分别进行反向方向的分块处理后,均有标识为0-N的多个分块。对于标识为i的目标分块,由于标识为i之后的原始分块已经被进行了块回写操作,被标记为不可引用分块。所以标识为i的目标分块只能引用原始镜像文件中的标识为0至i-1的原始分块进行差分操作,以获得对应的差分数据。再采用差分数据和引用的原始分块生成标识为i的用于升级的分块,将标识为i的用于升级的分块替换第i个原始分块。即进行了标识为i的块回写操作。在所有目标分块均进行完块回写后,重启嵌入式设备,引导运行块回写后的用于升级的分块,完成嵌入式设备的升级。在图2中示意出了,标识为N-1的目标分块,引用原始镜像文件中的标识为0至N-2的原始分块进行差分操作,以获得对应的差分数据的情况。所以采用反向差分进行升级时,每个目标分块只能依赖反向方向上的原始镜像文件的分块。与正向差分的原理类似。而对于每个目标分块,有可能更能近似匹配前向原始分块,又有可能更能近似匹配后向原始分块,而这种只引用反向方向上的分块,并不能使每个目标分块找到最能近似匹配的分块,导致不能获得到最优差分数据,差分率较低。
而采用正向差分与反向差分相结合的方式进行升级时,在进行上述正向差分获得每个目标分块对应的差分数据后,将差分数据进行合并,形成正向差分包。再采用上述反向差分获得每个目标分块对应的差分数据后,将差分数据进行合并,形成反向差分包。将正向差分包和反向差分包进行比较,获取到最小差分数据包。采用最小差分数据包中的差分数据和引用的原始分块生成用于升级的分块,进而完成嵌入式设备的升级。虽然该种升级方式相比于正向差分或反向差分的升级方式,使差分率较低,能够占用更小的嵌入式设备中的空间。但进行正向差分和反向差分的过程,仍然是对原始分块的单向引用。所以也并未获取到最优差分数据,使差分率仍然较低。
所以在面对现有技术中的技术问题时,发明人通过创造性的研究发现,对于每个目标分块,与其最能近似匹配的分块往往出现在原始镜像文件中的前向原始分块及后向原始分块的多个分块中,所以为了能够找到最能近似匹配的分块,无论在进行正向差分还是进行反向差分时,在满足双向引用条件的情况下,均引用属于原始镜像文件的既包括前向原始分块,又包括后向原始分块的多个原始分块。采用多个原始分块对对应的目标分块进行差分操作,以获得差分数据。进而采用当前差分数据及对应的多个原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。通过这种差分操作,能够使每个目标分块均能找到最能近似匹配的分块,进而能够获得最优差分数据,有效提高差分率。
发明人基于上述的创造性发现,提出本公开的技术方案。下面对本空开实施例提供的嵌入式设备升级方法的网络架构和应用场景进行介绍。
图3是根据本公开提供的嵌入式设备升级方法的应用场景示意图。如图3所示,该应用场景对应的网络架构中包括:嵌入式设备1和服务器2。在嵌入式设备1有新的用户功能需求、新的性能提升要求、固件数据的改变、分区数据的改变、***的改变等时,均需要进行升级,服务器2可主动向嵌入式设备发送升级指令。在升级指令中包括:目标镜像文件。嵌入式设备可显示升级提示信息。用户通过嵌入式设备的操作界面同意进行升级后,嵌入式设备采用本公开实施例提供的嵌入式设备升级方法进行升级。以满足新的用户功能需求或新的性能提升要求或与改变的固件数据、改变的分区数据或改变的***进行适配。
以下将参照附图来具体描述本公开的实施例。
图4是根据本公开第一实施例提供的嵌入式设备升级方法的流程示意图,如图4所示,本实施例提供的嵌入式设备升级方法的执行主体为嵌入式设备升级装置。该嵌入式设备升级装置可以位于嵌入式设备中。嵌入式设备可以为智能手机、可穿戴设备、无线耳机、音箱、机顶盒、车载终端等。则本实施例提供的嵌入式设备升级方法包括以下步骤:
步骤401,对原始镜像文件和目标镜像文件分别进行第一方向的分块处理。
本实施例中,原始镜像文件是在嵌入式设备的***分区中运行,满足嵌入式设备各种功能需求的文件。目标镜像文件是在嵌入式设备进行升级时需要的镜像文件。
本实施例中,可从嵌入式设备的***分区中获取原始镜像文件。从嵌入式设备对应的后台服务器中获取目标镜像文件。在获取目标镜像文件时,可向服务器发送镜像文件获取请求。在获取请求中包括:目标镜像文件的标识信息。服务器根据获取请求获取标识信息对应的镜像文件作为目标镜像文件,并将目标镜像文件发送给嵌入式设备。或者如图3所示,后台服务器也可主动将目标镜像文件发送给嵌入式设备。
具体地,本实施例中,在对原始镜像文件和目标镜像文件分别进行第一方向的分块处理时,分别将原始镜像文件和目标镜像文件按照预设大小,沿着第一方向划分为相同数量的分块。如原始镜像文件和目标镜像文件均被分块为标识为0到N的分块。原始镜像文件被分块后,每个分块为原始分块。目标镜像文件被分块后,每个分块为目标分块。
其中,第一方向可以为正向方向也可以为反向方向。
在第一方向为反向方向时,可以理解的是,在将原始镜像文件和目标镜像文件分别进行反向方向的分块处理前,将原始镜像文件和目标镜像文件分别进行逐字节反转操作。
步骤402,若确定目标镜像文件中的当前目标分块满足双向引用条件,则获取与当前目标分块对应的多个原始分块,多个原始分块中包括前向原始分块和后向原始分块,多个原始分块均属于原始镜像文件。
本实施例中,针对目标镜像文件中的每个目标分块,按照第一方向依次进行处理。针对目标镜像文件中的当前目标分块,判断是否满足双向引用条件。若确定满足双向引用条件,则获取属于原始镜像文件中的包括至少一个前向原始分块和至少一个后向原始分块的多个原始分块,进而引用这多个原始分块对当前目标分块进行差分操作。
其中,前向原始分块是与当前目标分块相同位置的当前原始分块之前的原始分块。后向原始分块是与当前目标分块相同位置的当前原始分块之后的原始分块。
示例性地,对于标识为i的当前目标分块,在当前目标分块i满足双向引用条件的情况下,获取标识为i-k到i+h的多个原始分块作为标识为i的当前目标分块所引用的原始分块。其中,k>0,h>0。k和h的取值可以相同或不同。
步骤403,采用多个原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据。
其中,第一差分操作为对目标镜像文件进行第一方向的分块处理时对当前目标分块所进行的差分操作,获得的差分数据为第一差分数据。
具体地,本实施例中,可采用差分算法并根据多个原始分块对对应的当前目标分块进行第一差分操作。获得当前第一差分数据。
其中,差分算法可以为bsdiff、hpatchdiff,Xdelta等,本实施例中对此不作限定。
本实施例中,将当前目标分块与引用的多个原始分块分别输入到差分算法中,由差分算法基于多个原始分块对对应的当前目标分块进行第一差分操作,确定对应的当前第一差分数据,并输出当前第一差分数据。
步骤404,采用当前第一差分数据及对应的多个原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。
本实施例中,将当前第一差分数据与对应的多个原始分块进行合并处理,获得可以替换当前原始分块的当前升级分块。并将当前升级分块替换掉当前原始分块,即进行块回写操作,进而在嵌入式设备重启后,能够完成当前原始分块的升级。
本实施例提供的嵌入式设备升级方法,通过对原始镜像文件和目标镜像文件分别进行第一方向的分块处理;若确定目标镜像文件中的当前目标分块满足双向引用条件,则获取与当前目标分块对应的多个原始分块,多个原始分块中包括前向原始分块和后向原始分块,多个原始分块均属于原始镜像文件;采用多个原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据;采用当前第一差分数据及对应的多个原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。由于在满足双向引用条件的情况下,均引用属于原始镜像文件的既包括前向原始分块,又包括后向原始分块的多个原始分块来对当前目标分块进行差分操作,以获得差分数据。所以能够找到最能近似匹配的分块,进而能够获得最优差分数据,有效提高差分率。
图5是根据本公开第二实施例提供的嵌入式设备升级方法的流程示意图,如图5所示,本实施例提供的嵌入式设备升级方法在上一实施例提供的嵌入式设备升级方法的基础上,对步骤402和步骤404的进一步细化,并且还包括了其他步骤,则本实施例提供的嵌入式设备升级方法包括了以下步骤:
步骤501,对原始镜像文件和目标镜像文件分别进行第一方向的分块处理。
本实施例中,步骤501的实现方式与第一实施例中的步骤401的实现方式类似,在此不再一一赘述。
步骤502,判断目标镜像文件中的当前目标分块是否满足双向引用条件,若是,则执行步骤503,否则执行步骤508。
本实施例中,判断目标镜像文件中的当前目标分块是否满足双向引用条件具体可以为判断当前目标分块是否为目标镜像文件的首尾目标分块。若确定当前目标分块为首尾目标分块,则确定不满足双向引用条件,否则确定满足双向引用条件。
具体地,由于处于目标镜像文件中的第一个目标分块和最后一个目标分块,只能引用原始镜像文件中的单向原始分块,所以不满足双向引用条件。而位于目标镜像文件中除首尾目标分块以外的中间目标分块,既可以引用原始镜像文件中的前向原始分块,又可以引用原始镜像文件中的后向原始分块,所以满足双向引用条件。
步骤503,判断第一方向是否为正向方向,若是,则执行步骤504,否则执行步骤505。
本实施例中,若确定当前目标分块满足双向引用条件,即当前目标分块为除首尾目标分块以外的中间目标分块,则判断对原始镜像文件和目标镜像文件分别进行分块处理的方向是否为正向方向。
步骤504,从预设引用空间中获取与当前目标分块对应的至少一个前向原始分块,从原始镜像文件中获取与当前目标分块对应的当前原始分块和至少一个后向原始分块。
本实施例中,若确定对原始镜像文件和目标镜像文件分别进行分块处理的方向为正向方向,则在获取与当前目标分块对应的多个原始分块时,由于多个原始分块中在原始镜像文件中的前向原始分块由于块回写操作,已为不可用状态,所以在对前向原始分块未进行块回写操作之前,将前向原始分块写入到预设引用空间中进行存储。进而从预设引用空间获取与当前目标分块对应的至少一个前向原始分块。而在原始镜像文件中的当前原始分块和后向原始分块均为可用状态,所以从原始镜像文件中获取与当前目标分块对应的当前原始分块和至少一个后向原始分块。
示例性地,对于标识为i的当前目标分块,从预设引用空间中获取与当前目标分块对应的k个前向原始分块,在从原始镜像文件中获取标识为i的当前原始分块和h个后向原始分块。其中,后向原始分块的数量可以为全部后向原始分块。即h=N-i。N为目标分块的数量。k可以为预设个数或者为预设引用空间中所存储的全部前向原始分块的数量。
如图6a所示,对于标识为2的当前目标分块,在预设引用空间中存储有标识为0和1的前向原始分块,则从预设引用空间中获取标识为0和1的前向原始分块。从原始镜像文件中获取标识为2的当前原始分块和标识为3到N的后向原始分块。如图6b所示,对于标识为3的目标分块,在预设引用空间中存储有标识为1和2的前向原始分块,则从预设引用空间中获取标识为1和2的前向原始分块。从原始镜像文件中获取标识为3的当前原始分块和标识为4到N的后向原始分块。
本实施例提供的嵌入式设备升级方法,在第一方向为正向方向时,获取与当前目标分块对应的多个原始分块,多个原始分块中包括前向原始分块和后向原始分块,包括:从预设引用空间中获取与当前目标分块对应的至少一个前向原始分块;从原始镜像文件中获取与当前目标分块对应的当前原始分块和至少一个后向原始分块。能够在前向原始分块不可用之前,就将前向原始分块存储到预设引用空间中,进而对于当前目标分块,能够从预设引用空间中获取与当前目标分块对应的至少一个前向原始分块,能够保证满足正向差分时的双向引用要求。
步骤505,从原始镜像文件中获取与当前目标分块对应的当前原始分块和至少一个前向原始分块,从预设引用空间中获取与当前目标分块对应的至少一个后向原始分块。
本实施例中,若确定对原始镜像文件和目标镜像文件分别进行分块处理的方向为反向方向,则在获取与当前目标分块对应的多个原始分块时,由于多个原始分块中在原始镜像文件中的后向原始分块由于块回写操作,已为不可用状态,所以在对后向原始分块未进行块回写操作之前,将后向原始分块写入到预设引用空间中进行存储。进而从预设引用空间获取与当前目标分块对应的至少一个后向原始分块。而在原始镜像文件中的当前原始分块和前向原始分块均为可用状态,所以从原始镜像文件中获取与当前目标分块对应的当前原始分块和至少一个前向原始分块。
示例性地,对于标识为i的当前目标分块,从预设引用空间中获取与当前目标分块对应的k个后向原始分块,在从原始镜像文件中获取标识为i的当前原始分块和h个前向原始分块。与步骤504中类似,前向原始分块的数量可以为全部前向原始分块。即h=N-i。N为目标分块的数量。k可以为预设个数或者为预设引用空间中所存储的全部后向原始分块的数量。
本实施例提供的嵌入式设备升级方法,在第二方向为反向方向时,获取与当前目标分块对应的多个原始分块,多个原始分块中包括前向原始分块和后向原始分块,包括:从原始镜像文件中获取与当前目标分块对应的当前原始分块和至少一个前向原始分块;从预设引用空间中获取与当前目标分块对应的至少一个后向原始分块。能够在后向原始分块不可用之前,就将后向原始分块存储到预设引用空间中,进而对于当前目标分块,能够从预设引用空间中获取与当前目标分块对应的至少一个后向原始分块,能够保证满足反向差分时的双向引用要求。
步骤506,采用多个原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据。
本实施例中,步骤506的实现方式与第一实施例中步骤403的实现方式类似,在此不再一一赘述。
步骤507,采用当前第一差分数据及对应的多个原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。
本实施例中,将当前第一差分数据及对应的多个原始分块进行合并处理,以获得当前升级分块;将当前升级分块替换掉当前原始分块,以完成当前原始分块的升级。
其中,采用当前升级分块替换掉当前原始分块后,判断是否所有的原始分块均被对应的升级分块替换掉,若均被替换掉,则说明完成了所有满足双向引用条件的目标分块的块回写操作,进而在嵌入式设备重启后,能够完成所有满足双向引用条件的目标分块的升级。
步骤508,判断预设引用空间中是否存储有前向原始分块或后向原始分块,若是,则执行步骤509,否则执行步骤512。
本实施例中,若确定当前目标分块不满足双向引用条件,即在当前目标分块满足单向引用条件时,判断预设引用空间中是否存储有前向原始分块或后向原始分块。若确定在预设引用空间中存储有前向原始分块,则说明当前目标分块为最后一个目标分块且第一方向为正向方向。若确定在预设引用空间中存储有后向分块,则说明当前目标分块为第一个分块且第一方向为反向方向。
示例性的,正向方向的最后一个目标分块为标识为N的目标分块。反向方向的第一个目标分块为标识为0的目标分块。
步骤509,从预设引用空间中获取与当前目标分块对应的至少一个前向原始分块或至少一个后向原始分块,并从原始镜像文件中获取与当前目标分块对应的当前原始分块。
本实施例中,针对第一方向为正向方向的最后一个目标分块,在对前向原始分块未进行块回写操作之前,将前向原始分块写入到预设引用空间中进行存储。所以从预设引用空间获取与当前目标分块对应的至少一个前向原始分块。而针对第一方向为反向方向的第一个目标分块,在对后向原始分块未进行块回写操作之前,将后向原始分块写入到预设引用空间中进行存储。所以从预设引用空间获取与当前目标分块对应的至少一个后向原始分块。并且无论第一方向为正向方向还是反向方向,均从原始镜像文件中获取与当前目标分块对应的当前原始分块。
步骤510,采用前向原始分块或后向原始分块及当前原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据。
本实施例中,对于正向方向的最后一个目标分块,进行差分操作时,引用至少一个前向原始分块和当前原始分块。而对于反向方向的第一个目标分块,进行差分操作时,引用至少一个后向原始分块和当前原始分块。相较于现有技术中的正向差分或反向差分中,只引用一个原始分块,更能找到最能近似匹配的分块,进而能够获得正向方向最后一个目标分块或反向方向第一个目标分块的最优差分数据,有效提高这个位置的目标分块的差分率。
步骤511,采用当前第一差分数据、前向原始分块或后向原始分块及当前原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。
本实施例中,对于正向方向,采用当前第一差分数据、前向原始分块及当前原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。对于反向方向,采用当前第一差分数据、反向原始分块及当前原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。
步骤512,从原始镜像文件中获取与当前目标分块对应的单向原始分块。
本实施例中,若确定预设引用空间中未存储有前向原始分块或后向原始分块,则说明当前目标分块为正向方向的第一个目标分块或反向方向的最后一个目标分块。则针对正向方向的第一个目标分块或反向方向的最后一个目标分块,由于其前面没有前向原始分块或后向原始分块,所以从原始镜像文件中获取与当前目标分块对应的单向原始分块。
其中,对于正向方向的第一个目标分块,单向原始分块包括标识为0至N的所有原始分块。对于反向方向的最后一个目标分块,单向原始分块包括标识为0至N-1的所有原始分块
步骤513,采用单向原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据。
步骤514,采用当前第一差分数据和单向原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。
本实施例中,当前目标分块要引用的是单向原始分块。而步骤403-步骤404中当前目标分块要引用的是多个原始分块,但具体实现方式类似,在此不再一一赘述。
本实施例提供的嵌入式设备升级方法,在确定目标镜像文件中的当前目标分块不满足双向引用条件,在预设引用空间中也未存储有前向原始分块或后向原始分块时,从原始镜像文件中获取与当前目标分块对应的单向原始分块;采用单向原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据;采用当前第一差分数据和单向原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。由于这种情况下的当前目标分块只为正向方向的第一个目标分块或反向方向的最后一个目标分块,所以即使进行差分操作时进行了单向原始分块的引用,但能够引用全部原始分块或绝大部分原始分块,所以也能够找到最能近似匹配的分块,进而能够获得最优差分数据,有效提高第一个目标分块或最后一个目标分块的差分率。
作为一种可选实施方式,第二实施例提供的嵌入式设备升级方法中,步骤504,步骤505或步骤509中,从预设引用空间中获取与当前目标分块对应的至少一个前向原始分块或至少一个后向原始分块,具体包括:
从预设引用空间中获取全部原始分块;将全部原始分块确定为与当前目标分块对应的至少一个前向原始分块或至少一个后向原始分块。
具体地,本实施例中,由于嵌入式设备本身的存储空间有限,所以在预设引用空间中不能无限存放所有当前目标分块对应的前向原始分块或后向原始分块,只能存放有限的几个前向原始分块或后向原始分块。所以为了能够使当前目标分块更能近似匹配出原始分块,进一步提高当前目标分块的差分率,所以将预设引用空间中存储的全部原始分块都确定为对应的前向原始分块或后向原始分块,以与对应的当前目标分块进行差分操作。
图7是根据本公开第三实施例提供的嵌入式设备升级方法的流程示意图,如图7所示,本实施例中,在步骤404或步骤507之前,还包括以下步骤:
步骤701,将当前原始分块存储到预设引用空间。
步骤702,将原始镜像文件中的当前原始分块标记为不可用状态。
具体地,本实施例中,在确定当前目标分块对应的当前差分数据后,为了防止由于块回写操作,导致当前原始分块不可用,在对当前目标分块进行升级之前,将当前原始分块存储到预设引用空间。再将原始镜像文件中的当前原始分块标记为不可用状态。然后再进行当前目标分块的升级。将当前原始分块存储到预设引用空间后,能够在确定后续目标分块对应的差分数据时,引用预设引用空间中存储的前向原始分块或后向原始分块。并在对后续目标分块进行升级时,引用预设引用空间中存储的前向原始分块或后向原始分块。所以将当前原始分块存储到预设引用空间,能够有效防止当前原始分块被覆盖掉。使后续目标分块在进行差分操作及升级时,顺利引用对应的前向原始分块或后向原始分块。
作为一种可选实施方式,本实施例中,步骤701,包括以下步骤:
步骤701a,判断预设引用空间中的剩余空间大小是否大于或等于当前原始分块的大小,若是,则执行步骤701b,否则执行步骤701c。
步骤701b,将当前原始分块存储到预设引用空间。
步骤701c,按照先进先出的策略删除最先存储到预设引用空间中的原始分块,将当前原始分块存储到预设引用空间。
具体地,本实施例中,由于预设引用空间的存储空间是有限的。所以在当前原始分块存储到预设引用空间时,判断预设引用空间中的剩余空间大小是否大于或等于当前原始分块的大小,若是,则说明有足够的剩余空间存储当前原始分块,则将当前原始分块存储到预设引用空间。若否,则说明没有足够的剩余空间存储当前原始分块。则为了使后续目标分块能够引用与对应的原始分块尽可能近的前向原始分块或后向原始分块,则按照先进先出的策略删除最先存储到预设引用空间中的原始分块,将当前原始分块存储到预设引用空间。
示例性地,如图6a和图6b所示,预设引用空间只能2个原始分块,则在将标号为2的原始分块存入预设引用空间时,由于剩余空间大小不能再存放标号为2的原始分块,所以将标号为0的原始分块删除,将标号为2的原始分块存入到预设引用空间。
本实施例提供的嵌入式设备升级方法,在将当前原始分块存储到预设引用空间时,判断预设引用空间中的剩余空间大小是否大于或等于当前原始分块的大小;若确定剩余空间大小大于或等于当前原始分块的大小,则将当前原始分块存储到预设引用空间。确定剩余空间大小小于当前原始分块的大小,则按照先进先出的策略删除最先存储到预设引用空间中的原始分块;将当前原始分块存储到预设引用空间。能够在预设引用空间存储空间有限的情况下,尽可能将与当前目标分块最近邻的前向原始分块或后向原始分块存储到预设引用空间中,进而能够提高当前目标分块对应的差分数据的差分率。
作为一种可选实施方式,本实施例中,在步骤701之前,还包括在嵌入式设备中确定额外存储空间;将额外存储空间确定为预设引用空间的步骤。
其中,在嵌入式设备中确定额外存储空间时,检测嵌入式设备中是否存在预设大小的空闲存储空间;
若确定存在预设大小的空闲存储空间,则将空闲存储空间确定为额外存储空间。若确定不存在预设大小的空闲存储空间,则确定嵌入式设备中已存储数据的优先级;将优先级最低的数据进行删除,以扩展出预设大小的空闲存储空间;将空闲存储空间确定为额外存储空间。
具体地,本实施例中,由于嵌入式设备的存储空间有限,所以在确定预设引用空间时,需要从嵌入式设备中检测出预设大小的空闲存储空间作为额外存储空间,进而将额外存储空间确定为预设引用空间。但是有种情况为在对嵌入式设备进行升级时,并没有检测到额外存储空间。所以需要开辟出这部分预设大小的空闲空间。具体地,将优先级最低的数据进行删除,扩展出预设大小的空闲存储空间后,作为预设引用空间来使用,来保证嵌入式设备升级的顺利进行。
图8是根据本公开第四实施例提供的嵌入式设备升级方法的流程示意图,如图8所示,本实施例提供的嵌入式设备升级方法,还适用于正向差分与反向差分结合的升级方式,则本实施例提供的嵌入式设备升级方法还包括以下步骤:
步骤801,若确定所有目标分块均具有对应的第一差分数据,则将所有第一差分数据就进行合并,形成第一差分数据包。
本实施例中,判断目标镜像文件的所有目标分块是否均具有对应的第一差分数据,若是,则将所有第一差分数据就进行合并,形成的差分数据包为第一差分数据包。
步骤802,获取原始镜像文件与目标镜像文件之间的第二差分数据包。
其中,第二差分数据包由多个第二差分数据合并而成,当前第二差分数据为目标镜像文件与原始镜像文件进行第二方向的分块处理后,确定出的当前目标分块与对应的多个原始分块之间的差分数据。
本实施例中,服务器端可采用与上述任意一个实施例类似的方式,对原始镜像文件和目标镜像文件分别进行第二方向的分块处理,获取与当前目标分开数据对应的多个原始分块,进而采用多个原始分块对对应的当前目标分块进行第二差分操作,以获得当前第二差分数据,将所有第二差分数据进行合并操作,形成第二差分数据包。
步骤803,将第一差分数据包和第二差分数据包进行比较,以获得最小差分数据包。
具体地,本实施例中,将第一差分数据包与第二差分数据包进行大小的比较,确定出第一差分数据包和第二差分数据包中的最小差分数据包。
步骤804,若确定最小差分数据包为第一差分数据包,则采用第一差分数据包中的当前差分数据及对应的多个原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。
步骤805,若确定最小差分数据包为第二差分数据包,采用第二差分数据包中的当前差分数据及对应的多个原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。
其中,第一方向为正向方向时,第一差分数据包为正向差分数据包。第二方向为反向方向,第二差分数据包为反向差分数据包。反之,第一方向为反向方向时,第一差分数据包为反向差分数据包。第二方向为正向方向,第二差分数据包为正向差分数据包。
本实施例中,从第一差分数据包和第二差分数据包中选择出最小差分数据包后,若最小差分数据包为第一差分数据包,则在对嵌入式设备进行升级时,采用第一差分数据包中的当前差分数据及对应的多个原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。若最小差分数据包为第二差分数据包,则采用第二差分数据包中的当前差分数据及对应的多个原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。能够进一步提高差分率。
作为一种可选实施方式,本实施例中,步骤802包括以下步骤:
步骤802a,向服务器发送差分数据包获取请求,获取请求中包括差分数据包标识信息。
步骤802b,接收服务器发送的第二差分数据包。
本实施例中,第二方向的差分操作由服务器按照上述任意一个实施例类似的方式执行,则嵌入式设备通过向服务器发送差分数据包获取请求,可从服务器中获取到对应的第二差分数据包,能够使服务器侧执行第二方向的差分操作,进而能够在嵌入式设备中顺利执行上述实施例中的正向差分与反向差分相结合的升级方法。
图9是根据本公开第五实施例提供的嵌入式设备升级装置的结构示意图,如图9所示,本实施例提供的嵌入式设备升级装置900包括:分块处理单元901,分块获取单元902,差分操作单元903,及升级单元904。
其中,分块处理单元901,用于对原始镜像文件和目标镜像文件分别进行第一方向的分块处理。分块获取单元902,用于若确定目标镜像文件中的当前目标分块满足双向引用条件,则获取与当前目标分块对应的多个原始分块,多个原始分块中包括前向原始分块和后向原始分块,多个原始分块均属于原始镜像文件。差分操作单元903,用于采用多个原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据。升级单元904,用于采用当前第一差分数据及对应的多个原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。
本实施例提供的嵌入式设备升级装置可以执行图4所示方法实施例的技术方案,其实现原理和技术效果与图4所示方法实施例类似,在此不再一一赘述。
可选地,第一方向为正向方向;相应地,分块获取单元902,包括:第一分块获取模块和第二分块获取模块。
其中,第一分块获取模块,用于从预设引用空间中获取与当前目标分块对应的至少一个前向原始分块。第二分块获取模块,用于从原始镜像文件中获取与当前目标分块对应的当前原始分块和至少一个后向原始分块。
可选地,第二方向为反向方向;相应地,
分块获取单元902,包括:第三分块获取模块和第四分块获取模块。
其中,第三分块获取模块,用于从原始镜像文件中获取与当前目标分块对应的当前原始分块和至少一个前向原始分块。第四分块获取模块,用于从预设引用空间中获取与当前目标分块对应的至少一个后向原始分块。
可选地,分块获取单元902,还用于若确定目标镜像文件中的当前目标分块不满足双向引用条件,则若确定在预设引用空间中存储有前向原始分块或后向原始分块,则从预设引用空间中获取与当前目标分块对应的至少一个前向原始分块或至少一个后向原始分块,并从原始镜像文件中获取与当前目标分块对应的当前原始分块。差分操作单元903,还用于采用前向原始分块或后向原始分块及当前原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据。升级单元904,还用于采用当前第一差分数据、前向原始分块或后向原始分块及当前原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。
可选地,分块获取单元902,还用于若确定在预设引用空间中未存储有前向原始分块或后向原始分块,则从原始镜像文件中获取与当前目标分块对应的单向原始分块。差分操作单元903,还用于采用单向原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据。升级单元904,还用于采用当前第一差分数据和单向原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。
可选地,分块获取单元902,具体用于从预设引用空间中获取全部原始分块;将全部原始分块确定为与当前目标分块对应的至少一个前向原始分块或至少一个后向原始分块。
可选地,本实施例提供的嵌入式设备升级装置还包括:分块存储单元和状态标记单元。
其中,分块存储单元,用于将当前原始分块存储到预设引用空间。状态标记单元,用于将原始镜像文件中的当前原始分块标记为不可用状态。
可选地,分块存储单元,包括:空间判断模块和第一分块存储模块。
其中,空间判断模块,用于判断预设引用空间中的剩余空间大小是否大于或等于当前原始分块的大小。第一分块存储模块,用于若确定剩余空间大小大于或等于当前原始分块的大小,则将当前原始分块存储到预设引用空间。
可选地,本实施例提供的嵌入式设备升级装置还包括:分块删除模块,第二分块存储模块。
其中,分块删除模块,用于若确定剩余空间大小小于当前原始分块的大小,则按照先进先出的策略删除最先存储到预设引用空间中的原始分块。第二分块存储模块,用于将当前原始分块存储到预设引用空间。
可选地,本实施例提供的嵌入式设备升级装置还包括:第一空间确定单元,第二空间确定单元。
其中,第一空间确定单元,用于在嵌入式设备中确定额外存储空间。第二空间确定单元,用于将额外存储空间确定为预设引用空间。
可选地,第一空间确定单元,包括:空间检测模块,空间确定模块。
其中,空间检测模块,用于检测嵌入式设备中是否存在预设大小的空闲存储空间。空间确定模块,用于若确定存在预设大小的空闲存储空间,则将空闲存储空间确定为额外存储空间。
可选地,空间确定模块,包括:优先级确定子模块,数据删除子模块及空间确定子模块。
其中,优先级确定子模块,用于若确定不存在预设大小的空闲存储空间,则确定嵌入式设备中已存储数据的优先级。数据删除子模块,用于将优先级最低的数据进行删除,以扩展出预设大小的空闲存储空间。空间确定子模块,用于将空闲存储空间确定为额外存储空间。
可选地,升级单元,包括:分块合并模块及分块替换模块。
其中,分块合并模块,用于将当前第一差分数据及对应的多个原始分块进行合并处理,以获得当前升级分块。分块替换模块,用于将当前升级分块替换掉当前原始分块,以完成当前原始分块的升级。
可选地,本实施例提供的嵌入式设备升级装置还包括:分块合并单元,数据包获取单元及数据包比较单元。
其中,分块合并单元,用于若确定所有目标分块均具有对应的第一差分数据,则将所有第一差分数据就进行合并,形成第一差分数据包。数据包获取单元,用于获取原始镜像文件与目标镜像文件之间的第二差分数据包;第二差分数据包由多个第二差分数据合并而成,当前第二差分数据为目标镜像文件与原始镜像文件进行第二方向的分块处理后,确定出的当前目标分块与对应的多个原始分块之间的差分数据。数据包比较单元,将第一差分数据包和第二差分数据包进行比较,以获得最小差分数据包。
可选地,升级单元,具体用于若确定最小差分数据包为第一差分数据包,则采用第一差分数据包中的当前差分数据及对应的多个原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。
可选地,升级单元,具体用于若确定最小差分数据包为第二差分数据包,采用第二差分数据包中的当前差分数据及对应的多个原始分块对嵌入式设备中原始镜像文件的当前原始分块进行升级。
可选地,数据包获取单元,包括:请求发送模块及数据包接收模块。
其中,请求发送模块,用于向服务器发送差分数据包获取请求,获取请求中包括差分数据包标识信息。数据包接收模块,用于接收服务器发送的第二差分数据包。
本实施例提供的嵌入式设备升级装置可以执行图图5、图7-图8所示方法实施例的技术方案,其实现原理和技术效果与图5、图7-图8所示方法实施例类似,在此不再一一赘述。
根据本公开的实施例,本公开还提供了一种嵌入式设备、一种可读存储介质和一种计算机程序产品。
根据本公开的实施例,本公开还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,嵌入式设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
图10是用来实现本公开实施例的嵌入式设备升级方法的嵌入式设备的框图。如图10所示,嵌入式设备1000可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,嵌入式设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许嵌入式设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如交通灯识别结果处理方法。例如,在一些实施例中,交通灯识别结果处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到RAM 1003并由计算单元1001执行时,可以执行上文描述的用于网络拥塞控制的神经网络模型训练方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行用于网络拥塞控制的神经网络模型训练方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式***的服务器,或者是结合了区块链的服务器。
本公开提供一种嵌入式设备升级方法、装置、设备、介质及程序产品,应用于计算机技术领域中的***升级技术。由于在满足双向引用条件的情况下,均引用属于原始镜像文件的既包括前向原始分块,又包括后向原始分块的多个原始分块来对当前目标分块进行差分操作,以获得差分数据。所以能够找到最能近似匹配的分块,进而能够获得最优差分数据,有效提高差分率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (36)

1.一种嵌入式设备升级方法,包括:
对原始镜像文件和目标镜像文件分别进行第一方向的分块处理;
若确定目标镜像文件中的当前目标分块满足双向引用条件,则获取与所述当前目标分块对应的多个原始分块,多个原始分块中包括前向原始分块和后向原始分块,多个所述原始分块均属于原始镜像文件;
采用所述多个原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据;
采用所述当前第一差分数据及对应的多个原始分块对所述嵌入式设备中原始镜像文件的当前原始分块进行升级。
2.根据权利要求1所述的方法,其中,所述第一方向为正向方向;
所述获取与所述当前目标分块对应的多个原始分块,多个所述原始分块中包括前向原始分块和后向原始分块,包括:
从预设引用空间中获取与当前目标分块对应的至少一个前向原始分块;
从原始镜像文件中获取与当前目标分块对应的当前原始分块和至少一个后向原始分块。
3.根据权利要求1所述的方法,其中,第二方向为反向方向;
所述获取与所述当前目标分块对应的多个原始分块,多个原始分块中包括前向原始分块和后向原始分块,包括:
从原始镜像文件中获取与所述当前目标分块对应的当前原始分块和至少一个前向原始分块;
从预设引用空间中获取与所述当前目标分块对应的至少一个后向原始分块。
4.根据权利要求1-3任一项所述的方法,若确定目标镜像文件中的当前目标分块不满足双向引用条件,则还包括:
若确定在预设引用空间中存储有前向原始分块或后向原始分块,则从预设引用空间中获取与当前目标分块对应的至少一个前向原始分块或至少一个后向原始分块,并从原始镜像文件中获取与当前目标分块对应的当前原始分块;
采用所述前向原始分块或后向原始分块及所述当前原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据;
采用所述当前第一差分数据、所述前向原始分块或后向原始分块及所述当前原始分块对所述嵌入式设备中原始镜像文件的当前原始分块进行升级。
5.根据权利要求4所述的方法,若确定在预设引用空间中未存储有前向原始分块或后向原始分块,则还包括:
从原始镜像文件中获取与当前目标分块对应的单向原始分块;
采用所述单向原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据;
采用所述当前第一差分数据和所述单向原始分块对所述嵌入式设备中原始镜像文件的当前原始分块进行升级。
6.根据权利要求2-3、5任一项所述的方法,其中,从预设引用空间中获取与当前目标分块对应的至少一个前向原始分块或至少一个后向原始分块,包括:
从所述预设引用空间中获取全部原始分块;
将所述全部原始分块确定为与当前目标分块对应的至少一个前向原始分块或至少一个后向原始分块。
7.根据权利要求2-3、5任一项所述的方法,还包括:
将当前原始分块存储到预设引用空间;
将原始镜像文件中的当前原始分块标记为不可用状态。
8.根据权利要求7所述的方法,其中,所述将当前原始分块存储到预设引用空间,包括:
判断预设引用空间中的剩余空间大小是否大于或等于当前原始分块的大小;
若确定所述剩余空间大小大于或等于所述当前原始分块的大小,则将当前原始分块存储到预设引用空间。
9.根据权利要求8所述的方法,若确定所述剩余空间大小小于所述当前原始分块的大小,则还包括:
按照先进先出的策略删除最先存储到预设引用空间中的原始分块;
将当前原始分块存储到预设引用空间。
10.根据权利要求8或9所述的方法,还包括:
在所述嵌入式设备中确定额外存储空间;
将所述额外存储空间确定为预设引用空间。
11.根据权利要求10所述的方法,其中,所述在所述嵌入式设备中确定额外存储空间,包括:
检测所述嵌入式设备中是否存在预设大小的空闲存储空间;
若确定存在预设大小的空闲存储空间,则将所述空闲存储空间确定为额外存储空间。
12.根据权利要求11所述的方法,若确定不存在预设大小的空闲存储空间,则还包括:
确定嵌入式设备中已存储数据的优先级;
将优先级最低的数据进行删除,以扩展出预设大小的空闲存储空间;
将所述空闲存储空间确定为额外存储空间。
13.根据权利要求1-3、5、8-9、11-12任一项所述的方法,所述采用所述当前第一差分数据及对应的多个原始分块对所述嵌入式设备中原始镜像文件的当前原始分块进行升级,包括:
将所述当前第一差分数据及对应的多个原始分块进行合并处理,以获得当前升级分块;
将所述当前升级分块替换掉所述当前原始分块,以完成所述当前原始分块的升级。
14.根据权利要求1-3、5、8-9、11-12任一项所述的方法,还包括:
若确定所有目标分块均具有对应的第一差分数据,则将所有第一差分数据就进行合并,形成第一差分数据包;
获取原始镜像文件与目标镜像文件之间的第二差分数据包;所述第二差分数据包由多个第二差分数据合并而成,当前第二差分数据为目标镜像文件与原始镜像文件进行第二方向的分块处理后,确定出的当前目标分块与对应的多个原始分块之间的差分数据;
将所述第一差分数据包和所述第二差分数据包进行比较,以获得最小差分数据包。
15.根据权利要求14所述的方法,所述采用所述当前第一差分数据及对应的多个原始分块对所述嵌入式设备中原始镜像文件的当前原始分块进行升级,包括:
若确定最小差分数据包为第一差分数据包,则采用第一差分数据包中的当前差分数据及对应的多个原始分块对所述嵌入式设备中原始镜像文件的当前原始分块进行升级。
16.根据权利要求14所述的方法,若确定最小差分数据包为第二差分数据包,还包括:
采用第二差分数据包中的当前差分数据及对应的多个原始分块对所述嵌入式设备中原始镜像文件的当前原始分块进行升级。
17.根据权利要求14所述的方法,所述获取原始镜像文件与目标镜像文件之间的第二差分数据包,包括:
向服务器发送差分数据包获取请求,所述获取请求中包括差分数据包标识信息;
接收服务器发送的所述第二差分数据包。
18.一种嵌入式设备升级装置,包括:
分块处理单元,用于对原始镜像文件和目标镜像文件分别进行第一方向的分块处理;
分块获取单元,用于若确定目标镜像文件中的当前目标分块满足双向引用条件,则获取与所述当前目标分块对应的多个原始分块,多个原始分块中包括前向原始分块和后向原始分块,多个所述原始分块均属于原始镜像文件;
差分操作单元,用于采用所述多个原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据;
升级单元,用于采用所述当前第一差分数据及对应的多个原始分块对所述嵌入式设备中原始镜像文件的当前原始分块进行升级。
19.根据权利要求18所述的装置,其中,所述第一方向为正向方向;
所述分块获取单元,包括:
第一分块获取模块,用于从预设引用空间中获取与当前目标分块对应的至少一个前向原始分块;
第二分块获取模块,用于从原始镜像文件中获取与当前目标分块对应的当前原始分块和至少一个后向原始分块。
20.根据权利要求18所述的装置,其中,第二方向为反向方向;
所述分块获取单元,包括:
第三分块获取模块,用于从原始镜像文件中获取与所述当前目标分块对应的当前原始分块和至少一个前向原始分块;
第四分块获取模块,用于从预设引用空间中获取与所述当前目标分块对应的至少一个后向原始分块。
21.根据权利要求18-20任一项所述的装置,所述分块获取单元,还用于若确定目标镜像文件中的当前目标分块不满足双向引用条件,则若确定在预设引用空间中存储有前向原始分块或后向原始分块,则从预设引用空间中获取与当前目标分块对应的至少一个前向原始分块或至少一个后向原始分块,并从原始镜像文件中获取与当前目标分块对应的当前原始分块;
所述差分操作单元,还用于采用所述前向原始分块或后向原始分块及所述当前原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据;
所述升级单元,还用于采用所述当前第一差分数据、所述前向原始分块或后向原始分块及所述当前原始分块对所述嵌入式设备中原始镜像文件的当前原始分块进行升级。
22.根据权利要求21所述的装置,所述分块获取单元,还用于若确定在预设引用空间中未存储有前向原始分块或后向原始分块,则从原始镜像文件中获取与当前目标分块对应的单向原始分块;
所述差分操作单元,还用于采用所述单向原始分块对对应的当前目标分块进行第一差分操作,以获得当前第一差分数据;
所述升级单元,还用于采用所述当前第一差分数据和所述单向原始分块对所述嵌入式设备中原始镜像文件的当前原始分块进行升级。
23.根据权利要求19-20、22任一项所述的装置,其中,所述分块获取单元,具体用于从所述预设引用空间中获取全部原始分块;将所述全部原始分块确定为与当前目标分块对应的至少一个前向原始分块或至少一个后向原始分块。
24.根据权利要求19-20、22任一项所述的装置,其中,还包括:
分块存储单元,用于将当前原始分块存储到预设引用空间;
状态标记单元,用于将原始镜像文件中的当前原始分块标记为不可用状态。
25.根据权利要求24所述的装置,其中,所述分块存储单元,包括:
空间判断模块,用于判断预设引用空间中的剩余空间大小是否大于或等于当前原始分块的大小;
第一分块存储模块,用于若确定所述剩余空间大小大于或等于所述当前原始分块的大小,则将当前原始分块存储到预设引用空间。
26.根据权利要求25所述的装置,还包括:
分块删除模块,用于若确定所述剩余空间大小小于所述当前原始分块的大小,则按照先进先出的策略删除最先存储到预设引用空间中的原始分块;
第二分块存储模块,用于将当前原始分块存储到预设引用空间。
27.根据权利要求25或26所述的装置,还包括:
第一空间确定单元,用于在所述嵌入式设备中确定额外存储空间;
第二空间确定单元,用于将所述额外存储空间确定为预设引用空间。
28.根据权利要求27所述的装置,其中,所述第一空间确定单元,包括:
空间检测模块,用于检测所述嵌入式设备中是否存在预设大小的空闲存储空间;
空间确定模块,用于若确定存在预设大小的空闲存储空间,则将所述空闲存储空间确定为额外存储空间。
29.根据权利要求28所述的装置,空间确定模块,包括:
优先级确定子模块,用于若确定不存在预设大小的空闲存储空间,则确定嵌入式设备中已存储数据的优先级;
数据删除子模块,用于将优先级最低的数据进行删除,以扩展出预设大小的空闲存储空间;
空间确定子模块,用于将所述空闲存储空间确定为额外存储空间。
30.根据权利要求18-20、22、25-26、28-29任一项所述的装置,所述升级单元,包括:
分块合并模块,用于将所述当前第一差分数据及对应的多个原始分块进行合并处理,以获得当前升级分块;
分块替换模块,用于将所述当前升级分块替换掉所述当前原始分块,以完成所述当前原始分块的升级。
31.根据权利要求18-20、22、25-26、28-29任一项所述的装置,还包括:
分块合并单元,用于若确定所有目标分块均具有对应的第一差分数据,则将所有第一差分数据就进行合并,形成第一差分数据包;
数据包获取单元,用于获取原始镜像文件与目标镜像文件之间的第二差分数据包;所述第二差分数据包由多个第二差分数据合并而成,当前第二差分数据为目标镜像文件与原始镜像文件进行第二方向的分块处理后,确定出的当前目标分块与对应的多个原始分块之间的差分数据;
数据包比较单元,将所述第一差分数据包和所述第二差分数据包进行比较,以获得最小差分数据包。
32.根据权利要求31所述的装置,所述升级单元,具体用于若确定最小差分数据包为第一差分数据包,则采用第一差分数据包中的当前差分数据及对应的多个原始分块对所述嵌入式设备中原始镜像文件的当前原始分块进行升级。
33.根据权利要求31所述的装置,所述升级单元,具体用于若确定最小差分数据包为第二差分数据包,采用第二差分数据包中的当前差分数据及对应的多个原始分块对所述嵌入式设备中原始镜像文件的当前原始分块进行升级。
34.根据权利要求31所述的装置,所述数据包获取单元,包括:
请求发送模块,用于向服务器发送差分数据包获取请求,所述获取请求中包括差分数据包标识信息;
数据包接收模块,用于接收服务器发送的所述第二差分数据包。
35.一种嵌入式设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-17中任一项所述的方法。
36.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-17中任一项所述的方法。
CN202110861904.3A 2021-07-29 2021-07-29 嵌入式设备升级方法、装置、设备、介质及程序产品 Active CN113590168B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110861904.3A CN113590168B (zh) 2021-07-29 2021-07-29 嵌入式设备升级方法、装置、设备、介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110861904.3A CN113590168B (zh) 2021-07-29 2021-07-29 嵌入式设备升级方法、装置、设备、介质及程序产品

Publications (2)

Publication Number Publication Date
CN113590168A CN113590168A (zh) 2021-11-02
CN113590168B true CN113590168B (zh) 2024-03-01

Family

ID=78251565

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110861904.3A Active CN113590168B (zh) 2021-07-29 2021-07-29 嵌入式设备升级方法、装置、设备、介质及程序产品

Country Status (1)

Country Link
CN (1) CN113590168B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5508782A (en) * 1990-02-17 1996-04-16 Canon Kabushiki Kaisha Lighting unit cooling device control and combined exhaust device
WO2005043279A2 (en) * 2003-10-31 2005-05-12 Disksites Research And Development Ltd. Device, system and method for storage and access of computer files
CN107391145A (zh) * 2017-07-27 2017-11-24 中兴通讯股份有限公司 升级包制作方法及装置、升级文件的方法及装置
CN109002312A (zh) * 2018-09-10 2018-12-14 京信通信***(中国)有限公司 软件升级方法、装置及升级服务器和设备
CN110515646A (zh) * 2019-07-26 2019-11-29 华为技术有限公司 一种差分升级方法及相关设备
WO2020082984A1 (zh) * 2018-10-25 2020-04-30 华为技术有限公司 一种固件升级方法、装置及终端
CN111158737A (zh) * 2019-12-30 2020-05-15 深圳云天励飞技术有限公司 一种增量升级方法和相关设备
CN111221682A (zh) * 2020-01-07 2020-06-02 四川长虹电器股份有限公司 一种存储***镜像的方法
CN111796856A (zh) * 2020-08-26 2020-10-20 北京紫光展锐通信技术有限公司 差分升级方法及装置、存储介质、计算机设备
CN112988716A (zh) * 2021-05-15 2021-06-18 杰为软件***(深圳)有限公司 一种云边协同的数字设备建模方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7457934B2 (en) * 2006-03-22 2008-11-25 Hitachi, Ltd. Method and apparatus for reducing the amount of data in a storage system
US20150127995A1 (en) * 2013-11-01 2015-05-07 Commvault Systems, Inc. Systems and methods for differential health checking of an information management system
US11487625B2 (en) * 2019-10-31 2022-11-01 Rubrik, Inc. Managing files according to categories

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5508782A (en) * 1990-02-17 1996-04-16 Canon Kabushiki Kaisha Lighting unit cooling device control and combined exhaust device
WO2005043279A2 (en) * 2003-10-31 2005-05-12 Disksites Research And Development Ltd. Device, system and method for storage and access of computer files
CN107391145A (zh) * 2017-07-27 2017-11-24 中兴通讯股份有限公司 升级包制作方法及装置、升级文件的方法及装置
CN109002312A (zh) * 2018-09-10 2018-12-14 京信通信***(中国)有限公司 软件升级方法、装置及升级服务器和设备
WO2020082984A1 (zh) * 2018-10-25 2020-04-30 华为技术有限公司 一种固件升级方法、装置及终端
CN111104149A (zh) * 2018-10-25 2020-05-05 华为技术有限公司 一种固件升级方法、装置及终端
CN110515646A (zh) * 2019-07-26 2019-11-29 华为技术有限公司 一种差分升级方法及相关设备
CN111158737A (zh) * 2019-12-30 2020-05-15 深圳云天励飞技术有限公司 一种增量升级方法和相关设备
CN111221682A (zh) * 2020-01-07 2020-06-02 四川长虹电器股份有限公司 一种存储***镜像的方法
CN111796856A (zh) * 2020-08-26 2020-10-20 北京紫光展锐通信技术有限公司 差分升级方法及装置、存储介质、计算机设备
CN112988716A (zh) * 2021-05-15 2021-06-18 杰为软件***(深圳)有限公司 一种云边协同的数字设备建模方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"铁路信号安全计算机平台镜像远程更新软件设计与实现";耿佳灿等;《铁道通信信号》;48-51 *

Also Published As

Publication number Publication date
CN113590168A (zh) 2021-11-02

Similar Documents

Publication Publication Date Title
EP4187882B1 (en) Data transmission method and apparatus, device, storage medium, and computer program product
CN113961510B (zh) 一种文件处理方法、装置、设备及存储介质
CN112884086A (zh) 模型训练方法、装置、设备、存储介质以及程序产品
CN112488060B (zh) 目标检测方法、装置、设备和介质
CN114327946A (zh) 共享内存访问控制方法、装置、电子设备及自动驾驶车辆
CN115205925A (zh) 表情系数确定方法、装置、电子设备及存储介质
CN114911596B (zh) 针对模型训练的调度方法、装置、电子设备和存储介质
CN114898177A (zh) 缺陷图像生成方法、模型训练方法、设备、介质及产品
CN113225265B (zh) 流量控制方法、装置、设备和计算机存储介质
CN113010535B (zh) 缓存数据的更新方法、装置、设备和存储介质
CN113590168B (zh) 嵌入式设备升级方法、装置、设备、介质及程序产品
CN115759209B (zh) 神经网络模型的量化方法、装置、电子设备及介质
CN111342981A (zh) 局域网环境下设备间的仲裁方法、电子设备、局域网***
CN110413207B (zh) 降低存储***的数据恢复时间的方法、设备和程序产品
EP4020327A2 (en) Method and apparatus for training data processing model, electronic device and storage medium
CN113747423B (zh) 云手机状态同步方法、装置、设备、存储介质及程序产品
CN114579054A (zh) 一种数据处理方法、装置、电子设备及计算机可读介质
CN115695853A (zh) 视频处理方法、电子设备和计算机程序产品
CN113657408A (zh) 确定图像特征的方法、装置、电子设备和存储介质
CN110896391B (zh) 一种报文处理方法和装置
CN114202947B (zh) 车联网数据传输方法、装置及自动驾驶车辆
CN115482422B (zh) 深度学习模型的训练方法、图像处理方法和装置
CN115379000B (zh) 服务平台的扩容方法、装置、电子设备以及存储介质
CN113900734B (zh) 一种应用程序文件配置方法、装置、设备及存储介质
CN114579520B (zh) 镜像数据处理方法、镜像数据加载方法及装置

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
GR01 Patent grant
GR01 Patent grant