CN109634687A - 一种嵌入式Linux系统中应用软件的启动方法和装置 - Google Patents

一种嵌入式Linux系统中应用软件的启动方法和装置 Download PDF

Info

Publication number
CN109634687A
CN109634687A CN201811556299.3A CN201811556299A CN109634687A CN 109634687 A CN109634687 A CN 109634687A CN 201811556299 A CN201811556299 A CN 201811556299A CN 109634687 A CN109634687 A CN 109634687A
Authority
CN
China
Prior art keywords
application software
file
subregion
default
particular zones
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
CN201811556299.3A
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.)
Constant Technology (shanghai) Ltd By Share Ltd
Original Assignee
Constant Technology (shanghai) Ltd By Share 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 Constant Technology (shanghai) Ltd By Share Ltd filed Critical Constant Technology (shanghai) Ltd By Share Ltd
Priority to CN201811556299.3A priority Critical patent/CN109634687A/zh
Publication of CN109634687A publication Critical patent/CN109634687A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供了一种嵌入式Linux系统中应用软件的启动方法和装置,所述方法当嵌入式Linux系统启动时获取预设脚本;运行所述预设脚本挂载所述预设脚本中所指定的预设分区;在所述预设分区挂载完成后,加载预设的应用软件管理进程;执行所述应用软件管理进程,确定所述预设分区中包含的至少一个应用软件的部署文件;其中,所述部署文件为用户预先指定的与项目应用场景相匹配的文件;依据各个所述应用软件的部署文件启动各个所述应用软件。本发明技术方案中,充分利用了嵌入式Linux系统启动的过程,实现分区的挂载,自动找到与用户预先指定的与项目应用场景相匹配的部署文件,根据部署文件启动与项目匹配的应用软件,无需手动安装和配置。

Description

