一种自动构建操作系统的系统及方法

文档序号:6516699阅读:167来源:国知局
一种自动构建操作系统的系统及方法
【专利摘要】本发明公开了一种自动构建操作系统的系统及方法,其属于操作系统【技术领域】;系统包括配置模块;配置模块用于配置构建信息;工具生成模块;工具生成模块接收构建信息,并根据构建信息生成相应的工具链,以及相应的多个构建工具;执行模块;执行模块将多个构建工具以及对应的辅助信息存放入存储模块中;系统生成模块;系统生成模块根据多个构建工具以及对应的辅助信息,形成安装文件。方法包括:配置相应的配置信息和工具信息;生成相应的工具链;根据工具链生成构建工具;保存将多个构建工具以及辅助信息;根据构建工具和辅助信息形成安装文件。上述技术方案的有益效果是:节省人力资源、时间资源以及开发成本,避免人工处理带来的错误。
【专利说明】一种自动构建操作系统的系统及方法
【技术领域】
[0001]本发明涉及操作系统【技术领域】,尤其涉及一种自动构建操作系统的系统及方法。【背景技术】
[0002]对于操作系统来说,无论是企业还是个人,有时候需要为其定制一些独有的或者是合适的操作系统来满足特殊需求。为了对业务系统提供一致的支撑环境,有时候还需要将定制好的操作系统在不同的操作平台上运行。利用现有的编译技术,虽然能够在一定程度上满足上述需求,但是对于后续的维护、升级、软件包的替换、工具链的升级、个别软件包的升级等工作来说,目前尚无高效的解决方案。现有技术中对于上述问题的解决通常是靠人工处理,这样会耗费大量的人力资源和时间资源,而且还容易出错。另外,一旦操作系统完成,对于其中工具链的升级是十分复杂以及麻烦的,在工具链存在漏洞的情况下,对于操作系统的危害性较大。
[0003]中国专利(CNlO 1655804)公开了 一种虚拟操作系统构建方法及装置,该方法包括:在本机操作系统中创建至少一个新的桌面环境,并分别在至少一个新的桌面环境中创建相应的程序容器;将壳层程序和服务管理程序载入内存并置于程序容器中;将操作系统模拟器分别注入壳层程序和服务管理程序,以使操作系统模拟器接管壳层程序和服务管理程序对本机操作系统的调用,并接管由所述壳层程序启动的应用程序与由所述服务管理程序启动的服务程序,完成至少一个虚拟操作系统的构建。上述技术方案中仅公开了对于一种虚拟的操作系统进行的创建过程,并非针对对应不同平台的实际的操作系统,因此无法解决现有技术中存在的问题;
[0004]中国专利(CN101655805)公开了一种多层虚拟操作系统构建方法及装置,其中,该方法包括:构建空白虚拟环境与虚拟环境配置数据库;打开虚拟环境叠加数据库,获取使用者指定的桌面层、应用层、以及使用者的数据层,通过修改虚拟环境配置数据库将桌面层、应用层、以及数据层加载到空白虚拟环境中,其中,桌面层中包括对空白虚拟环境的桌面进行特定配置所需要的所有数据,应用层中包括在白虚拟环境中运行特定应用程序所需要的所有数据,数据层保存有使用者全部的数据;根据使用者对桌面层和应用层的数据进行操作所产生的数据变更对保存在数据层中的数据进行更新。上述技术方案未涉及到对应于不同平台的实际的操作系统构建方法,因此无法解决现有技术中的问题。

【发明内容】

