CN113407187A - 构建文件系统的方法、装置、设备及计算机存储介质 - Google Patents

构建文件系统的方法、装置、设备及计算机存储介质 Download PDF

Info

Publication number
CN113407187A
CN113407187A CN202110574604.7A CN202110574604A CN113407187A CN 113407187 A CN113407187 A CN 113407187A CN 202110574604 A CN202110574604 A CN 202110574604A CN 113407187 A CN113407187 A CN 113407187A
Authority
CN
China
Prior art keywords
file system
target
constructing
file
target 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.)
Pending
Application number
CN202110574604.7A
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.)
Peng Cheng Laboratory
Original Assignee
Peng Cheng Laboratory
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 Peng Cheng Laboratory filed Critical Peng Cheng Laboratory
Priority to CN202110574604.7A priority Critical patent/CN113407187A/zh
Publication of CN113407187A publication Critical patent/CN113407187A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

本发明公开了一种构建文件系统的方法、装置、设备及计算机存储介质,该方法包括以下步骤:获取目标文件系统的需求数据;基于目标文件系统的需求数据,在嵌入式程序开发系统上构建通用文件系统;基于所述通用文件系统,结合所述目标文件系统的类型,构建目标文件系统;本发明解决了集成平台中不同类型的目标文件系统的构建问题,实现了嵌入式程序开发平台与构建文件系统平台的集成,加快开发和部署服务程序,同时完成不同类型的目标文件系统的制作,提高文件系统的可扩展性以及可复用性,从而提高嵌入式系统开发人员的工作效率并缩短程序开发周期。

Description

