一种堆叠式文件***及其加载方法和升级方法
技术领域
本发明涉及嵌入式存储领域,具体涉及一种堆叠式文件***、一种堆叠式文件***的加载方法和一种堆叠式文件***的升级方法。
背景技术
在嵌入式设备中,根文件***极为重要。在实际的应用中,根文件***研发人员需要保证根文件***的标准化,以便于对根文件***的维护,还得保证根文件***能够满足不同场景、不同业务的需要,如满足应用需求,且支持扩展。传统上根文件***研发人员为了实现上述要求,往往不得不发布多个版本的根文件***的镜像,造成版本繁杂,难以维护。此外,传统的升级文件***通常是删除原有的文件,替换新的文件,如果在升级的过程中发生失败或者主动回退,则需要从头删除,安装替换,之前的数据也不方便备份。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种堆叠式文件***,使用堆叠的方式用户文件***对根文件***进行升级,方便配置。
为达到以上目的,本发明采取的技术方案是,包括:
根文件***,所述根文件***为发布的原始文件***;
至少一个补丁根文件***,所述补丁根文件***为补丁式的文件***,且以镜像文件形式存在,用于根文件***的升级;
至少一个用户文件***,所述用户文件***为补丁式的文件***,且以镜像文件形式存在,用于基于预设业务,使用自身的文件对根文件***中的文件进行替换、修改和删除,实现预设业务;
文件***挂载配置表,其用于记载需挂载的文件***的信息;
其中,采用所述补丁根文件***对根文件***进行升级时,补丁根文件***和根文件***按照版本的高低层次进行堆叠,补丁根文件***中的高层次文件对根文件***中低层次的同路径同名的文件进行覆盖。
在上述技术方案的基础上,所述采用补丁根文件***对根文件***的升级包括修复根文件***bug和增加根文件***功能。
在上述技术方案的基础上,所述用户文件***包含的文件为基于预设业务需求,与所述根文件***间存在差异的文件。
在上述技术方案的基础上,所述文件***挂载配置表还用于记载文件***的物理存储位置、层次关系和挂载顺序。
本发明还提供一种堆叠式文件***的加载方法,用于对上述所述的堆叠式文件***进行加载,包括以下步骤:
S1:加载根文件***,读取文件***挂载配置表,判断是否有需要挂载的补丁根文件***,若有,则转到S2,反之,则转到S3;
S2:以堆叠方式挂载需挂载的补丁根文件***,转到S3;
S3:读取文件***挂载配置表,判断是否有需要挂载的用户文件***,若有,则转到S4,反之,则结束;
S4:以堆叠方式挂载需挂载的用户文件***。
在上述技术方案的基础上,
步骤S2中,当需要挂载的补丁根文件***为多个时,则多个补丁根文件***依次进行挂载;
步骤S4中,当需要挂载的用户文件***为多个时,则多个用户文件***依次进行挂载。
在上述技术方案的基础上,步骤S1中,加载根文件***之前,包括以下步骤:
操作***内核启动,将根文件***、补丁根文件***和用户文件***存储于操作***中,其中,根文件***的文件存储于操作***的根目录下,补丁根文件***和用户文件***的文件存储于操作***的任意目录中。
本发明还提供一种堆叠式文件***的升级方法,用于对上述所述的堆叠式文件***进行升级,其特征在于,包括以下步骤:
A:创建含有设定文件的用户文件***,所述设定文件对应预设业务;
B:将创建的用户文件***存储于操作***的目录下;
C:将创建的用户文件***添加于文件***挂载配置表中,更新文件***挂载配置表;
D:操作***启动,根据文件***挂载配置表的记载,当原有的用户文件***挂载之后,挂载创建的用户文件***。
在上述技术方案的基础上,创建的用户文件***中仅含有对应预设业务的设定文件。
在上述技术方案的基础上,步骤D中,当挂载创建的用户文件***之后,还包括以下步骤:若发现设定文件存在错误,则修改***挂载配置表,将创建的用户文件***从***挂载配置表中删除。
与现有技术相比,本发明的优点在于:采用模块化的方式,相当于对根文件***进行拆分,针对不同的应用场景,使用堆叠的方式用户文件***对根文件***进行升级,方便配置,无需发布多个版本的根文件***的镜像,提升应用或产品的扩展性和易维护性,且升级时仅需更改需升级的部分,极大地提升操作的便捷性,同时降低错误率。
附图说明
图1为本发明实施例中一种堆叠式文件***的流程图;
图2为本发明实施例中一种堆叠式文件***的加载方法的流程图;
图3为本发明实施例中一种堆叠式文件***的升级方法的流程图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。
实施例1
参见图1所示,本发明实施例提供一种堆叠式文件***,适用于Linux软件平台,用于实现根文件的模块化,方便配置,提升应用或产品的扩展性和易维护性。本发明实施例的堆叠式文件***具体包括根文件***、至少一个补丁根文件***和至少一个用户文件***。
根文件***为发布的原始文件***,原始文件***是一个完整的,且可独立使用的文件***,即为一个通用的根文件***,相当于通用基础版本,用于实现***根文件***的基础,是标准的、统一的,能够满足绝大部分需求,不涉及具体的场景和业务。
补丁根文件***为补丁式的文件***,且以镜像文件形式存在,用于根文件***的升级,可以理解为,补丁根文件***为根文件***为***根文件***的一部分,根文件***相当于基础模块,补丁根文件***相当于补丁模块。补丁根文件***包含补丁配置和程序文件,采用补丁根文件***对根文件***的升级包括修复根文件***bug、增加根文件***功能等,相当于进行日常维护,保证根文件***的正常运行,但补丁根文件***对根文件***升级后,根文件***仍旧不涉及具体的场景和业务。
用户文件***为补丁式的文件***,且以镜像文件形式存在,用于基于预设业务,使用自身的文件对根文件***中的文件进行替换、修改和删除,实现预设业务,相当于通过用户文件***,实现应用功能的增加、删除、修改等,用户文件***对根文件***进行修改后,结合根文件***中的其它文件,一起向应用呈现最终的根文件***。根文件***是标准的、统一的,能够满足绝大部分需求所有的产品和应用都使用一个根文件***,但是不同的产品和应用,对文件***的需求是有差异的,甚至是冲突的,因此使用用户文件***来进行修改,不同的产品应用对应不同的用户文件***。如有的应用需要对某个功能限速,有的应用则不需要,因此可以通过挂载不同的用户文件***来实现,相当于对根文件***进行升级,其具体升级过程与补丁根文件***对根文件***升级类似。
文件***挂载配置表,文件***挂载配置表用于记载需挂载的文件***的信息,即本发明实施例的堆叠式文件***在加载或挂载时,表明具体需加载或挂载的根文件***、补丁根文件***和用户文件***。
采用补丁根文件***对根文件***进行升级时,补丁根文件***和根文件***按照版本的高低层次进行堆叠,补丁根文件***中的高层次文件对根文件***中低层次的同路径同名的文件进行覆盖,进行覆盖后,实际起作用的为高层次的文件。高层次对应高版本,低层次对应低版本。
本发明实施例的堆叠式文件***,采用模块化的方式,相当于对根文件***进行拆分,针对不同的应用场景,使用堆叠的方式用户文件***对根文件***进行升级,方便配置,无需发布多个版本的根文件***的镜像,提升应用或产品的扩展性和易维护性,且升级时仅需更改需升级的部分,极大地提升操作的便捷性,同时降低错误率。
实施例2
在实施例1的基础上,用户文件***包含的文件为基于预设业务需求,与所述根文件***间存在差异的文件,相当于为仅需对根文件***更改的文件,充分利用根文件***原有内容,避免了重复占用存储空间,同时降低升级的错误率。
文件***挂载配置表还用于记载文件***的物理存储位置、层次关系和挂载顺序,还可以包括文件***的文件类型、挂载参数、文件***间的依赖关系。当操作***启动时,根据文件***挂载配置表的记载,挂载相应的文件***。文件***指根文件***、补丁根文件***和用户文件***。
实施例3
参见图2所示,本发明实施例提供一种堆叠式文件***的加载方法,用于对实施例1中所述的堆叠式文件***进行加载,包括以下步骤:
S1:操作***内核启动,加载根文件***,读取文件***挂载配置表,判断是否有需要挂载的补丁根文件***,若有,则转到S2,反之,则转到S3;
S2:以堆叠方式挂载需挂载的补丁根文件***,转到S3;当需要挂载的补丁根文件***为多个时,则多个补丁根文件***依次进行挂载,前一个挂载成功后进行下一个的挂载。
S3:读取文件***挂载配置表,判断是否有需要挂载的用户文件***,若有,则转到S4,反之,则结束;
S4:以堆叠方式挂载需挂载的用户文件***。当需要挂载的用户文件***为多个时,则多个用户文件***依次进行挂载,前一个挂载成功后进行下一个的挂载。当所有用户文件***挂载完成后,则堆叠式文件***加载完成。
补丁根文件***为补丁式的文件***,且以镜像文件形式存在,用于根文件***的升级,可以理解为,补丁根文件***为根文件***为***根文件***的一部分,根文件***相当于基础模块,补丁根文件***相当于补丁模块。补丁根文件***包含补丁配置和程序文件,采用补丁根文件***对根文件***的升级包括修复根文件***bug、增加根文件***功能等,相当于进行日常维护,保证根文件***的正常运行。
实施例4
在实施例3的基础上,步骤S1中,加载根文件***之前,包括以下步骤:
操作***内核启动,将根文件***、补丁根文件***和用户文件***存储于操作***中,其中,根文件***的文件存储于操作***的根目录下,补丁根文件***和用户文件***的文件存储于操作***的任意目录中。优选的,补丁根文件***和用户文件***的文件存储于操作***的根目录下,每一个目录下均可以存储多个文件***的文件,如补丁根文件***的文件存储于目录/rootfs_patch中,该目录下包含多个版本的补丁根文件***的文件,;例如Rootfs_patch1和Rootfs_patch2,用户A或者设备A的用户文件***存储在目录/Filesystem_UserA,用户B或者设备B的用户文件***存储在目录/Filesystem_UserB,每一个文件***的文件可以以多种形式存在,包括打包的镜像文件、普通的目录文件等。
实施例5
参见图3所示,本发明实施例提供一种堆叠式文件***的升级方法,用于对实施例1中所述的堆叠式文件***进行升级,具体包括以下步骤:
A:创建含有设定文件的用户文件***,所述设定文件对应预设业务,即设定文件为实现预设业务必须要有的文件,用户文件***根据堆叠文件***的相关标准进行创建;
B:将创建的用户文件***的存储于操作***的目录下;
C:将创建的用户文件***添加于文件***挂载配置表中,更新文件***挂载配置表;
D:操作***启动,根据文件***挂载配置表的记载,当原有的用户文件***挂载之后,挂载创建的用户文件***,此时设定文件生效,完后才能对堆叠式文件***的升级,增加预设业务,完成版本的切换。
本发明实施例的文件***升级方法,采用模块化的方式,相当于对根文件***进行拆分,针对不同的应用场景,使用堆叠的方式用户文件***对根文件***进行升级,方便配置,无需发布多个版本的根文件***的镜像,提升应用或产品的扩展性和易维护性。
实施例6
在实施例5的基础上,建的用户文件***中仅含有对应预设业务的设定文件。步骤D中,当挂载创建的用户文件***之后,还包括以下步骤:若发现设定文件存在错误,则修改***挂载配置表,将创建的用户文件***从***挂载配置表中删除,使得不再进行创建的用户文件***的挂载,进行版本的回退,无需删除原有的用户文件***和新创建的用户文件***,改动较小,有效提升效率。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。