技术新讯 > 计算推算,计数设备的制造及其应用技术 > 镜像处理方法及装置与流程  >  正文

镜像处理方法及装置与流程

  • 国知局
  • 2024-08-30 15:04:20

本公开涉及数据处理领域,尤其涉及一种镜像处理方法及装置。

背景技术:

1、当前,随着技术和功能日新月异的发展,嵌入式系统也越来越庞大和复杂。

2、然而,在嵌入式系统升级的过程中,一般会直接将分区镜像进行打包,但是这样会浪费很多的存储空间。对于一般的嵌入式linux设备,bootloader文件和kernel文件在编译打包时,由于已经经过压缩,所以占用的空间比较小;rootfs系统和用户分区系统与实际应用息息相关,当功能庞大复杂时,文件系统分区的镜像将非常大,进而占用的存储空间很大;同时,当上传升级文件时,耗费的时间也会很长。

技术实现思路

1、本公开实施例提供一种镜像处理方法及装置,能够为系统节省大量的存储空间,提升文件上传的速度,改善用户的体验。技术方案如下:

2、根据本公开实施例的第一方面,提供一种镜像处理方法,该方法包括:生成多个分区的镜像;对多个分区中各个分区的镜像分别进行压缩;通过压缩之后的多个分区的镜像生成升级文件;根据升级文件的头部信息,通过与压缩对应的解压缩处理需要升级的分区的镜像,得到目标数据,头部信息的各个分区与多个分区中的各个分区一一对应,需要升级的分区属于多个分区,目标数据包含经过解压缩处理之后的需要升级的分区的镜像。

3、具体地,首先,可以编译好启动装载(bootloader)、内核(kernel)以及相应的应用程序等,制作rootfs、csvapp、vmsapp以及相应的备份分区和数据分区的镜像,生成多个分区的镜像。

4、接着,可以对多个分区中各个分区的镜像通过lzma(lempel-ziv-markov chain-algorithm)的方式进行压缩。

5、此后,在上述的文件头部之后,将经过压缩的各个分区的镜像文件进行拼接,形成一个包含各个分区镜像信息的大包文件,即,升级文件,该文件用于文件升级。

6、最后,可以遍历升级文件中头部所有对应的分区镜像,得到需要升级的分区的镜像,根据压缩之后的镜像大小以及偏移地址,将经过压缩的需要升级的分区中的所有分区的镜像数据取出来,使用与该压缩方法相对应的解压缩方法,进行解压缩,得到经过解压缩的目标数据。其中,如果在遍历升级文件中头部所有对应的分区镜像的过程中,遇到某个分区不需要升级,则自动跳转到下一个分区的镜像。

7、应理解,本技术实施例和嵌入式设备的实际应用强相关。因此,在上述方案(即,镜像打包阶段)中,需要实际考虑flash的实际规划。

8、基于上述方案,不仅生成的升级文件体积较小,针对于nand设备的yaffs文件系统,相较于未压缩的文件系统,压缩后体积为原来的三分之一,使得嵌入式设备所需的容纳升级文件的存储空间将大大减小;而且由于文件的体积变小,文件上传的速度将大幅提升。

9、在一些实施例中,方法还包括:生成头部信息,头部信息包括多个分区中的每个分区的镜像的名称、大小、偏移地址、校验和,以及是否需要升级的标志。

10、具体地,可以生成升级文件的文件头部信息,该头部信息包括多个分区中的每个分区的镜像的名称、大小、偏移地址、校验和checksum,以及是否需要升级的标志,等。头部的各个分区的定义需要和正在实施的项目上的分区完全一致,即,头部信息的各个分区与多个分区中的各个分区一一对应。

11、在一些实施例中,方法还包括:根据已写入的升级标志,通过多个分区的镜像判断是否需要升级。

12、具体地,该步骤主要的工作在于启动装载(bootloader)根据已写入的升级标志,判断是否需要执行升级操作,如果不需要升级,则按照既有流程启动下一阶段镜像;如果需要升级,则进入升级流程。

13、在一些实施例中,方法还包括:在需要升级的情况下,将升级文件发送至目标分区,并向启动装载(bootloader)的参数(param)分区写入升级标志。

14、具体地,该步骤主要是在需要升级的情况下,将上述生成的升级文件通过网络或者通用串行总线(universal serial bus,usb)等媒介上传至嵌入式设备的某个分区(即,目标分区)内,同时向启动装载(bootloader)的参数(param)分区写入升级标志。

15、在一些实施例中,方法还包括:对目标数据进行检验;当目标分区的镜像的校验和与目标分区的镜像对应的头部信息的校验和一致,根据目标分区的镜像进行升级,目标分区为需要升级的分区中的任一分区。

16、其中,对目标数据进行检验,是指在目标数据包含的解压缩处理之后的需要升级的分区的镜像中,依次检验每一个需要升级的分区的镜像。