构建文件系统的方法、装置、设备及计算机存储介质
技术领域
本发明涉及嵌入式系统开发领域,尤其涉及一种构建文件系统的方法、装置、设备及计算机存储介质。
背景技术
现有技术中嵌入式程序开发系统与构建文件系统分别在不同的平台进行开发,导致不能友好的部署服务程序;且不能制作不同类型的文件系统,可复用性差、可扩展性差且自动化程度低,极大的影响了嵌入式系统开发人员的工作效率,延长开发周期。
发明内容
有鉴于此,本申请实施例提供一种构建文件系统的方法、装置、设备及计算机存储介质,解决集成平台中不同类型的目标文件系统的构建问题。
本申请实施例提供了一种构建文件系统的方法,所述方法包括:
获取目标文件系统的需求数据;
基于所述目标文件系统的需求数据,在嵌入式程序开发系统上构建通用文件系统;
基于所述通用文件系统,结合所述目标文件系统的类型,构建目标文件系统。
在一实施例中,所述基于目标文件系统的需求数据,在嵌入式程序开发系统上构建通用文件系统,包括:
解析所述目标文件系统的需求数据,获得目标架构以及目标交叉编译工具;
基于所述目标架构以及所述目标交叉编译工具,在嵌入式程序开发系统上构建通用文件系统。
在一实施例中,所述基于所述目标架构以及所述目标交叉编译工具,在嵌入式程序开发系统上构建通用文件系统,包括:
基于目标架构以及所述目标交叉编译工具,配置交叉编译环境;
获取根文件系统配置文件并进行编译,生成编译结果;
创建多个子目录,并将所述编译结果对应放入第一目标子目录下;
创建设备文件并放入第二目标子目录下;
创建所述目标文件系统所需的配置文件并放入第三目标子目录下;
将所述目标架构运行所需的库文件放入第四目标子目录下。
在一实施例中,所述获取根文件系统配置文件并进行编译,生成编译结果,包括:
获取配置软件中所述目标文件系统所需的基本命令与工具;
基于所述目标文件系统所需的基本命令与工具,利用所述配置软件生成所述根文件系统配置文件;
对所述根文件系统配置文件进行编译,生成编译结果;其中,所述编译结果为二进制文件。
在一实施例中,所述基于目标文件系统的需求数据,构建通用文件系统的步骤之后,包括:
解析所述目标文件系统的需求数据,获得目标服务程序;
对所述目标服务程序进行部署。
在一实施例中,所述对所述目标服务程序进行部署,包括:
将所述目标服务程序对应的可执行文件以及依赖的库文件分别放入第五目标子目录以及第四目标子目录中。
在一实施例中,所述基于所述通用文件系统,结合所述目标文件系统的类型,构建目标文件系统,包括:
获取所述目标文件系统的类型;
基于所述通用文件系统,利用与所述目标文件系统的类型对应的目标文件系统制作工具,构建目标文件系统。
为实现上述目的,还提供一种构建文件系统的装置,所述。
数据获取模块,用于获取目标文件系统的需求数据;
通用文件系统构建模块,用于基于目标文件系统的需求数据,构建通用文件系统;
目标文件系统构建模块,用于基于所述通用文件系统,结合所述目标文件系统的类型,构建目标文件系统。
为实现上述目的,还提供一种计算机存储介质,所述计算机存储介质上存储有构建文件系统的方法程序,所述构建文件系统的方法程序被处理器执行时实现上述任一所述的构建文件系统的方法步骤。
为实现上述目的,还提供一种构建文件系统的设备,包括存储器,处理器及存储在所述存储器上并可在所述处理器上运行的构建文件系统的方法程序,所述处理器执行所述构建文件系统的方法程序时实现上述任一所述的构建文件系统的方法步骤。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:获取目标文件系统的需求数据;通过获取目标文件系统中的需求数据并解析,获取目标文件系统所需的配置参数,为构建通用文件系统提供正确的数据支持,且保证目标文件系统构建的正确性。
基于所述目标文件系统的需求数据,在嵌入式程序开发系统上构建通用文件系统;通过目标文件系统所需的配置参数,在嵌入式程序开发系统上构通用的通用文件系统,使得嵌入式程序开发平台和构建文件系统平台集合在一起,可以快速开发和部署服务程序。
基于所述通用文件系统,结合所述目标文件系统的类型,构建目标文件系统。通过通用文件系统并结合目标文件系统的类型,实现不同类型的目标文件系统的构建。
本发明解决了集成平台中不同类型的目标文件系统的构建问题,实现了嵌入式程序开发平台与构建文件系统平台的集成,加快开发和部署服务程序,同时完成不同类型的目标文件系统的制作,提高文件系统的可扩展性以及可复用性,从而提高嵌入式系统开发人员的工作效率并缩短程序开发周期。
附图说明
图1为本申请构建文件系统的方法的第一实施例的流程示意图;
图2为本申请构建文件系统的方法第一实施例中步骤S120的具体流程示意图;
图3为本申请构建文件系统的方法步骤S122的具体流程示意图;
图4为本申请构建文件系统的方法步骤S1222的具体流程示意图;
图5为本申请构建文件系统的方法的第二实施例的流程示意图;
图6为本申请构建文件系统的方法第二实施例中步骤S240的具体流程示意图;
图7为本申请构建文件系统的方法第一实施例中步骤S130的具体流程示意图;
图8为本申请构建文件系统的装置示意图;
图9为本申请实施例中涉及的构建文件系统的设备的硬件架构示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:获取目标文件系统的需求数据;基于目标文件系统的需求数据,在嵌入式程序开发系统上构建通用文件系统;基于所述通用文件系统,结合所述目标文件系统的类型,构建目标文件系统;本发明解决了集成平台中不同类型的目标文件系统的构建问题,实现了嵌入式程序开发平台与构建文件系统平台的集成,加快开发和部署服务程序,同时完成不同类型的目标文件系统的制作,提高文件系统的可扩展性以及可复用性,提高嵌入式系统开发人员的工作效率并缩短程序开发周期。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
参照图1,图1为本申请构建文件系统的方法的第一实施例,所述方法包括:
步骤S110:获取目标文件系统的需求数据。
具体地,文件系统(file system)是命名文件及放置文件的逻辑存储和恢复的系统;即在存储设备上组织文件的方法。也是操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
进一步地,目标文件系统可以是根据需求数据制作而成的嵌入式系统识别的文件系统;所述需求数据可以是目标文件系统构建所需的配置参数,比如目标架构、目标交叉编译工具、目标服务程序以及目标文件系统的类型等,但不限定于上述举例的配置参数。
步骤S120:基于所述目标文件系统的需求数据,在嵌入式程序开发系统上构建通用文件系统。
具体地,所述通用文件系统可以是在开发系统上构建目标文件系统所需的所有的目录和文件,并以通用文件系统为基础,构建目标文件系统。
需要另外说明的是,所述通用文件系统在嵌入式程序开发系统上构建,使得嵌入式程序开发平台和构建文件系统平台集合在一起,可以快速开发和部署服务程序;其中,常用的嵌入式开发主机如UNIX系统主机。
其中,嵌入式程序开发系统可以是嵌入式Linux系统,一般分为三部分:启动装载(Bootloader)、内核和文件系统。系统的启动流程为启动装载(Bootloader)引导内核启动,内核启动完成后挂载文件系统,并开始执行文件系统设定的初始化程序。文件系统提供了嵌入式程序执行的环境,它包含了很多的一级目录,例如bin、dev、etc、lib、root、proc、mnt、tmp、sys等,在各个一级目录中又包含了很多的目录或文件,例如bin目录下包含系统常用Linux命令和工具、dev目录下包含不同的设备文件、etc目录下包含各种配置脚本、lib目录下包含软件动态链接库、root目录下包含服务程序等。
步骤S130:基于所述通用文件系统,结合所述目标文件系统的类型,构建目标文件系统。
具体地,不同的文件系统类型有不同的特点,基于所述通用文件系统,结合目标文件系统的类型,构建对应嵌入式系统识别的目标文件系统;提高本申请中构建文件系统的方法的可扩展性以及可复用性。
在上述实施例中,存在的有益效果为:获取目标文件系统的需求数据;通过获取目标文件系统中的需求数据并解析,获取目标文件系统所需的配置参数,为构建通用文件系统提供正确的数据支持,且保证目标文件系统构建的正确性。
基于所述目标文件系统的需求数据,在嵌入式程序开发系统上构建通用文件系统;通过目标文件系统所需的配置参数,在嵌入式程序开发系统上构通用的通用文件系统,使得嵌入式程序开发平台和构建文件系统平台集合在一起,可以快速开发和部署服务程序。
基于所述通用文件系统,结合所述目标文件系统的类型,构建目标文件系统。通过通用文件系统并结合目标文件系统的类型,实现不同类型的目标文件系统的构建。
本发明解决了集成平台中不同类型的目标文件系统的构建问题,实现了嵌入式程序开发平台与构建文件系统平台的集成,加快开发和部署服务程序,同时完成不同类型的目标文件系统的制作,提高文件系统的可扩展性以及可复用性,提高嵌入式系统开发人员的工作效率并缩短程序开发周期。
参照图2,图2为本申请构建文件系统的方法第一实施例中步骤S120的具体实施步骤,所述基于目标文件系统的需求数据,在嵌入式程序开发系统上构建通用文件系统,包括:
步骤S121:解析所述目标文件系统的需求数据,获得目标架构以及目标交叉编译工具。
具体地,目标架构可以是目标文件系统的架构,即嵌入式架构,具体至少包括:RISC-V、ARM、SPARC、PPC等,通过设置ARCH参数进行设定。
具体地,交叉编译工具可以在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码;目标交叉编译工具可以是目标文件系统根据代码种类所选出的交叉编译工具。
步骤S122:基于所述目标架构以及所述目标交叉编译工具,在嵌入式程序开发系统上构建通用文件系统。
具体地,本实施例目标架构ARCH以RISC-V为例,目标交叉编译工具CROSS_COMPILE使用riscv64-unknown-linux-gnu-。
在本实施例中,存在的有益效果为:根据目标文件系统的需求数据,正确构建通用文件系统;在保证通用文件系统正确的基础上,保证目标文件系统构建的正确性。
参照图3,图3为本申请构建文件系统的方法步骤S122的具体实施步骤,所述基于所述目标架构以及所述目标交叉编译工具,在嵌入式程序开发系统上构建通用文件系统,包括:
步骤S1221:基于目标架构以及所述目标交叉编译工具,配置交叉编译环境。
具体地,配置交叉编译环境可以打开busybox的顶层Makefile,添加ARCH(目标架构)和CROSS_COMPILE(目标交叉编译工具)的值。
步骤S1222:获取根文件系统配置文件并进行编译,生成编译结果。
具体地,所述根文件系统配置文件可以由busybox配置完成后生成busybox配置文件。其中,busybox提供了友好的交互配置界面。终端输入make menuconfig,进入busybox配置界面进行相关配置。busybox提供了一百多个最常用Linux命令和工具,开发者可以根据需求进行剪裁,保留嵌入式系统所需要的基本命令和工具,构建最小文件系统(根文件系统)。配置完成后会生成busybox配置文件。如果不需要配置修改,下次可以直接跳过这一步。
步骤S1223:创建多个子目录,并将所述编译结果对应放入第一目标子目录下。
具体地,创建bin、dev、etc、lib、root、proc、mnt、tmp、sys等目录。所述第一个目标子目录可以是bin目录。在本实施例中,并不限定子目录的个数以及子目录的名称,可以根据业务需求进行扩展。
步骤S1224:创建设备文件并放入第二目标子目录下。
具体地,所述第二目标子目录可以是dev目录,则在dev目录下创建需要的设备文件,比如console、null文件等。
步骤S1225:创建所述目标文件系统所需的配置文件并放入第三目标子目录下。
具体地,所述第三目标子目录可以是etc目录,则在etc目录下创建inittab、init.d、profile、网络配置文件等。其中,inittab文件是系统的初始化表,系统根据inittab内容启动相关进程或脚本,比如挂载proc、sysfs、tmpfs等。Init.d负责存放系统服务的管理脚本,比如服务启动、停止等。Profile文件负责用户自行修改系统环境变量,可以缺省。网络配置文件负责配置系统的网络环境,比如设置IP、网关等。
步骤S1226:将所述目标架构运行所需的库文件放入第四目标子目录下。
具体地,第四目标子目录可以是lib目录,则在lib目录放入目标架构运行环境需要的库文件,如常见的libc.so、libpthread.so文件等。
在上述实施例中,存在的有益效果为:在嵌入式程序开发系统上构建通用文件系统,使嵌入式开发平台与文件构建系统集合在一个平台上,加快开发和部署服务程序,提高嵌入式开发人员的开发效率。
参照图4,图4为本申请构建文件系统的方法步骤S1222的具体实施步骤,所述获取根文件系统配置文件并进行编译,生成编译结果,包括:
步骤S1222-1:获取配置软件中所述目标文件系统所需的基本命令与工具。
具体地,所述配置软件可以是busybox;busybox是一个集成了一百多个最常用Linux命令和工具的软件。busybox包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。
步骤S1222-2:基于所述目标文件系统所需的基本命令与工具,利用所述配置软件生成所述根文件系统配置文件。
具体地,根据需求进行剪裁,保留嵌入式系统所需要的基本命令和工具,构建最小文件系统。
步骤S1222-3:对所述根文件系统配置文件进行编译,生成编译结果;其中,所述编译结果为二进制文件。
在上述实施例中,存在的有益效果:通过对配置软件的生成结果进行编译,正确建立第一目标子目录,从而保证通用文件系统建立的正确性。
参照图5,图5为本申请构建文件系统的方法的第二实施例,所述基于目标文件系统的需求数据,构建通用文件系统的步骤之后,包括:
步骤S210:获取目标文件系统的需求数据。
步骤S220:基于所述目标文件系统的需求数据,在嵌入式程序开发系统上构建通用文件系统。
步骤S230:解析所述目标文件系统的需求数据,获得目标服务程序;
具体地,根据目标文件系统的需求,获取目标文件系统的目标服务程序,其中,常见的服务程序有SSH(Secure Shell,安全外壳协议)、redis(数据库)、zlib(压缩)等。
步骤S240:对所述目标服务程序进行部署。
具体地,嵌入式系统环境搭建完成后,则在其上部署所需的目标服务程序。其中,所述目标服务程序个数并不限定,可以对目标服务程序进行扩展。
步骤S250:基于所述通用文件系统,结合所述目标文件系统的类型,构建目标文件系统。
第二实施例与第一实施例相比,包含步骤S230以及步骤S240,其他步骤在第一实施例中已经进行了阐述,在此不再赘述。
上述实施例中,存在的有益效果为:根据嵌入式系统开发需求,部署专用的服务程序,完备嵌入式系统开发功能,提高用户体验。
参照图6,图6为本申请构建文件系统的方法第二实施例中步骤S240的具体实施步骤,所述对所述目标服务程序进行部署,包括:
步骤S241:将所述目标服务程序对应的可执行文件以及依赖的库文件分别放入第五目标子目录以及第四目标子目录中。
具体地,可执行文件(executable file)指的是可以由操作系统进行加载执行的文件。在不同的操作系统环境下,可执行程序的呈现方式不一样。其中,所述第五目标子目录可以为root子目录;第四目标子目录可以为lib子目录。
参照图7,图7为本申请构建文件系统的方法第一实施例中步骤S130的具体实施步骤,所述基于所述通用文件系统,结合所述目标文件系统的类型,构建目标文件系统,包括:
步骤S131:获取所述目标文件系统的类型。
具体地,嵌入式Linux开发中,常用的文件系统的类型有jffs2(JournallingFlash File System Version 2,闪存日志型文件系统第2版),yaffs2(Yet Another FlashFile System),ubifs(Unsorted Block Image File System,无序区块镜像文件系统),cramfs,initramfs(initram file system),ramdisk(Random Access Memory disk,虚拟内存盘),ramfs/tmpfs(temporary filesystem,临时文件系统),nfs(Network FileSystem,网络文件系统)等。从大的方面文件系统的类型可以分为基于RAM的文件系统和基于FLASH的文件系统。不同的文件系统类型有不同的特点,要根据存储设备的硬件特性、系统需求等来选择。
进一步地,基于FLASH的文件系统主要有jffs2,yaffs2,ubifs,cramfs等。jffs2文件系统是基于哈希表的日志型文件系统,主要用于NOR型闪存,其特点是可读写的、支持数据压缩、提供了崩溃/掉电安全保护和“写平衡”等;其缺点主要是当文件系统已满或接近满时,使jffs2文件系统的运行速度大大降低。yaffs/yaffs2(Yet Another Flash FileSystem)文件系统是专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统,自带了NAND芯片的驱动,并且提供了直接访问文件系统的API,用户可以通过API直接对文件系统进行操作。ubifs文件系统是用在固态硬盘存储设备上,相对于yaffs/yaffs2和jffs2文件系统来说,ubifs文件系统在设计与性能更适合MLC NAND FLASH。Cramfs文件系统是一种只读的压缩文件系统,其压缩比高达2:1,可以使用更低容量的FLASH设备存储相同的文件,降低嵌入式系统的成本。
基于RAM的文件系统有initramfs,ramdisk,ramfs/tmpfs,nfs等。initramfs文件系统使用cpio包格式,它可以编译链接到系统中去,可以直接使用而不需要另外挂接文件系统。ramdisk文件系统是一种基于内存的虚拟文件系统,它使用内存中一部分固定大小的内存当作硬盘的一个分区来使用。Ramfs/tmpfs文件系统把所有的文件都放在内存中,可以用ramfs/tmpfs来存储一些临时性或经常要修改的数据,这样可以避免对Flash存储器的读写损耗,还可以提高数据读写速度。NFS网络文件系统用于在不同机器、不同操作系统之间通过网络共享文件,在嵌入式Linux系统的开发调试阶段,可以在主机上建立基于NFS的根文件系统挂载到嵌入式设备上,这样可以很方便地修改根文件系统的内容。
步骤S132:基于所述通用文件系统,利用与所述目标文件系统的类型对应的目标文件系统制作工具,构建目标文件系统。
其中,制作不同目标文件系统需要使用不同的目标文件系统制作工具;在本实施例中,对目标文件系统制作工具并不限定,可以针对目标文件系统的类型对目标文件系统制作工具进行扩展。比如制作jffs2使用mkjffs2fs,制作cramfs使用mkcramfs,制作initramfs直接编辑initramfs.txt,制作ramdisk需要编写简单的脚本;
其中,制作ramdisk编写脚本中包含以下步骤:
建立loop设备的临时挂载点,执行mkdir/mnt/loop;
建立文件系统映象,如创建一个大小4096k的文件,初始化为0,执行dd if=/dev/zero of=/tmp/ramdisk bs=1k count=4096;
将/tmp/ramdisk格式化为ext2文件系统,执行mke2fs–F–v–m0/tmp/ramdisk;
挂载映象文件,执行mount–o loop/tmp/ramdisk/mnt/loop;
将需要的文件等复制到目录下。执行cp操作;
卸载映象文件,执行umount/mnt/loop;
压缩映象文件,执行gzip–v9/tmp/ramdisk;
在一实施例中,对目标服务程序进行扩展以及对目标文件系统制作工具进行扩展,提高本申请构建文件系统的方法可扩展性以及可复用性,具体实施例如下:
基于Makefile工程,工程包括三个一级目录:apps、fs、tools。
具体地,第一、apps目录介绍:
apps目录下是嵌入式开发服务程序目录。每个开发服务程序为一个子目录。新开发的服务程序直接新建一个子目录即可。构建文件系统时,平台通过参数可以指定需要部署的程序。
目前子目录包括以下,开发人员可以自行扩展。
Busybox目录:制作文件系统通用工具busybox。完成配置交叉编译环境以及配置busybox。
各个测试服务程序目录。包括hello测试程序目录、重启测试程序目录、排序测试程序目录、md5测试程序目录、fork测试程序目录等。这些简单的测试程序可以在嵌入式系统开发初期,帮助开发者排查软硬件问题,加快软件开发进度。
其中,Stream目录:内存带宽测试程序。
Strace目录:性能测试工具。
Zlib目录:数据压缩专用工具。
SSH目录:一款远程管理工具。
Redis目录:一款热门的数据库软件。
扩展服务程序步骤:
步骤1:apps下创建子目录。比如hello目录;
步骤2:在子目录下编写服务程序源代码。比如hello.c;
步骤3:在子目录下创建makefile文件。指定程序名、源文件、交叉编译工具和依赖的makefile公共文件。
步骤4:在fs目录下增加服务程序的自动化部署脚本。
第二、fs目录介绍:
该目录主要自动化执行以下步骤:
创建子目录。创建bin、dev、etc、lib、root、proc、mnt、tmp、sys等目录。可以修改脚本创建的子目录。
拷贝busybox二进制文件。将/apps/busybox生成的二进制文件放入bin目录下。
创建设备文件。在dev目录下创建需要的dev文件,如console、null文件等。可以修改脚本创建所需的dev文件
创建配置文件。在etc目录下创建inittab、init.d、profile、网络配置文件等。Inittab文件是系统的初始化表,系统根据inittab内容启动相关进程或脚本,比如挂载proc、sysfs、tmpfs等。Init.d负责存放系统服务的管理脚本,比如服务启动、停止等。Profile文件负责用户自行修改系统环境变量,可以缺省。网络配置文件负责配置系统的网络环境,比如设置IP、网关等。可以增加开发需要的配置功能。
拷贝库文件。在lib目录放入目标架构运行环境需要的库文件,如常见的libc.so、libpthread.so文件等。自动化脚本同时将/apps下各个服务程序所关联的库文件放入到指定的目录。
部署服务程序。需要部署的服务程序通过命令行参数传递,脚本解析命令行参数完成对服务程序的自动化部署。
第三、Tools目录介绍:
Tools目录下主要包括不同类型文件系统的制作工具或者脚本。通过命令行参数指定使用的文件系统工具。
该目录包括如下子目录jffs2,yaffs2,ubifs,cramfs,initramfs,ramdisk,ramfs,tmpfs,nfs。开发者可以灵活扩展目标文件系统制作工具。
本申请还提供一种构建文件系统的装置,所述。
数据获取模块,用于获取目标文件系统的需求数据;
通用文件系统构建模块,用于基于目标文件系统的需求数据,在嵌入式程序开发系统上构建通用文件系统;
目标文件系统构建模块,用于基于所述通用文件系统,结合所述目标文件系统的类型,构建目标文件系统。
图8所示构建文件系统的装置02包括数据获取模块21、通用文件系统构建模块22、目标文件系统构建模块23,该装置可以执行图1至图7所示实施例的方法,本实施例未详细描述的部分,可参考对图1至图7所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1至图7所示实施例中的描述,在此不再赘述。
本申请还提供一种计算机存储介质,所述计算机存储介质上存储有构建文件系统的方法程序,所述构建文件系统的方法程序被处理器执行时实现上述任一所述的构建文件系统的方法步骤。
本申请还提供一种构建文件系统的设备010,包括存储器011,处理器012及存储在所述存储器上并可在所述处理器上运行的构建文件系统的方法程序,所述处理器执行所述构建文件系统的方法程序时实现上述任一所述的构建文件系统的方法步骤。
本申请涉及一种构建文件系统的设备010包括如图9所示:至少一个处理器012、存储器011。
处理器012可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器012中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器012可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器011,处理器012读取存储器011中的信息,结合其硬件完成上述方法的步骤。
可以理解,本发明实施例中的存储器011可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ReadOnly Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本发明实施例描述的系统和方法的存储器011旨在包括但不限于这些和任意其它适合类型的存储器。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种构建文件系统的方法,其特征在于,所述方法包括:
获取目标文件系统的需求数据;
基于所述目标文件系统的需求数据,在嵌入式程序开发系统上构建通用文件系统;
基于所述通用文件系统,结合所述目标文件系统的类型,构建目标文件系统。
2.如权利要求1所述的构建文件系统的方法,其特征在于,所述基于目标文件系统的需求数据,在嵌入式程序开发系统上构建通用文件系统,包括:
解析所述目标文件系统的需求数据,获得目标架构以及目标交叉编译工具;
基于所述目标架构以及所述目标交叉编译工具,在嵌入式程序开发系统上构建通用文件系统。
3.如权利要求1所述的构建文件系统的方法,其特征在于,所述基于所述目标架构以及所述目标交叉编译工具,在嵌入式程序开发系统上构建通用文件系统,包括:
基于目标架构以及所述目标交叉编译工具,配置交叉编译环境;
获取根文件系统配置文件并进行编译,生成编译结果;
创建多个子目录,并将所述编译结果对应放入第一目标子目录下;
创建设备文件并放入第二目标子目录下;
创建所述目标文件系统所需的配置文件并放入第三目标子目录下;
将所述目标架构运行所需的库文件放入第四目标子目录下。
4.如权利要求3所述的构建文件系统的方法,其特征在于,所述获取根文件系统配置文件并进行编译,生成编译结果,包括:
获取配置软件中所述目标文件系统所需的基本命令与工具;
基于所述目标文件系统所需的基本命令与工具,利用所述配置软件生成所述根文件系统配置文件;
对所述根文件系统配置文件进行编译,生成编译结果;其中,所述编译结果为二进制文件。
5.如权利要求3所述的构建文件系统的方法,其特征在于,所述基于目标文件系统的需求数据,构建通用文件系统的步骤之后,包括:
解析所述目标文件系统的需求数据,获得目标服务程序;
对所述目标服务程序进行部署。
6.如权利要求5所述的构建文件系统的方法,其特征在于,所述对所述目标服务程序进行部署,包括:
将所述目标服务程序对应的可执行文件以及依赖的库文件分别放入第五目标子目录以及第四目标子目录中。
7.如权利要求1所述的构建文件系统的方法,其特征在于,所述基于所述通用文件系统,结合所述目标文件系统的类型,构建目标文件系统,包括:
获取所述目标文件系统的类型;
基于所述通用文件系统,利用与所述目标文件系统的类型对应的目标文件系统制作工具,构建目标文件系统。
8.一种构建文件系统的装置,其特征在于,所述。
数据获取模块,用于获取目标文件系统的需求数据;
通用文件系统构建模块,用于基于目标文件系统的需求数据,在嵌入式程序开发系统上构建通用文件系统;
目标文件系统构建模块,用于基于所述通用文件系统,结合所述目标文件系统的类型,构建目标文件系统。
9.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有构建文件系统的方法程序,所述构建文件系统的方法程序被处理器执行时实现权利要求1-7任一所述的构建文件系统的方法步骤。
10.一种构建文件系统的设备,其特征在于,包括存储器,处理器及存储在所述存储器上并可在所述处理器上运行的构建文件系统的方法程序,所述处理器执行所述构建文件系统的方法程序时实现权利要求1-7任一所述的构建文件系统的方法步骤。
CN202110574604.7A 2021-05-25 2021-05-25 构建文件系统的方法、装置、设备及计算机存储介质 Pending CN113407187A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110574604.7A CN113407187A (zh) 2021-05-25 2021-05-25 构建文件系统的方法、装置、设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110574604.7A CN113407187A (zh) 2021-05-25 2021-05-25 构建文件系统的方法、装置、设备及计算机存储介质