[0005]根据现有技术中存在的问题,现提供一种自动构建操作系统的系统及方法的技术方案,具体包括:
[0006]一种自动构建操作系统的系统,其中,包括:
[0007]配置模块;所述配置模块用于配置构建信息;所述构建信息包括配置信息和工具信息;
[0008]工具生成模块;所述工具生成模块连接所述配置模块;所述工具生成模块接收所述构建信息,并根据所述构建信息生成相应的工具链;所述工具生成模块根据所述工具链,生成相应的多个构建工具;
[0009]执行模块;所述执行模块分别连接所述工具生成模块以及一存储模块;所述执行模块将所述工具生成模块生成的多个所述构建工具以及对应所述构建工具的辅助信息存放入所述存储模块中;
[0010]系统生成模块;所述系统生成模块连接所述存储模块;所述系统生成模块根据所述存储模块中保存的多个所述构建工具以及对应的所述辅助信息,形成用于安装操作系统的安装文件。
[0011]优选的,该自动构建操作系统的系统,其中,对应于一个所述操作平台的一个所述配置信息与一个所述工具信息对应。
[0012]优选的,该自动构建操作系统的系统,其中,所述配置信息包括对应于不同的操作平台的配置信息,以及生成所述工具链的存储位置信息。
[0013]优选的,该自动构建操作系统的系统,其中,所述工具信息包括对应于不同的所述构建工具的工具信息、工具描述、获取地址、编译信息、安装信息以及依赖关系信息。
[0014]优选的,该自动构建操作系统的系统,其中,所述存储模块为数据缓存模块。
[0015]优选的,该自动构建操作系统的系统,其中,所述工具生成模块根据所述工具链形成相应的依赖工具以及被依赖工具;所述依赖工具依赖于所述被依赖工具工作。
[0016]一种自动构建操作系统的方法,其中,具体包括:
[0017]步骤I,对应于不同的操作平台配置相应的配置信息和工具信息;
[0018]步骤2,根据所述配置信息和所述工具信息生成相应的工具链;
[0019]步骤3,根据所述工具链生成多个相应的构建工具;
[0020]步骤4,将多个所述构建工具以及对应所述构建工具的辅助信息保存入一存储模块中;
[0021]步骤5,根据保存于所述存储模块中的所述构建工具和所述辅助信息形成用于安装操作系统的安装文件。
[0022]优选的,该自动构建操作系统的方法,其中,所述步骤I中:
[0023]所述配置信息包括了对应于不同的操作平台的配置信息和对应于不同的所述工具链的存储位置信息;
[0024]所述工具信息包括了对应于不同的所述构建工具的工具信息、工具描述、获取地址、编译信息、安装信息以及依赖关系信息;
[0025]对应于一个所述操作平台的一个所述配置信息与一个所述工具信息对应。
[0026]优选的,该自动构建操作系统的方法,其中,所述步骤3中,所述构建工具包括了依赖工具和被依赖工具;所述依赖工具依赖于所述被依赖工具工作。
[0027]优选的,该自动构建操作系统的方法,其中,所述步骤4中,所述存储模块为一数据缓存模块。
[0028]上述技术方案的有益效果是:使用了同一个系统对对应不同平台的操作系统进行构建,节省了大量的人力资源和时间资源,节约了开发成本,同时避免人工处理带来的额外错误。【专利附图】