一种嵌入式Linux系统中应用软件的启动方法和装置
技术领域
本发明属于嵌入式系统技术领域,尤其涉及一种嵌入式Linux系统中应用软件的启动方法和装置。
背景技术
嵌入式Linux系统是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式设备上运行的一种操作系统。嵌入式Linux系统既继承了Internet上无限的开放源代码资源,又具有嵌入式操作系统的特性。目前正在开发的嵌入式系统中,有近50%的项目选择嵌入式Linux系统作为嵌入式操作系统。
在项目实施过程中,为了满足不同场景的需求,需要根据应用场景选择适合该应用场景的应用软件,这就造成了用户需要重复执行应用软件的安装和配置,费时费力,给用户的使用带来不便。
发明内容
有鉴于此,本发明的目的在于提供一种嵌入式Linux系统中应用软件的启动方法和装置,以实现在应用程序的灵活选择和切换而无需用户手动频繁去安装和配置应用程序,提高工作效率和用户体验。
本发明提供了一种嵌入式Linux系统中应用软件的启动方法,包括:
当嵌入式Linux系统启动时获取预设脚本;
运行所述预设脚本挂载所述预设脚本中所指定的预设分区;
在所述预设分区挂载完成后,加载预设的应用软件管理进程;
执行所述应用软件管理进程,确定所述预设分区中包含的至少一个应用软件的部署文件;其中,所述部署文件为用户预先指定的与项目应用场景相匹配的文件;
依据各个所述应用软件的部署文件启动各个所述应用软件。
优选的,所述运行所述预设脚本挂载所述预设脚本中所指定的预设分区包括:
获取所述预设脚本中的默认分区文件,所述默认分区文件中至少包括特定分区的分区名称以及存储空间大小;
依据所述特定分区的分区名称和存储空间大小挂载所述特定分区;
判断所述特定分区中是否包括特定分区文件;
若包括所述特定分区文件,则依据所述特定分区文件中每一个分区名称及存储空间大小挂载预设分区;
若不包括所述特定分区文件,则依据所述默认分区文件中的分区名称及存储空间大小挂载特定分区之外的预设分区;
卸载所述特定分区。
优选的,所述部署文件至少包括应用软件的配置组文件以及应用软件的部署程序包;
所述特定分区至少包括配置文件分区以及应用软件分区;其中,所述配置文件分区用于保存应用软件的配置组文件,所述应用软件分区用于保存应用软件的部署程序包。
优选的,所述依据各个所述应用软件的部署文件启动各个所述应用软件包括:
解析所述配置文件分区中的应用软件配置组文件,将所述应用软件配置组文件中各个应用软件各自对应的应用软件配置文件保存在特定目录;
解析所述软件分区中的应用软件的部署程序包,获得各个应用软件的部署程序以及各自对应的自动启动脚本;
当依据所述自动启动脚本启动应用软件时,在所述特定目录中依据该应用软件对应的应用软件配置文件进行配置。
优选的,所述预设分区中的系统分区中预先封装有软件版本管理工具,所述方法还包括:
接收用户发出的管理指令;
在所述软件版本管理工具中调用与所述管理指令对应的操作指令执行相应的操作。
本发明另一方面提供了一种嵌入式Linux系统中应用软件的启动装置,包括:
启动装置,用于当嵌入式Linux系统启动时获取预设脚本;
挂载装置,用于运行所述预设脚本挂载所述预设脚本中所指定的预设分区;
加载装置,用于在所述预设分区挂载完成后,加载预设的应用软件管理进程;
执行装置,用于执行所述应用软件管理进程,确定所述预设分区中包含的至少一个应用软件的部署文件;其中,所述部署文件为用户预先指定的与项目应用场景相匹配的文件;
启动装置,用于依据各个所述应用软件的部署文件启动各个所述应用软件。
优选的,所述挂载装置包括:
获取单元,用于获取所述预设脚本中的默认分区文件,所述默认分区文件中至少包括特定分区的分区名称以及存储空间大小;
挂载单元,用于依据所述特定分区的分区名称和存储空间大小挂载所述特定分区;
判断单元,用于判断所述特定分区中是否包括特定分区文件;
第一确定单元,用于若包括所述特定分区文件,则依据所述特定分区文件中每一个分区名称及存储空间大小挂载预设分区;
第二确定单元,用于若不包括所述特定分区文件,则依据所述默认分区文件中的分区名称及存储空间大小挂载特定分区之外的预设分区;
卸载单元,用于卸载所述特定分区。
优选的,所述部署文件至少包括应用软件的配置组文件以及应用软件的部署程序包;
所述特定分区至少包括配置文件分区以及应用软件分区;其中,所述配置文件分区用于保存应用软件的配置组文件,所述应用软件分区用于保存应用软件的部署程序包。
优选的,所述启动装置包括:
第一解析单元,用于解析所述配置文件分区中的应用软件配置组文件,将所述应用软件配置组文件中各个应用软件各自对应的应用软件配置文件保存在特定目录;
第二解析单元,用于解析所述软件分区中的应用软件的部署程序包,获得各个应用软件的部署程序以及各自对应的自动启动脚本;
启动单元,用于当依据所述自动启动脚本启动应用软件时,在所述特定目录中依据该应用软件对应的应用软件配置文件进行配置。
优选的,所述预设分区中的系统分区中预先封装有软件版本管理工具,所述装置还包括:
指令接收单元,用于接收用户发出的管理指令;
指令执行单元,用于在所述软件版本管理工具中调用与所述管理指令对应的操作指令执行相应的操作。
本申请提供了一种嵌入式Linux系统中应用软件的启动方法和装置,所述方法当嵌入式Linux系统启动时获取预设脚本;运行所述预设脚本挂载所述预设脚本中所指定的预设分区;在所述预设分区挂载完成后,加载预设的应用软件管理进程;执行所述应用软件管理进程,确定所述预设分区中包含的至少一个应用软件的部署文件;其中,所述部署文件为用户预先指定的与项目应用场景相匹配的文件;依据各个所述应用软件的部署文件启动各个所述应用软件。本发明技术方案中,充分利用了嵌入式Linux系统启动的过程,实现分区的挂载,自动找到与用户预先指定的与项目应用场景相匹配的部署文件,根据部署文件启动与项目匹配的应用软件,无需手动安装和配置,大大提高了工作效率和用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种嵌入式Linux系统中应用软件的启动方法的流程示意图;
图2是本发明实施例公开的一种嵌入式Linux系统中应用软件的启动方法中挂载预设分区的流程示意图;
图3是本发明实施例提供的一种嵌入式Linux系统中应用软件的启动方法中特定分区文件的内容示意图;
图4是本发明实施例提供的一种嵌入式Linux系统中应用软件的启动方法中配置组文件的内容示意图;
图5是本发明实施例提供的一种嵌入式Linux系统中应用软件的启动装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明核心在于,充分利用嵌入式Linux的启动过程,将与当前项目应用场景匹配的部署文件作为应用软件自动安装和匹配的文件,自动执行应用软件的安装和配置过程。
下面对本发明的技术方案进行详细介绍。
参见图1,图1是本发明实施例提供的一种嵌入式Linux系统中应用软件的启动方法的流程示意图。
本发明公开的一种嵌入式Linux系统中应用软件的启动方法,包括:
S101、当嵌入式Linux系统启动时获取预设脚本;
S102、运行所述预设脚本挂载所述预设脚本中所指定的预设分区;
本发明技术方案中,充分利用嵌入式Linux系统启动的过程,来实现分区的挂载。为了理解方便,后将嵌入式Linux系统统一称为系统。本发明实施例中,预设脚本预先存放在根目录下,该脚本文件以启动参数的形式传递给系统内核,来运行预设脚本。例如,将perinit脚本存放在根目录“/”下,当系统启动时,该文件作为启动参数,传递给系统内核。
本发明实施例中,预设脚本是在执行常规init进程前的脚本,主要目的是对如Flash分区进行初始化,可以分为默认形式和自定义形式,在后面进行详细介绍。
其中,预设分区可以包括包括配置文件分区以及应用软件分区;其中,所述配置文件分区用于保存应用软件的配置组文件,所述应用软件分区用于保存应用软件的部署程序包。还可以包括系统分区。
实际使用中,预设分区可以包括:/initfs、/configfs、/sysfs、/appfs,可以理解的是,可以包括其它分区。其中,/configfs为配置文件分区,主要统一存放配置组文件,/sysfs为系统工具分区,主要存放跟系统相关的一些底层工具,/appfs为应用软件分区,主要存放部署程序包。可以理解的是,配置组文件的格式为特定格式,图2为本发明实施例中配置组文件的内容格式示意图,其中,主要包括有应用软件版本名称、存放区域依据存放具体路径。存放区域可以包括是本地local还是远程url,具体路径为目录路径,该目录下存放有应用软件的相关文件。
需要说明的是,由于系统的特性,相同的软件版本不同,会造成项目所体现的效果不同,因此,大多数情况下,会不停的切换不同版本的应用软件,因此,本发明实施例中,配置组文件中主要针对的是应用软件的具体版本,并且,同一个软件名称在同一个配置组文件中有且仅有一个。
实际使用中,配置组文件可以被命名为active文件,存放在/configfs/cfg/目录以及/appfs/apps/目录下。
可以理解的是,本发明实施例中,存储配置组文件的存储设备可以选用SD卡、U盘、SATA以及网络远端等作为存储介质。一般而言,active文件可以存放的路径是相对固定的,写在应用软件管理程序中,相应的应用软件存储路径可以自由设定。
S103、在所述预设分区挂载完成后,加载预设的应用软件管理进程;
S104、执行所述应用软件管理进程,确定所述预设分区中包含的至少一个应用软件的部署文件;其中,所述部署文件为用户预先指定的与项目应用场景相匹配的文件;
S105、依据各个所述应用软件的部署文件启动各个所述应用软件。
本发明实施例中,当预设分区挂载完成后,会加载预设的应用软件管理进程。在系统中,系统进程通常是采用线程或服务的形式存在,本发明实施例中,在系统执行了设备初始化以及底层相关的系统进程后,本发明中的应用软件管理进程最后被加载。
实际使用中,该应用软件管理进程可以被命名为appstar,以service的形式执行。其主要负责解析如/configfs/cfg/active文件和/appfs/apps/active文件,来执行对应的操作。详细过程在后面进行介绍。
本发明实施例中,用户会预先指定与项目应用场景相匹配的配置组文件,具体指定方式是采用命令行格式工具来实现的,具体方式在后面进行详细介绍。由于用户指定的配置组文件中,包括了每一个应用软件的版本,因此,在系统重启后,项目的环境中应用软件的版本就是用户所期望呈现的效果。
本发明实施例中,依据部署文件来启动各个应用软件,由于应用软件启动是依据部署文件来配置的,因此,无需人工进行配置。
从上述技术方案可以看出,本发明技术方案中,充分利用了嵌入式Linux系统启动的过程,实现分区的挂载,自动找到与用户预先指定的与项目应用场景相匹配的部署文件,根据部署文件启动与项目匹配的应用软件,无需手动安装和配置,大大提高了工作效率和用户体验。
上述实施例中介绍了依据预设脚本挂载预设分区的过程,下面对此过程进行详细介绍。
参见图2,图2是本发明实施例公开的一种嵌入式Linux系统中应用软件的启动方法中挂载预设分区的流程示意图。
参见图2,运行所述预设脚本挂载所述预设脚本中所指定的预设分区包括:
S201、获取所述预设脚本中的默认分区文件,所述默认分区文件中至少包括特定分区的分区名称以及存储空间大小;
S202、依据所述特定分区的分区名称和存储空间大小挂载所述特定分区;
本发明实施例中,先挂载特定分区。其中特定分区可以是/initfs分区,该分区首先被挂载。
S203、判断所述特定分区中是否包括特定分区文件;
S204、若包括所述特定分区文件,则依据所述特定分区文件中每一个分区名称及存储空间大小挂载预设分区;
S205、若不包括所述特定分区文件,则依据所述默认分区文件中的分区名称及存储空间大小挂载特定分区之外的预设分区;
挂载特定分区后,会判断特定分区内是否包含有特定分区文件,图3是本发明实施例中特定分区文件的内容示意图,其主要包括分区类型,存储空间大小、分区名称、分区挂载路径。当然,还包括其它系统所需的必要分区,例如引导文件的分区等系统需要的必要分区,在表格中未进行体现。具体系统必需的其它分区可以参照现有技术,在此不进行赘述。
实际使用中,特定分区文件可以为mtd文件,如果特定分区内包括有该文件,则认为是自定义挂载模式,则需要根据该文件进行预设分区的挂载,如果没有该文件,则认为是默认挂载模式,则依据默认的方式来进行预设分区的挂载。当然,默认的方式也可以是依据预设的分区文件所执行的,只是该分区文件为系统文件,不能够被更改。可以理解的是,具体的分区名称和功能可以参考前述实施例中的相关记载。
可以理解的是,mtd文件中的各个参数例如存储空间大小等,均可以根据实际需要进行设置,这样就可以解决某个版本的应用软件超过32M的情况。
S206、卸载所述特定分区。
为了保证系统的空间和系统执行的效率,在分区挂载完成后,应当卸载特定分区。
本发明实施例中,可以支持默认形式和自定义形式来挂载预设分区,充分利用系统启动这一过程,来实现预设分区的挂载,可以实现超过32M应用软件的部署。
前述实施例中,介绍了一句各个应用软件的部署文件启动各个应用程序的过程,下面对此过程进行详细介绍。
本发明实施例中,所述依据各个所述应用软件的部署文件启动各个所述应用软件包括:
解析所述配置文件分区中的应用软件配置组文件,将所述应用软件配置组文件中各个应用软件各自对应的应用软件配置文件保存在特定目录;
解析所述软件分区中的应用软件的部署程序包,获得各个应用软件的部署程序以及各自对应的自动启动脚本;
当依据所述自动启动脚本启动应用软件时,在所述特定目录中依据该应用软件对应的应用软件配置文件进行配置。
本发明实施例中,所述部署文件至少包括应用软件的配置组文件以及应用软件的部署程序包;所述特定分区至少包括配置文件分区以及应用软件分区;其中,所述配置文件分区用于保存应用软件的配置组文件,所述应用软件分区用于保存应用软件的部署程序包。
实际使用中,配置组文件可以被命名为active文件,存放在/configfs/cfg/目录以及/appfs/apps/目录下,其结构参考图4。图4是本发明实施例中配置组文件的内容示意图。
参考图4中的内容,本发明实施例中,首先可以解析配置文件分区中的配置组文件,然后将配置组文件中所对应的配置文件解压缩到/etc目录下,该目录中用于统一保存配置文件。依次获取路径为/appfs/app/app1/目录下的配置文件并保存在特定目录/etc下,路径为ftp://10.3.1.10/apps.app2/目录下的配置文件并保存在特定目录/etc下,路径为/mnt/sdcard/app3/目录下的配置文件并保存在特定目录/etc下。
然后解析应用软件分区中的配置组文件,依次将对应路径下的程序文件以及对应的自动启动脚本文件保存在用户目录,例如/user/local目录下,实际使用中,可以是将应用软件/appfs/apps/app1/app1_V1.0.tar.gz解压到/usr/local/app1并且执行应用软件包中自带的启动应用软件的脚本/usr/local/app1/app_init,当应用软件启动时,会在特定目录/etc下依据该应用软件对应的配置文件配置该应用软件,无需用户重新配置。
本发明实施例中,引入了应用软件管理进程,通过该应用软件管理进程来实现应用软件的自动加载和配置,无需人工删除和安装,配置组文件对应不同的项目应用环境,使得软件的版本与项目应用环境相匹配,提高用户体验。
本发明实施例中,所述预设分区中的系统分区中预先封装有软件版本管理工具,所述方法还包括:
接收用户发出的管理指令;
在所述软件版本管理工具中调用与所述管理指令对应的操作指令执行相应的操作。
本发明实施例中,为了操作方便和管理方便,封装了易用应用软件版本管理工具,该工具为命令行工具,用于执行系统命令。该工具预先存放在例如/sysfs分区中。可以理解的是,该分区中还保存有其它系统底层工具。
用户发出的管理指令可以用于对配置组文件的管理和应用软件的部署程序包的管理等操作。
下面用具体实例来对该功能进行介绍。
例如,1、用户的管理指令用于表征需要显示当前正在使用的应用软件的版本信息,则系统会依据该管理指令读取文件/appfs/apps/active-old文件中的条目并显示。其中,系统启动加载版本过程中会将/appfs/apps/active文件复制一份到/appfs/apps/active-old。
实际使用中,管理指令可以为:app-manage-v。
2、用户的管理指令用于表征列出当前所有的软件版本,系统会遍历目录/appfs/apps/,提取其版本名称和路径并显示。
实际使用中,管理指令可以为:app-manage-V。
3、用户的管理指令用于表征增加软件版本到默认目录app-manage-aftp://10.3.1.10/app1/app1_V1.1.1.tar.gz。系统将版本app1_V1.1.1通过网络下载到/appfs/apps/app1下。
实际使用中,管理指令可以为:app-manage-a url。
4、用户的管理指令用于表征增加软件版本到指定目录app-manage-aftp://10.3.1.10/app1/app1_V1.1.1.tar.gz-l/sysfs,系统将版本app1_V1.1.1通过网络下载到/sysfs下,同时在目录/appfs/apps下建立一个符号链接,指向/sysfs/app1_V1.1.1.tar.gz。
实际使用中,管理指令可以为:app-manage-a url-llocal-path。
5、用户的管理指令用于表征删除应用软件包app-manage-d app1_V1.1.1,系统删除文件/appfs/apps/app1/app1_V1.1.1.tar.gz,若该文件为一个符号链接,同时删除该符号指向的。
实际使用中,管理指令可以为:app-manage-d app_name。
6、用户的管理指令用于表征选择下次启动的软件包app-manage-sapp1_V1.1.1系统判断文件/appfs/apps/app1/app1_V1.1.1.tar.gz是否为符号链接,若为符号链接到/sysfs/app1_V1.1.1.tar.gz,则向active文件中增加记录app1_V1.0local/sysfs/;如果不为符号链接,则向active文件增加记录app1_V1.0local/appfs/apps/app1/。可以理解的是如上active文件指的是文件/appfs/apps/active,即本申请中的配置组文件。
实际使用中,管理指令可以为:app-manage-s app_name。
7、用户的管理指令用于表征取消选择应用软件包app-manage-uapp1_V1.1.1,系统将/appfs/apps/active中包含app1_V1.1.1的条目删除。
实际使用中,管理指令可以为:app-manage-uapp_name。
上述命令主要用于对应用软件的部署程序包进行管理,下面对配置组文件进行管理的相关操作指令进行介绍。
1、用户的管理指令用于表征保存配置组文件,系统将/etc下的所有配置文件保存到目录/configs/test中。
实际使用中,管理指令可以为:cfg-manage-s test。
2、用户的管理指令用于表征设置下次使用的配置组文件,系统向文件/configfs/active中写入test,待系统下次启动的时候,会自动将目录/configfs/test下的配置文件复制到目录/etc。
实际使用中,管理指令可以为:cfg-manage-n test。
3、用户的管理指令用于使用默认配置组文件,系统删除/configfs/active文件,系统下次启动自动使用默认的配置组文件。
实际使用中,管理指令可以为:cfg-manage-u。
4、用户的管理指令用于表征显示当前使用的配置组文件,系统读取文件/configfs/active内容并显示所有已保存的配置文件。
实际使用中,管理指令可以为:cfg-manage-v。
5、用户的管理指令用于表征显示所有已经保存的配置组文件,系统遍历目录/configfs的子目录名称并将其显示出来。
实际使用中,管理指令可以为:cfg-manage-V。
6、用户的管理指令用于表征导出配置组,系统将目录/configfs/test打包为test.tar.gz,然后上传到ftp服务器的路径cfg中。
实际使用中,管理指令可以为:cfg-manage-e ftp://10.3.1.10/cfg-g test。其中,ftp://10.3.1.10/cfg为url地址,test为配置组文件名称。
7、用户的管理指令用于表征导入配置组,系统将文件test.tar.gz从ftp服务器下载并解压到目录/configfs/test中。
实际使用中,管理指令可以为:cfg-manage-iftp://10.3.1.10/cfg/test.tar.gz-gtest;其中,ftp://10.3.1.10/cfg/test.tar.gz为url地址,test为配置组文件名称。
本发明实施例中,修改部署文件例如active文件后,系统重启或重新上电后,才会依据新修改的部署文件启动应用软件。
本发明实施例中,应用软件部署程序包和配置组文件分开管理,可以实现所有版本显示,增加新版本,删除某个版本,用户选择切换使用某个版本、多版本配置文件兼容性处理等特性,大大方便了用户在项目中的使用。
本发明实施例中,多个版本的应用软件统一管理,支持部署文件的导入导出,大大提高了系统的灵活性。
与上述方法相对应的,本发明还提供了一种一种嵌入式Linux系统中应用软件的启动装置。
参见图5,图5是本发明提供的一种嵌入式Linux系统中应用软件的启动装置的结构示意图。
本发明公开的一种嵌入式Linux系统中应用软件的启动装置,包括:
启动装置1,用于当嵌入式Linux系统启动时获取预设脚本;
挂载装置2,用于运行所述预设脚本挂载所述预设脚本中所指定的预设分区;
加载装置3,用于在所述预设分区挂载完成后,加载预设的应用软件管理进程;
执行装置4,用于执行所述应用软件管理进程,确定所述预设分区中包含的至少一个应用软件的部署文件;其中,所述部署文件为用户预先指定的与项目应用场景相匹配的文件;
启动装置5,用于依据各个所述应用软件的部署文件启动各个所述应用软件。
优选的,所述挂载装置包括:
获取单元,用于获取所述预设脚本中的默认分区文件,所述默认分区文件中至少包括特定分区的分区名称以及存储空间大小;
挂载单元,用于依据所述特定分区的分区名称和存储空间大小挂载所述特定分区;
判断单元,用于判断所述特定分区中是否包括特定分区文件;
第一确定单元,用于若包括所述特定分区文件,则依据所述特定分区文件中每一个分区名称及存储空间大小挂载预设分区;
第二确定单元,用于若不包括所述特定分区文件,则依据所述默认分区文件中的分区名称及存储空间大小挂载特定分区之外的预设分区;
卸载单元,用于卸载所述特定分区。
优选的,所述部署文件至少包括应用软件的配置组文件以及应用软件的部署程序包;
所述特定分区至少包括配置文件分区以及应用软件分区;其中,所述配置文件分区用于保存应用软件的配置组文件,所述应用软件分区用于保存应用软件的部署程序包。
优选的,所述启动装置包括:
第一解析单元,用于解析所述配置文件分区中的应用软件配置组文件,将所述应用软件配置组文件中各个应用软件各自对应的应用软件配置文件保存在特定目录;
第二解析单元,用于解析所述软件分区中的应用软件的部署程序包,获得各个应用软件的部署程序以及各自对应的自动启动脚本;
启动单元,用于当依据所述自动启动脚本启动应用软件时,在所述特定目录中依据该应用软件对应的应用软件配置文件进行配置。
优选的,所述预设分区中的系统分区中预先封装有软件版本管理工具,所述装置还包括:
指令接收单元,用于接收用户发出的管理指令;
指令执行单元,用于在所述软件版本管理工具中调用与所述管理指令对应的操作指令执行相应的操作。
可以理解的是,本发明中的种嵌入式Linux系统中应用软件的启动装置可以实现种嵌入式Linux系统中应用软件的启动方法的全部步骤,具体实现过程参考上述方法实施例的具体实现即可,在此不进行赘述。
从上述技术方案可以看出,本发明技术方案中,充分利用了嵌入式Linux系统启动的过程,实现分区的挂载,自动找到与用户预先指定的与项目应用场景相匹配的部署文件,根据部署文件启动与项目匹配的应用软件,无需手动安装和配置,大大提高了工作效率和用户体验。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种嵌入式Linux系统中应用软件的启动方法,其特征在于,包括:
当嵌入式Linux系统启动时获取预设脚本;
运行所述预设脚本挂载所述预设脚本中所指定的预设分区;
在所述预设分区挂载完成后,加载预设的应用软件管理进程;
执行所述应用软件管理进程,确定所述预设分区中包含的至少一个应用软件的部署文件;其中,所述部署文件为用户预先指定的与项目应用场景相匹配的文件;
依据各个所述应用软件的部署文件启动各个所述应用软件。
2.根据权利要求1所述的方法,其特征在于,所述运行所述预设脚本挂载所述预设脚本中所指定的预设分区包括:
获取所述预设脚本中的默认分区文件,所述默认分区文件中至少包括特定分区的分区名称以及存储空间大小;
依据所述特定分区的分区名称和存储空间大小挂载所述特定分区;
判断所述特定分区中是否包括特定分区文件;
若包括所述特定分区文件,则依据所述特定分区文件中每一个分区名称及存储空间大小挂载预设分区;
若不包括所述特定分区文件,则依据所述默认分区文件中的分区名称及存储空间大小挂载特定分区之外的预设分区;
卸载所述特定分区。
3.根据权利要求1或2所述的方法,其特征在于,所述部署文件至少包括应用软件的配置组文件以及应用软件的部署程序包;
所述特定分区至少包括配置文件分区以及应用软件分区;其中,所述配置文件分区用于保存应用软件的配置组文件,所述应用软件分区用于保存应用软件的部署程序包。
4.根据权利要求3所述的方法,其特征在于,所述依据各个所述应用软件的部署文件启动各个所述应用软件包括:
解析所述配置文件分区中的应用软件配置组文件,将所述应用软件配置组文件中各个应用软件各自对应的应用软件配置文件保存在特定目录;
解析所述软件分区中的应用软件的部署程序包,获得各个应用软件的部署程序以及各自对应的自动启动脚本;
当依据所述自动启动脚本启动应用软件时,在所述特定目录中依据该应用软件对应的应用软件配置文件进行配置。
5.根据权利要求3所述的方法,其特征在于,所述预设分区中的系统分区中预先封装有软件版本管理工具,所述方法还包括:
接收用户发出的管理指令;
在所述软件版本管理工具中调用与所述管理指令对应的操作指令执行相应的操作。
6.一种嵌入式Linux系统中应用软件的启动装置,其特征在于,包括:
启动装置,用于当嵌入式Linux系统启动时获取预设脚本;
挂载装置,用于运行所述预设脚本挂载所述预设脚本中所指定的预设分区;
加载装置,用于在所述预设分区挂载完成后,加载预设的应用软件管理进程;
执行装置,用于执行所述应用软件管理进程,确定所述预设分区中包含的至少一个应用软件的部署文件;其中,所述部署文件为用户预先指定的与项目应用场景相匹配的文件;
启动装置,用于依据各个所述应用软件的部署文件启动各个所述应用软件。
7.根据权利要求6所述的装置,其特征在于,所述挂载装置包括:
获取单元,用于获取所述预设脚本中的默认分区文件,所述默认分区文件中至少包括特定分区的分区名称以及存储空间大小;
挂载单元,用于依据所述特定分区的分区名称和存储空间大小挂载所述特定分区;
判断单元,用于判断所述特定分区中是否包括特定分区文件;
第一确定单元,用于若包括所述特定分区文件,则依据所述特定分区文件中每一个分区名称及存储空间大小挂载预设分区;
第二确定单元,用于若不包括所述特定分区文件,则依据所述默认分区文件中的分区名称及存储空间大小挂载特定分区之外的预设分区;
卸载单元,用于卸载所述特定分区。
8.根据权利要求6或7所述的装置,其特征在于,所述部署文件至少包括应用软件的配置组文件以及应用软件的部署程序包;
所述特定分区至少包括配置文件分区以及应用软件分区;其中,所述配置文件分区用于保存应用软件的配置组文件,所述应用软件分区用于保存应用软件的部署程序包。
9.根据权利要求8所述的装置,其特征在于,所述启动装置包括:
第一解析单元,用于解析所述配置文件分区中的应用软件配置组文件,将所述应用软件配置组文件中各个应用软件各自对应的应用软件配置文件保存在特定目录;
第二解析单元,用于解析所述软件分区中的应用软件的部署程序包,获得各个应用软件的部署程序以及各自对应的自动启动脚本;
启动单元,用于当依据所述自动启动脚本启动应用软件时,在所述特定目录中依据该应用软件对应的应用软件配置文件进行配置。
10.根据权利要求8所述的方法,其特征在于,所述预设分区中的系统分区中预先封装有软件版本管理工具,所述装置还包括:
指令接收单元,用于接收用户发出的管理指令;
指令执行单元,用于在所述软件版本管理工具中调用与所述管理指令对应的操作指令执行相应的操作。
CN201811556299.3A 2018-12-19 2018-12-19 一种嵌入式Linux系统中应用软件的启动方法和装置 Pending CN109634687A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811556299.3A CN109634687A (zh) 2018-12-19 2018-12-19 一种嵌入式Linux系统中应用软件的启动方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811556299.3A CN109634687A (zh) 2018-12-19 2018-12-19 一种嵌入式Linux系统中应用软件的启动方法和装置