Publications (1)

Publication Number Publication Date
CN113407187A true CN113407187A (zh) 2021-09-17

Family

ID=77675042

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110574604.7A Pending CN113407187A (zh) 2021-05-25 2021-05-25 构建文件系统的方法、装置、设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN113407187A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114826996A (zh) * 2022-05-10 2022-07-29 上海磐御网络科技有限公司 基于busybox文件系统的路由器蜜罐测试方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117330A (zh) * 2011-03-04 2011-07-06 中山中珩数字科技有限公司 一种保护嵌入式Linux操作系统关键区域完整性的方法及系统
CN103309706A (zh) * 2013-05-24 2013-09-18 中标软件有限公司 基于Linux操作系统的内存文件系统制备方法及单元
CN106569820A (zh) * 2016-10-28 2017-04-19 汉柏科技有限公司 更换高版本busybox并同步制作根文件系统的方法及装置
CN112800014A (zh) * 2021-01-29 2021-05-14 中国工商银行股份有限公司 文件系统创建方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117330A (zh) * 2011-03-04 2011-07-06 中山中珩数字科技有限公司 一种保护嵌入式Linux操作系统关键区域完整性的方法及系统
CN103309706A (zh) * 2013-05-24 2013-09-18 中标软件有限公司 基于Linux操作系统的内存文件系统制备方法及单元
CN106569820A (zh) * 2016-10-28 2017-04-19 汉柏科技有限公司 更换高版本busybox并同步制作根文件系统的方法及装置
CN112800014A (zh) * 2021-01-29 2021-05-14 中国工商银行股份有限公司 文件系统创建方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHYXWZN: "linux文件系统制作(一)", 《CSDN: HTTPS://BLOG.CSDN.NET/CHYXWZN/ARTICLE/DETAILS/8872094》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114826996A (zh) * 2022-05-10 2022-07-29 上海磐御网络科技有限公司 基于busybox文件系统的路由器蜜罐测试方法及装置