【附图说明】
[0029]图1是本发明的较佳的实施例中,一种自动构建操作系统的系统的结构示意图;
[0030]图2是本发明的较佳的实施例中,一种自动构建操作系统的方法的流程示意图。
【具体实施方式】
[0031]下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
[0032]如图1所示,本发明的较佳的实施例中,一种自动构建操作系统的系统包括了:
[0033]一配置模块;该配置模块用于配置对应不同的操作平台的操作系统的构建信息,以及相应的工具信息。本发明的较佳的实施例中,上述操作平台包括了 i686平台、amd64平台以及arm平台等。本发明的较佳的实施例中,对应于一个操作平台的构建信息对应于一个工具信息。
[0034]本发明的较佳的实施例中,上述构建信息包括:对应于不同的操作平台的配置信息,以及生成对应不同的操作平台的工具链信息的存储位置信息。本发明的较佳的实施例中,上述存储位置信息即为每个工具链信息的路径信息。所谓工具链,是指一系列制作系统软件的工具,主要包括用于编辑源代码的文本编辑器,用于生成可执行文件的编译器和链接器,连接操作系统的数据库,以及除错器等一系列工具。
[0035]本发明的较佳的实施例中,上述工具信息用于生成不同的构建工具。本发明的较佳的实施例中,构建工具实际为操作系统正常运行所需要的系统软件信息,因此,上述工具信息具体包括了软件包的名称、描述、获取地址(本发明的较佳的实施例中为软件包的下载地址)、编译信息(编译脚本)、安装信息(安装脚本),以及依赖关系信息等。本发明的较佳的实施例中,对应于不同的操作平台的操作系统由上述原始的软件包组成,而组成系统的软件包包括了内核、编译器、链接器、基础库、算法库、图形库、工具集以及桌面环境等元素,上述元素均需要根据所组成的操作系统的具体需要确定。
[0036]本发明的较佳的实施例中,上述依赖关系信息具体描述了依赖软件与被依赖软件之间的依赖关系。本发明的较佳的实施例中,上述被依赖软件也可被称为目标软件,所谓依赖关系,是指依赖软件来并不独立运行,而是依赖于某个独立的目标软件运行,目标软件的改变会对依赖软件的运行造成一定的影响。依赖软件和目标软件之间的依赖关系即包括在上述依赖关系信息中。
[0037]—工具生成模块;本发明的较佳的实施例中,该工具生成模块连接上述配置模块,用于接收由上述配置模块I所配置的配置信息。
[0038]本发明的较佳的实施例中,上述工具生成模块根据配置信息,生成相应的工具链。本发明的较佳的实施例中,上述工具链的生成具体包括:首先查找到需要编译的某个构建工具的工具信息,随后根据该工具信息的依赖关系查找其所依赖的被依赖工具信息,以此类推,直至查找到构建工具链的最初始目标工具,即构成了一个完整的工具链信息。
[0039]本发明的较佳的实施例中,上述工具生成模块随后根据生成的工具链,形成相应的多个构建工具(本发明的较佳的实施例中即为系统软件)。上述构建工具包括了依赖工具和被依赖工具。
[0040]本发明的较佳的实施例中,上述工具链为交叉编译工具链。
[0041]一执行模块;本发明的较佳的实施例中,该执行模块分别连接上述工具生成模块以及一存储模块。执行模块用于将工具生成模块生成的多个构建工具,以及对应于多个构建工具的辅助信息发送至存储模块中保存。
[0042]本发明的较佳的实施例中,上述辅助信息包括了工具链信息中的安装信息、连接操作系统的数据库以及其他与软件包运行相关的辅助文件信息等。
[0043]本发明的较佳的实施例中,上述存储模块为数据缓存模块,即为临时存储模块。执行模块将上述构建工具以及辅助信息发送到临时存储模块中保存,以便于下一步操作。
[0044]—系统生成模块。本发明的较佳的实施例中,上述系统生成模块连接存储模块,并根据存储模块中保存的上述构建工具和辅助信息,形成用于安装操作系统的安装文件。本发明的较佳的实施例中,上述安装文件可以为操作系统的系统镜像文件,以及安装发布的脚本。
[0045]于上述技术方案的基础上,上述多个模块的组成以及其间的连接关系均可以通过软件或者硬件的方式形成,例如存储模块可以通过缓存器的方式形成,配置模块可以通过命令行的方式实现等等。上文中描述的模块构成以及连接关系仅包括在本发明的较佳的实施例中,并非因此限制本发明的保护范围。
[0046]如图2所示为本发明的较佳的实施例中的一种自动构建操作系统的方法,该方法采用上述自动构建操作系统的系统实现。该方法具体包括:
[0047]步骤I,对应于不同的操作平台配置相应的配置信息和工具信息;
[0048]本发明的较佳的实施例中,实际通过一配置模块在project目录下建立配置信息目录,并在该目录下建立相应的配置信息;
[0049]本发明的较佳的实施例中,对应于不同的操作平台的配置信息主要可以分为两类:一类是可编辑的主体配置文件,主要为options文件,以及对应不同操作平台的内核配置文件等;另一类是辅助性的自动执行脚本文件,主要为get、unpack、checkdeps、build、clean、install、image 等文件。
[0050]本发明的较佳的实施例中,实际通过上述配置模块在packages目录下建立工具信息目录,并在该鲁姆下建立相应的工具信息;
[0051]本发明的较佳的实施例中,上述工具信息用于生成不同的构建工具。本发明的较佳的实施例中,构建工具实际为操作系统正常运行所需要的系统软件信息,因此,上述工具信息具体包括了软件包的名称、描述、获取地址(本发明的较佳的实施例中为软件包的下载地址)、编译信息(编译脚本)、安装信息(安装脚本),以及依赖关系信息等。本发明的较佳的实施例中,对应于不同的操作平台的操作系统由上述原始的软件包组成,而组成系统的软件包包括了内核、编译器、链接器、基础库、算法库、图形库、工具集以及桌面环境等元素,上述元素均需要根据所组成的操作系统的具体需要确定。
[0052]本发明的较佳的实施例中,各软件包的信息主要由meta、build以及install脚本的内容组成,其中meta脚本主要描述了软件的基本信息,即软件包名称、描述、下载地址、编译信息、安装信息以及依赖关系信息等,build脚本主要根据操作平台的不同对软件进行相应的编译工作,install脚本主要将编译生成的文件安装到目标目录中,以便于组成最终的操作系统。
[0053]本发明的较佳的实施例中,上述依赖关系信息具体描述了依赖软件与被依赖软件之间的依赖关系。本发明的较佳的实施例中,上述被依赖软件也可被称为目标软件。依赖软件和目标软件之间的依赖关系即包括在上述依赖关系信息中。
[0054]步骤2,根据配置信息和工具信息生成相应的工具链信息;
[0055]本发明的较佳的实施例中,根据上述配置信息和工具信息,尤其根据工具信息中的依赖关系信息,依次查找需要生成的相应的构建工具,进而形成一个完整的工具链信息。
[0056]步骤3,根据工具链信息生成多个相应的构建工具;
[0057]本发明的较佳的实施例中,上述编译生成构建工具的过程主要采用makefile控制,编译目标的确定,主要通过本发明的较佳的实施例中配置信息里的options文件进行定义,具体为:开始编译时,通过运行make命令,执行image脚本,随后根据image脚本确定当前需要构建的操作系统所处的操作平台;随后根据该操作平台读取相应的options文件并执行,以获取相应的配置信息;随后开始对第一个目标软件进行编译生成。本发明的较佳的实施例中,编译生成软件的步骤又具体包括:
[0058]首先通过读取并计算该目标软件的meta文件内容,判断该目标软件是否满足编译条件;若满足,则直接编译该目标软件;若不满足,则根据该目标软件的依赖关系信息,开始编译其依赖关系列表中的第一个依赖软件。上述编译生成过程循环进行,直至找到最初的依赖软件(即并无其他依赖软件依赖于此依赖软件)。此时,对该最初的依赖软件进行判断,若未编译,则编译该依赖软件;若已经编译,则顺序进行下一个目标软件的编译生成工作。
[0059]本发明的较佳的实施例中,在上述编译生成过程中的每个阶段,都会生成一个标记文件来标识目前所处的阶段,以避免后续的编译生成过程再次重复相同的工作。
[0060]步骤4,将多个构建工具以及对应构建工具的辅助信息保存入一存储模块中;
[0061]本发明的较佳的实施例中,上述辅助信息包括了工具链信息中的安装信息、连接操作系统的数据库以及其他与软件包运行相关的辅助文件信息等。
[0062]本发明的较佳的实施例中,上述存储模块为数据缓存模块,即为临时存储模块。采用一执行模块将上述构建工具以及辅助信息发送到临时存储模块中保存,以便于下一步操作。
[0063]步骤5,根据保存于存储模块中的构建工具和辅助信息形成用于安装操作系统的安装文件。
[0064]本发明的较佳的实施例中,上述安装文件可以是用于安装操作系统的系统镜像文件,以及安装发布脚本等。
[0065]于上述技术方案的基础上,能够根据不同的配置信息和工具信息自动生成相应的交叉编译工具链信息,并根据依赖关系自动对软件包进行排序,按顺序依次对软件包进行编译、安装、打包,并最终生成可发布的适用于特定的操作平台上的操作系统的系统镜像文件。
[0066]以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
【权利要求】
1.一种自动构建操作系统的系统,其特征在于,包括: 配置模块;所述配置模块用于配置构建信息;所述构建信息包括配置信息和工具信息; 工具生成模块;所述工具生成模块连接所述配置模块;所述工具生成模块接收所述构建信息,并根据所述构建信息生成相应的工具链信息;所述工具生成模块根据所述工具链信息,生成相应的多个构建工具; 执行模块;所述执行模块分别连接所述工具生成模块以及一存储模块;所述执行模块将所述工具生成模块生成的多个所述构建工具以及对应所述构建工具的辅助信息存放入所述存储模块中; 系统生成模块;所述系统生成模块连接所述存储模块;所述系统生成模块根据所述存储模块中保存的多个所述构建工具以及对应的所述辅助信息,形成用于安装操作系统的安装文件。
2.如权利要求1所述的自动构建操作系统的系统,其特征在于,对应一个所述操作平台的所述配置信息与一个所述工具信息对应。
3.如权利要求2所述的自动构建操作系统的系统,其特征在于,所述配置信息包括对应于不同的操作平台的配置信息,以及生成所述工具链信息的存储位置信息。
4.如权利要求2所述的自动构建操作系统的系统,其特征在于,所述工具信息包括对应于不同的所述构建工具的工具信息、工具描述、获取地址、编译信息、安装信息以及依赖关系信息。
5.如权利要求1所述的自 动构建操作系统的系统,其特征在于,所述存储模块为数据缓存模块。
6.如权利要求4所述的自动构建操作系统的系统,其特征在于,所述工具生成模块根据所述工具链信息形成相应的依赖工具信息以及被依赖工具信息;所述依赖工具信息依赖于所述被依赖工具信息工作。
7.一种自动构建操作系统的方法,其特征在于,具体包括: 步骤1,对应于不同的操作平台配置相应的配置信息和工具信息; 步骤2,根据所述配置信息和所述工具信息生成相应的工具链信息; 步骤3,根据所述工具链信息生成多个相应的构建工具; 步骤4,将多个所述构建工具以及对应所述构建工具的辅助信息保存入一存储模块中; 步骤5,根据保存于所述存储模块中的所述构建工具和所述辅助信息形成用于安装操作系统的安装文件。
8.如权利要求7所述的自动构建操作系统的方法,其特征在于,所述步骤I中: 所述配置信息包括了对应于不同的操作平台的配置信息和对应于不同的所述工具链信息的存储位置信息; 所述工具信息包括了对应于不同的所述构建工具的工具信息、工具描述、获取地址、编译信息、安装信息以及依赖关系信息; 对应于一个所述操作平台的一个所述配置信息与一个所述工具信息对应。
9.如权利要求7所述的自动构建操作系统的方法,其特征在于,所述步骤3中,所述构建工具包括了依赖工具信息和被依赖工具信息;所述依赖工具信息依赖于所述被依赖工具信息工作。
10.如权利要求7所述的自动构建操作系统的方法,其特征在于,所述步骤4中,所述存储模块为一数据缓存模块。
【文档编号】G06F9/44GK103645888SQ201310513360
【公开日】2014年3月19日 申请日期:2013年10月25日 优先权日:2013年10月25日
【发明者】武校田 申请人:普华基础软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1