Publications (1)

Publication Number Publication Date
CN109634687A true CN109634687A (zh) 2019-04-16

Family

ID=66075402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811556299.3A Pending CN109634687A (zh) 2018-12-19 2018-12-19 一种嵌入式Linux系统中应用软件的启动方法和装置

Country Status (1)

Country Link
CN (1) CN109634687A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321172A (zh) * 2019-06-03 2019-10-11 平安科技(深圳)有限公司 网络块设备的分区识别方法、装置、设备和存储介质
CN111124449A (zh) * 2019-12-18 2020-05-08 杭州安恒信息技术股份有限公司 一种基于CF卡和extlinux引导方式的业务系统部署方法和装置
CN111209059A (zh) * 2020-01-14 2020-05-29 中国北方车辆研究所 一种嵌入式软件多版本控制系统及方法
CN112000382A (zh) * 2020-08-26 2020-11-27 绿盟科技集团股份有限公司 一种Linux系统启动方法、装置及可读存储介质
CN112988576A (zh) * 2021-02-26 2021-06-18 中国工商银行股份有限公司 一种软件项目研发进程确定方法及装置
CN113590175A (zh) * 2021-06-30 2021-11-02 支付宝(杭州)信息技术有限公司 依赖目录的创建方法、装置及设备
CN114124684A (zh) * 2021-10-22 2022-03-01 杭州依赛通信有限公司 一种运用u盘实现零接触全自动部署网元的方法
CN114579056A (zh) * 2022-03-11 2022-06-03 联想开天科技有限公司 一种系统的分区方法、装置及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106091A (zh) * 2013-01-31 2013-05-15 深圳市开立科技有限公司 一种基于可移动存储介质的操作系统的启动系统和方法
CN103530151A (zh) * 2013-10-10 2014-01-22 上海爱数软件有限公司 一种可切换业务软件系统的Linux操作系统定制方法
CN103970579A (zh) * 2014-05-29 2014-08-06 中国银行股份有限公司 应用版本部署方法及装置
CN104252342A (zh) * 2013-06-27 2014-12-31 中兴通讯股份有限公司 一种可配置参数的嵌入式应用实现方法及装置
CN107015827A (zh) * 2017-03-20 2017-08-04 深圳市共进电子股份有限公司 嵌入式系统及其自动运行第三方扩展程序的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106091A (zh) * 2013-01-31 2013-05-15 深圳市开立科技有限公司 一种基于可移动存储介质的操作系统的启动系统和方法
CN104252342A (zh) * 2013-06-27 2014-12-31 中兴通讯股份有限公司 一种可配置参数的嵌入式应用实现方法及装置
CN103530151A (zh) * 2013-10-10 2014-01-22 上海爱数软件有限公司 一种可切换业务软件系统的Linux操作系统定制方法
CN103970579A (zh) * 2014-05-29 2014-08-06 中国银行股份有限公司 应用版本部署方法及装置
CN107015827A (zh) * 2017-03-20 2017-08-04 深圳市共进电子股份有限公司 嵌入式系统及其自动运行第三方扩展程序的方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321172B (zh) * 2019-06-03 2022-04-19 平安科技(深圳)有限公司 网络块设备的分区识别方法、装置、设备和存储介质
CN110321172A (zh) * 2019-06-03 2019-10-11 平安科技(深圳)有限公司 网络块设备的分区识别方法、装置、设备和存储介质
CN111124449A (zh) * 2019-12-18 2020-05-08 杭州安恒信息技术股份有限公司 一种基于CF卡和extlinux引导方式的业务系统部署方法和装置
CN111209059A (zh) * 2020-01-14 2020-05-29 中国北方车辆研究所 一种嵌入式软件多版本控制系统及方法
CN111209059B (zh) * 2020-01-14 2023-03-03 中国北方车辆研究所 一种嵌入式软件多版本控制系统及方法
CN112000382A (zh) * 2020-08-26 2020-11-27 绿盟科技集团股份有限公司 一种Linux系统启动方法、装置及可读存储介质
CN112000382B (zh) * 2020-08-26 2023-10-13 绿盟科技集团股份有限公司 一种Linux系统启动方法、装置及可读存储介质
CN112988576A (zh) * 2021-02-26 2021-06-18 中国工商银行股份有限公司 一种软件项目研发进程确定方法及装置
CN112988576B (zh) * 2021-02-26 2024-02-09 中国工商银行股份有限公司 一种软件项目研发进程确定方法及装置
CN113590175A (zh) * 2021-06-30 2021-11-02 支付宝(杭州)信息技术有限公司 依赖目录的创建方法、装置及设备
CN114124684A (zh) * 2021-10-22 2022-03-01 杭州依赛通信有限公司 一种运用u盘实现零接触全自动部署网元的方法
CN114124684B (zh) * 2021-10-22 2024-04-19 杭州依赛通信有限公司 一种运用u盘实现零接触全自动部署网元的方法
CN114579056A (zh) * 2022-03-11 2022-06-03 联想开天科技有限公司 一种系统的分区方法、装置及电子设备
CN114579056B (zh) * 2022-03-11 2023-08-08 联想开天科技有限公司 一种系统的分区方法、装置及电子设备