Similar Documents

Publication Publication Date Title
CN106227579B (zh) 一种Docker容器构建方法及Docker管理控制台
US6178546B1 (en) System and method of making software product deliverables
US6117187A (en) Automatic generation of a software installation package
CN107506221B (zh) 应用程序升级方法、装置及设备
US7337434B2 (en) Off-device class/resource loading methods, systems and computer program products for debugging a Java application in a Java micro device
KR101143112B1 (ko) 페일세이프 방식으로 맞춤 소프트웨어 영상 갱신을불휘발성 저장 장치에 적용하는 시스템 및 방법
US8527937B2 (en) Method and apparatus for application building using build styles
JPH0836488A (ja) ダイナミック・パッチングを使用するランタイム・エラー・チェック方法と装置
WO1999030227A1 (en) Method and apparatus standardizing use of non-volatile memory within a bios-rom
CN106909362A (zh) Bmc固件生成的方法和装置、bmc系统启动的方法和装置
CN112379940B (zh) 一种可执行文件处理方法、装置、电子设备及存储介质
CN111124288A (zh) 一种vpd存储管理方法、装置、设备及可读存储介质
CN110716845A (zh) 一种Android系统的日志信息读取的方法
CN115629971A (zh) 一种应用的开发系统和开发方法
CN108694049B (zh) 一种更新软件的方法和设备
CN113407187A (zh) 构建文件系统的方法、装置、设备及计算机存储介质
CN111694580B (zh) 存储设备升级及初始化的方法、装置、电子设备
CN111666102A (zh) 文件格式转换方法、芯片验证方法、相关装置及网络芯片
CN115994003A (zh) 操作系统中共享对象的处理方法及处理装置
CN111367512B (zh) 一种应用程序开发中创建Android库模块依赖关系的方法及装置
KR100478463B1 (ko) 응용 프로그램의 동적링크 방법
CN111258617B (zh) 一种电子设备
CN113157329A (zh) 启动应用的方法、系统、服务器和存储介质
CN115167862A (zh) 补丁方法及相关设备
CN106897588B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210917