17、举例而言,在解压缩完成之后,需要对目标数据进行检验。当目标数据中的目标分区的镜像的校验和(checksum)与目标分区的镜像对应的头部信息的校验和(checksum),则表明文件解析正确,可以进行下一步操作,即,根据目标分区的镜像进行升级;否则,直接退出升级操作。

18、在一些实施例中,根据目标分区的镜像进行升级,包括:通过目标分区的镜像进行分区的擦除和写。

19、举例而言,可以将解压缩之后的镜像数据通过驱动接口写入nandflash,具体操作可能包括了分区的擦除和写的动作。

20、在一些实施例中,方法还包括:擦除头部信息中包含的需要升级的标志。

21、具体地,当执行完上述步骤之后,升级动作基本完成,此时需要将头部信息中包含的需要升级的标志进行清除,否则系统每次启动之后都会进行升级操作。

22、在一些实施例中,方法还包括:统计压缩之后的多个分区中各个分区的镜像的大小。

23、在一些实施例中,方法还包括:计算多个分区中各个分区的镜像的校验和;统计多个分区中各个分区的镜像的大小。

24、具体地,可以计算得到上述步骤生成的多个分区中的各个分区镜像的校验和(checksum),并统计多个分区中的各个分区镜像文件的大小。

25、在一些实施例中,方法还包括:下载目标数据;安装目标数据,并重启设备。

26、具体地,下载升级文件(即,目标数据)并完成下载之后,可以自动在共享式零终端本地进行安装,并在安装完成后,进行重启。在实际实现的过程中,当软件升级完成之后,需要重启设备。

27、根据本公开实施例的第二方面,提供一种镜像处理设备,包括存储器和处理器。存储器拥有存储程序。当程序在处理器中执行时,处理器用于执行第一方面及第一方面任一实施例的方法。

28、基于上述设备,不仅生成的升级文件体积较小,针对于nand设备的yaffs文件系统,相较于未压缩的文件系统,压缩后体积为原来的三分之一,使得嵌入式设备所需的容纳升级文件的存储空间将大大减小;而且由于文件的体积变小,文件上传的速度将大幅提升。

29、根据本公开实施例的第三方面,提供一种镜像处理装置,包括:第一生成模块,用于生成多个分区的镜像;压缩模块,用于对多个分区中各个分区的镜像分别进行压缩;第二生成模块,用于通过压缩之后的多个分区的镜像生成升级文件;处理模块,用于根据升级文件的头部信息,通过与压缩对应的解压缩处理需要升级的分区的镜像,得到目标数据,头部信息的各个分区与多个分区中的各个分区一一对应,需要升级的分区属于多个分区,目标数据包含经过解压缩处理之后的需要升级的分区的镜像。

30、在一些实施例中,镜像处理装置还包括:第三生成模块,用于生成头部信息,头部信息包括多个分区中的每个分区的镜像的名称、大小、偏移地址、校验和,以及是否需要升级的标志。

31、在一些实施例中,镜像处理装置还包括:判断模块,用于根据已写入的升级标志,通过多个分区的镜像判断是否需要升级。

32、在一些实施例中,镜像处理装置还包括:写入模块,用于在需要升级的情况下,将升级文件发送至目标分区,并向启动装载(bootloader)的参数(param)分区写入升级标志。

33、在一些实施例中,镜像处理装置还包括:检验模块,用于对目标数据进行检验;升级模块,用于当目标分区的镜像的校验和与目标分区的镜像对应的头部信息的校验和一致,根据目标分区的镜像进行升级,目标分区为需要升级的分区中的任一分区。

34、在一些实施例中,升级模块,具体用于通过目标分区的镜像进行分区的擦除和写。

35、在一些实施例中,镜像处理装置还包括:擦除模块,用于擦除头部信息中包含的需要升级的标志。

36、在一些实施例中,镜像处理装置还包括:第一统计模块,用于统计压缩之后的多个分区中各个分区的镜像的大小。

37、在一些实施例中,镜像处理装置还包括:计算模块,用于计算多个分区中各个分区的镜像的校验和;第二统计模块,用于统计多个分区中各个分区的镜像的大小。

38、在一些实施例中,镜像处理装置还包括:下载模块,用于下载目标数据;安装模块,用于安装目标数据,并重启设备。

39、根据本公开实施例的第四方面,提供一种计算机可读存储介质,其特征在于,计算机程序存储介质具有程序指令,当程序指令被处理器执行时,使得处理器执行第一方面及第一方面任一实施例的方法。

40、根据本公开实施例的第五方面,提供一种芯片系统,其特征在于,芯片系统包括至少一个处理器,当程序指令在至少一个处理器中执行时,使得至少一个处理器执行第一方面及第一方面任一实施例的方法。

41、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

本文地址:https://www.jishuxx.com/zhuanli/20240830/285373.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。