Similar Documents

Publication Publication Date Title
CN109634687A (zh) 一种嵌入式Linux系统中应用软件的启动方法和装置
US8762937B2 (en) Model driven deployment of composite applications
CN103942063B (zh) 一种针对Java Web应用的集中配置和远程部署方法
US8819670B2 (en) Automated software installation with interview
US7669021B2 (en) File system based offline disk management
CN102831173B (zh) 基于Android系统的内存扩展方法、装置及终端设备
CN104978209B (zh) 应用的更新方法及装置
CN106371881B (zh) 一种用于服务器内程序版本更新的方法和系统
CN103294514A (zh) 系统软件版本集成方法、编译服务器及系统
WO2012062063A1 (zh) 软件安装包的生成、卸载方法及装置
CN115686584B (zh) 一种操作系统升级方法、设备、存储介质及计算机程序产品
CN108234554B (zh) 一种云文件编辑方法及装置
CN104881604B (zh) 版本文件的运行方法及装置
CN102567053A (zh) 一种软件版本回退的方法及装置
CN109766105A (zh) 驱动程序安装方法、装置、服务器及计算机可读存储介质
CN112882729A (zh) 应用镜像升级方法、装置、计算机设备和存储介质
CN101668081A (zh) 一种移动终端及其自动升级方法
CN106970778B (zh) 一种基于fpga的嵌入式设备的在线配置方法及系统
CN109413499A (zh) 安卓电视固件的配置方法、系统及设备
WO2016082450A1 (zh) 一种用户终端的升级方法和用户终端
CN110474793A (zh) 一种网络设备的升级方法及装置
CN110888648A (zh) 一种交互界面生成自定义linux镜像的方法
CN102609301A (zh) 给多个客户端快速部署软件的方法
CN107741854A (zh) 一种电子设备的网卡驱动的安装方法及装置
CN104572943B (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: 20190416