CN108108300B - 一种操作***的资源配置检测方法和装置 - Google Patents
一种操作***的资源配置检测方法和装置 Download PDFInfo
- Publication number
- CN108108300B CN108108300B CN201711364825.1A CN201711364825A CN108108300B CN 108108300 B CN108108300 B CN 108108300B CN 201711364825 A CN201711364825 A CN 201711364825A CN 108108300 B CN108108300 B CN 108108300B
- Authority
- CN
- China
- Prior art keywords
- configuration
- node
- information
- configuration information
- item
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3616—Software analysis for verifying properties of programs using software metrics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例涉及通信技术领域,尤其涉及一种操作***的资源配置检测方法和装置,用于实现在编译前检测***资源配置是否冲突,避免***资源配置冲突导致的操作***运行出错。在目标项目的源代码编译之前,获取目标项目的源代码;源代码中包括目标项目对应的配置文件;解析配置文件,得到配置文件的配置信息;配置信息包括各节点的节点信息和属性配置信息;若确定配置信息中包括的节点信息或属性配置信息存在资源配置冲突,则确定目标项目的源代码存在资源配置冲突。如此,可以实现在目标项目的操作***的源代码编译之前,检测出操作***的资源配置是否冲突,进而避免***资源配置冲突导致的操作***运行出错,可以节省重新固化运行程序的时间。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种操作***的资源配置检测方法和装置。
背景技术
随着互联网技术的快速发展,计算机设备越来越普遍。操作***(OperatingSystem,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,通过操作***可以实现计算机设备的多种功能以及人机交互。
现有技术中的操作***构建过程中,开发人员使用编程语言开发源代码,其中源代码中包括对***资源进行配置的相关配置信息。在源代码开发完成之后,将源代码编译成机器可识别的编程语言得到目标代码,再在目标板上完成固化程序并运行。现有技术中,如果目标代码中存在配置信息冲突,比如出现操作***的资源配置错误、资源分配冲突等问题,只能在目标代码安装在目标板上运行时才能发现。此时,只能重新固化运行程序以完成操作***安装,浪费大量时间。
发明内容
本发明实施例提供一种操作***的资源配置检测方法和装置,用以实现在编译前检测出操作***的资源配置是否冲突,避免***资源配置冲突导致的操作***运行出错,进而节省重新固化运行程序的时间。
本发明实施例提供一种操作***的资源配置检测方法,包括:
在目标项目的源代码编译之前,获取所述目标项目的源代码;所述源代码中包括所述目标项目对应的配置文件;
解析所述配置文件,得到所述配置文件的配置信息;所述配置信息包括各节点的节点信息和各节点的属性配置信息;
若确定所述配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述目标项目的源代码存在资源配置冲突。
可选的,所述配置文件包括的各节点中至少存在两个节点为父子关系;所述若确定所述配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述目标项目的源代码存在资源配置冲突,包括:若所述配置信息满足第一预设条件中的任一项,则确定所述目标项目的源代码存在资源配置冲突;其中,所述第一预设条件包括:所述配置文件中为每个节点分配的空间块中存在至少两个空间块名称一致;所述配置文件中为每个节点分配的空间块中存在至少两个空间块地址重叠,且重叠部分对应的地址段为非共享地址段;所述配置文件中为每个节点分配的空间块中存在至少一个父节点的空间块容量小于所述父节点的子节点的空间块容量的总和;所述目标项目为至少一个应用项目,且所述至少一个应用项目对应的分区操作***中存在至少两个分区名称一致。
可选的,所述配置信息中还包括所述目标项目的源代码格式;所述在目标项目的源代码编译之前,还包括:获取所述目标项目对应的配置规则文件;所述配置规则文件包括与所述目标项目相关的预定义代码格式、软硬件特性参数;所述若所述配置信息中包括至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述目标项目的源代码存在资源配置冲突,包括:若所述目标项目的源代码格式与所述预定义代码格式不一致,或各节点的属性配置信息与所述软硬件特性参数不一致,则确定所述目标项目的源代码存在资源配置冲突。
可选的,所述确定所述目标项目的源代码存在资源配置冲突之后,还包括:确定出存在资源配置冲突的节点的节点信息和属性配置信息,并上报提示信息;所述提示信息用于指示所述存在资源配置冲突的节点的节点信息、属性配置信息、以及所述属性配置信息在所述配置文件中的路径信息。
可选的,所述目标项目包括以下内容中的任一项:BOOT项目、OS项目和至少一个应用项目;所述若所述配置信息中包括至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述目标项目的源代码存在资源配置冲突,包括:若目标项目为BOOT项目,则:根据所述BOOT项目对应的第一配置文件的配置信息,若确定所述第一配置信息中包括至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述BOOT项目的源代码存在资源配置冲突;若目标项目为OS项目,则:根据所述OS项目对应的配置文件的第二配置信息和BOOT项目对应的配置文件的第一配置信息,若确定所述第一配置信息和所述第二配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述OS项目的源代码存在资源配置冲突;若目标项目为应用项目,则根据所述应用项目对应的配置文件的第三配置信息、所述OS项目对应的配置文件的第二配置信息、以及所述BOOT项目对应的配置文件的第一配置信息,若确定所述第一配置信息、所述第二配置信息和所述第三配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述应用项目的源代码存在资源配置冲突。
本发明实施例提供一种操作***的资源配置检测装置,包括:
获取单元,用于在目标项目的源代码编译之前,获取所述目标项目的源代码;所述源代码中包括所述目标项目对应的配置文件;
解析单元,用于解析所述配置文件,得到所述配置文件的配置信息;所述配置信息包括各节点的节点信息和各节点的属性配置信息;
处理单元,用于若确定所述配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述目标项目的源代码存在资源配置冲突。
可选的,所述配置文件包括的各节点中至少存在两个节点为父子关系;所述处理单元,用于:若所述配置信息满足第一预设条件中的任一项,则确定所述目标项目的源代码存在资源配置冲突;其中,所述第一预设条件包括:所述配置文件中为每个节点分配的空间块中存在至少两个空间块名称一致;所述配置文件中为每个节点分配的空间块中存在至少两个空间块地址重叠,且重叠部分对应的地址段为非共享地址段;所述配置文件中为每个节点分配的空间块中存在至少一个父节点的空间块容量小于所述父节点的子节点的空间块容量的总和;所述目标项目为至少一个应用项目,且所述至少一个应用项目对应的分区操作***中存在至少两个分区名称一致。
可选的,所述配置文件中还包括所述目标项目的源代码格式;所述获取单元,还用于:获取所述目标项目对应的配置规则文件;所述配置规则文件包括与所述目标项目相关的预定义代码格式、软硬件特性参数;所述处理单元,用于:若确定所述目标项目的源代码格式与所述预定义代码格式不一致,或各节点的属性配置信息与所述软硬件特性参数不一致,则确定所述目标项目的源代码存在资源配置冲突。
可选的,所述处理单元,还用于:确定出存在资源配置冲突的节点的节点信息和属性配置信息,并上报提示信息;所述提示信息用于指示所述存在资源配置冲突的节点的节点信息、属性配置信息、以及所述属性配置信息在所述配置文件中的路径信息。
可选的,所述目标项目包括以下内容中的任一项:BOOT项目、OS项目和至少一个应用项目;所述处理单元,用于:若目标项目为BOOT项目,则根据所述BOOT项目对应的配置文件的第一配置信息,若确定所述第一配置信息中包括至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述BOOT项目的源代码存在资源配置冲突;若目标项目为OS项目,则根据所述OS项目对应的配置文件的第二配置信息和BOOT项目对应的配置文件的第一配置信息,若确定所述第一配置信息和所述第二配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述OS项目的源代码存在资源配置冲突;若目标项目为应用项目,则根据所述应用项目对应的配置文件的第三配置信息、所述OS项目对应的配置文件的第二配置信息、以及所述BOOT项目对应的配置文件的第一配置信息,若确定所述第一配置信息、所述第二配置信息和所述第三配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述应用项目的源代码存在资源配置冲突。
本发明实施例中,在目标项目的源代码编译之前,获取目标项目的源代码;源代码中包括目标项目对应的配置文件;解析配置文件,得到配置文件的配置信息;配置信息包括各节点的节点信息和各节点的属性配置信息;若确定配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定目标项目的源代码存在资源配置冲突。如此,可以实现在目标项目的操作***的源代码编译之前,检测出操作***的资源配置是否冲突,进而避免***资源配置冲突导致的操作***运行出错,可以节省重新固化运行程序的时间。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
图1为本发明实施例提供的一种分区操作***架构示意图;
图2为本发明实施例提供的一种操作***的资源配置检测方法流程示意图;
图3为本发明实施例提供的物理空间配置信息示意图;
图4为本发明实施例提供的子节点一的物理空间配置信息示意图;
图5为本发明实施例提供的子节点二的物理空间配置信息示意图;
图6为本发明实施例提供的一种操作***的资源配置检测装置结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
本发明实施例中,开发人员在开发操作***形成源代码之后,针对源代码中的对***资源配置的相关配置信息进行检测,以实现在目标项目的源代码编译之前,检测出操作***的资源配置是否冲突,进而避免***资源配置出现错误或冲突导致的操作***运行出错。可选的,本发明实施例中的操作***可以为包括BOOT项目、OS项目的操作***,也可以是包括BOOT项目、OS项目和至少一个应用项目的分区操作***。以下提供一种操作***的示例。
图1示例性示出了本发明实施例适用的一种分区操作***架构示意图。
如图1所示,该种分区操作***架构中包括应用层、操作***层和BOOT***110。操作***层包括核心操作***120和分区操作***130,核心操作***120运行于BOOT***110之上,分区操作***130运行于核心操作***120之上。
上述核心操作***120可以若干个核心分区,主要包括以下两种类型:初始化核心分区和其它核心分区。其中,初始化核心分区必须配置,主要用于初始化时间调度表、启动配置为自启动的其它核心分区、设置中断栈保护等。可选的,其它核心分区中还可以包括调试分区,用于在核心操作***启动下载分区操作***130。
分区操作***130可以包括至少一个分区***,如图1所示,分区操作***130包括分区***131、分区***132和分区***133。应用层包括分区应用141、分区应用142和分区应用143。
上述分区***131和分区应用141在分区一中,分区***132和分区应用142在分区二中,分区***133和分区应用143在分区三中。其中,分区一、分区二和分区三中,每个分区中包含***所分配的资源,而且分区与分区之间相互隔离。
下面基于图1中的操作***为例进行操作***的资源配置检测方法的介绍。
基于图1所示的***架构,图2示例性示出了本发明实施例提供的一种操作***的资源配置检测方法流程示意图。如图2所示,该方法包括以下步骤:
步骤201:在目标项目的源代码编译之前,获取目标项目的源代码;源代码中包括目标项目对应的配置文件;
步骤202:解析配置文件,得到配置文件的配置信息;配置信息包括各节点的节点信息和各节点的属性配置信息;
步骤203:若确定所述配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定目标项目的源代码存在资源配置冲突。
本发明实施例中,在目标项目的源代码编译之前,获取目标项目的源代码;源代码中包括目标项目对应的配置文件;解析配置文件,得到配置文件的配置信息;配置信息包括各节点的节点信息和各节点的属性配置信息;若确定配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定目标项目的源代码存在资源配置冲突。如此,可以实现在目标项目的操作***的源代码编译之前,检测出操作***的资源配置是否冲突,进而避免***资源配置冲突导致的操作***运行出错,可以节省重新固化运行程序的时间。
基于步骤201,目标项目包括以下内容中的任一项:BOOT项目、OS项目和至少一个应用项目。
以操作***包括BOOT***、核心操作***和分区***为例,该操作***的源代码包括BOOT项目、OS项目和两个应用项目对应的源代码。当开发人员开发该操作***时,先开发BOOT***,也就是说,此时目标项目为BOOT项目。当开发人员开发核心操作***,此时的目标项目为OS项目;当开发人员开发分区***,此时目标项目为应用项目。
上述BOOT***、核心操作***和分区***对应的配置文件的类型不同。其中OS项目包括以下四种类型的配置文件,分别为:***配置文件、映像配置文件、链接配置文件和CPU配置文件。而BOOT***和分区***均包括三种类型的配置文件,分别为:映像配置文件、链接配置文件和CPU配置文件。
本发明实施例中,上述步骤201中,以目标项目为OS项目为例,获取OS项目的源代码,其中包括***配置文件、映像配置文件、链接配置文件和CPU配置文件,在编译之前,获得源代码之后,可以针对任一种类型的配置文件的配置信息进行检测,也可以同时针对多种类型的配置文件的配置信息进行检测,还可以针对不同的目标项目对应的配置文件的配置信息进行检测。比如,开发人员对映像配置文件中的配置信息进行了修改或添加,那么可以通过操作***的资源配置检测装置检测该映像配置文件中修改或添加的配置信息是否与该映像配置文件中的其它配置信息存在资源冲突,也可以检测该映像配置文件中修改或添加的配置信息是否与其它类型的配置文件的配置信息存在资源冲突。
下面针对上述几种类型的配置文件中的配置信息进行说明。
***配置文件主要包括:对目标板设备配置、物理空间配置、空间关系配置、调度配置、资源配置进行配置的配置信息。
映像配置文件主要包括:对映像的加载地址、映像运行位置、要搬移的段进行配置的配置信息。
链接配置文件主要包括:对各个段存放的位置、各个段存放的顺序进行配置的配置信息。
CPU配置文件主要包括:对CPU的各类属性进行配置的配置信息。
上述几种类型的配置文件中,每种配置文件包括的所有的配置信息之间的关系可以用树状图来表示。可选的,配置文件包括的各节点中至少存在两个节点为父子关系。
以***配置文件为例,其中包括的目标板设备配置信息、物理空间配置信息、空间关系配置信息、调度配置信息、资源配置信息均为root节点。每个root节点包括至少一个根节点,比如物理空间配置信息中包括***设备空间配置信息和内核空间配置信息都是根节点。每个根节点包括至少一个子节点,比如***设备空间配置信息包括为鼠标分配的空间一、为键盘分配的空间二等,那么空间一和空间二都是***设备空间配置信息的子节点。
一种可实现步骤203的实施方式中,若配置信息满足第一预设条件中的任一项,则确定目标项目的源代码存在资源配置冲突。其中,第一预设条件包括以下几种情况:
第一种情况,配置文件中为每个节点分配的空间块中存在至少两个空间块名称一致;比如配置文件中存在两个空间块重名,此时操作***的资源配置检测装置确定出该目标项目对应的源代码存在资源配置冲突。
第二种情况,配置文件中为每个节点分配的空间块中存在至少两个空间块地址重叠;比如,父节点的空间起始地址为0x100000,大小为0x500000;父节点下包括三个子节点,分别为子节点一、子节点二和子节点三。其中,子节点一的空间块一起始地址为0x100000,大小为0x100000,子节点二的空间块二起始地址为0x200000,大小为0x200000;子节点三的空间块三起始地址为0x300000,大小为0x100000;可见,空间块二和空间块三存在地址重叠,从0x300000开始至0x400000为重叠部分对应的地址段,此时操作***的资源配置检测装置确定出该目标项目对应的源代码存在资源配置冲突。
第三种情况,配置文件中为每个节点分配的空间块中存在至少一个父节点的空间块容量小于父节点包括的子节点的空间块容量的总和。
针对上述第三种情况举如下示例,图3-5中示出了物理空间配置信息示意图。
如图3所示的父节点包括两个子节点,父节点的节点信息为bootImageRamSpace,子节点一的节点信息为bootRamSpace,子节点二的节点信息为ethShareRamSpace。该父节点的属性配置信息包括:物理空间起始地址(0x)*为120000,物理空间大小(0x)*为2B0000。
如图4所示,子节点一的属性配置信息包括:物理空间起始地址(0x)*为120000,物理空间大小(0x)*为800000。
如图5所示,子节点二的属性配置信息包括:物理空间起始地址(0x)*为300000,物理空间大小(0x)*为20000。
由图3至图5可见,子节点一的物理空间容量超出了父节点的空间容量,此时操作***的资源配置检测装置会确定出该目标项目对应的源代码存在资源配置冲突。
第四种情况,目标项目为至少一个应用项目,且至少一个应用项目对应的分区操作***中存在至少两个分区名称一致。比如图1中的包括的三个分区:分区一、分区二和分区三,如果任意两个分区的分区名称一致,那么操作***的资源配置检测装置会确定出该目标项目对应的源代码存在资源配置冲突。
本发明实施例中,配置信息满足上述四种情况中的任一种,就可以确定目标项目的源代码存在资源配置冲突,如此,可以在目标项目的操作***的源代码编译之前,检测出操作***的资源配置存在冲突,进而可以及时进行配置信息的修改,避免***资源配置冲突导致的操作***运行出错,节省重新固化运行程序的时间。
另一种可实现步骤203的实施方式中,配置文件中除了包括上述配置信息,还包括目标项目的源代码格式;可选的,在目标项目的源代码编译之前,还包括:获取目标项目对应的配置规则文件;配置规则文件包括与目标项目相关的预定义代码格式和软硬件特性参数。所述若所述配置信息中包括至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定目标项目的源代码存在资源配置冲突,包括以下两种情况:
第一种情况,若确定目标项目的源代码格式与预定义代码格式不一致,则确定目标项目的源代码存在资源配置冲突。其中,预定义代码格式可以包括但不限于预定义变量类型、预定义变量范围、以及预定义数制类型等。
举个例子,比如预定义变量类型为常用的C语言类型,那么用户在配置的过程中不能超过该预定义变量类型的长度范围,若目标项目的源代码中的变量类型的长度超出了该预定义变量类型的长度范围,则确定出目标项目的源代码存在资源配置冲突。再比如,预定义变量范围是指用户在配置的过程中只能从下拉菜单中选择预设的变量,不得自定义变量;若目标项目的源代码中采用了自定义的变量,则确定出目标项目的源代码存在资源配置冲突。再比如,预定义数制类型为十六进制,数用0,1,…,9和A,B,…,F(或a,b,…,f)16个符号来描述;若目标项目的源代码中采用的数的符号不在上述16个符号中,则确定出目标项目的源代码存在资源配置冲突。
第二种情况,若确定各节点的属性配置信息与所述软硬件特性参数不一致,则确定所述目标项目的源代码存在资源配置冲突。其中,软硬件特性参数包括但不限于目标板上的各类硬件的特性参数,比如CPU的属性参数。
上述两种情况中,根据配置规则文件包括与目标项目相关的预定义代码格式和软硬件特性参数、以及配置信息,可以在目标项目的操作***的源代码编译之前,检测出操作***的资源配置存在冲突,进而可以及时进行配置信息的修改,避免***资源配置冲突导致的操作***运行出错,节省重新固化运行程序的时间。
本发明实施例中,确定目标项目的源代码存在资源配置冲突之后,还包括:确定出存在资源配置冲突的节点的节点信息和属性配置信息,并上报提示信息;提示信息用于指示存在资源配置冲突的节点的节点信息、属性配置信息、以及属性配置信息在配置文件中的路径信息。如此,使用者可以及时的发现存在资源配置冲突的冲突点,并进行后续的修改操作,节省时间。
可选的,上述提示信息根据资源配置冲突的等级可以分为:错误提示、警告提示。
错误提示表示提示的问题会导致该目标项目对应的操作***无法运行,在错误提示的情况下,该目标项目的源代码也不能继续进行编译,在修改之后不存在资源配置冲突的问题的情况下才能继续编译;错误提示的格式可以为:+checkerror,{msg="错误信息",file="配置文件",location_en="英文路径",location_ch="中文路径"}。
警告提示表示提示的问题可能影响、也可能不影响该目标项目对应的操作***运行,比如为某个父节点配置了较大容量的物理空间,但是并未将该物理空间的容量全部分配给该父节点的子节点。警告提示的格式可以为:+checkinfo,{msg="错误信息",file="配置文件",location_en="英文路径",location_ch="中文路径"}。
可选的,在根据配置信息确定目标项目的源代码不存在资源配置冲突的情况下,还可以采用可视化界面进行提醒。提醒表示配置信息并未出现任何错误或警告,纯提示性信息,比如开发人员没改动配置信息中的一条信息,就出现一条提醒。
本发明实施例中,由于核心操作***运行在BOOT***之上,分区***运行于核心操作***之上。在BOOT***配置完成并确定BOOT***不存在资源配置冲突的情况下,继续对核心操作***进行配置和检查;若检查核心操作***不存在资源配置冲突之后,再针对分区***进行配置和检查。
一种可选的实施方式中,若配置信息中包括至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定目标项目的源代码存在资源配置冲突,包括以下几种情形:
情形一、若目标项目为BOOT项目,则:根据BOOT项目对应的配置文件的第一配置信息,若确定所述第一配置信息中包括至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定BOOT项目的源代码存在配置冲突。如此,可以在BOOT项目对应的操作***完成配置之后进行检查,及时发现BOOT项目是否存在资源配置冲突。
情形二、若目标项目为OS项目,则:根据OS项目对应的配置文件的第二配置信息和BOOT项目对应的配置文件的第一配置信息,若确定所述第一配置信息和所述第二配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定OS项目的源代码存在资源配置冲突。由于OS项目对应的操作***运行在BOOT项目对应的操作***之上,需要对OS项目对应的配置文件的配置信息内部是否存在资源配置冲突,还要对OS项目对应的配置文件的配置信息与BOOT项目对应的配置文件的配置信息之间是否存在资源配置冲突进行检查,如此,可以避免包括BOOT项目和OS项目的操作***在运行时出错,可以节省重新固化运行程序的时间。
情形三、若目标项目为应用项目,则:根据应用项目对应的配置文件的第三配置信息、OS项目对应的配置文件的第二配置信息、以及BOOT项目对应的配置文件的第一配置信息,若确定所述第一配置信息、所述第二配置信息和所述第三配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定应用项目的源代码存在资源配置冲突。如此,不仅可以确定出应用项目对应的配置文件的配置信息内部是否存在资源配置冲突,而且可以确定出BOOT项目和OS项目对应的配置文件的配置信息之间是否存在资源配置冲突,还可以确定出BOOT项目、OS项目、以及应用项目对应的配置文件的配置信息之间是否存在资源配置冲突,可以避免包括BOOT项目、OS项目和应用项目的操作***在运行时出错,可以节省重新固化运行程序的时间。
从上述内容可以看出:在目标项目的源代码编译之前,获取目标项目的源代码;源代码中包括目标项目对应的配置文件;解析配置文件,得到配置文件的配置信息;配置信息包括各节点的节点信息和各节点的属性配置信息;若确定配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定目标项目的源代码存在资源配置冲突。如此,可以实现在目标项目的操作***的源代码编译之前,检测出操作***的资源配置是否冲突,进而避免***资源配置冲突导致的操作***运行出错,可以节省重新固化运行程序的时间。
基于相同构思,本发明实施例提供一种操作***的资源配置检测装置,用于执行上述任一实施例中的操作***的资源配置检测方法流程,图6示例性示出了本发明实施例提供的一种操作***的资源配置检测装置的结构示意图。
如图6所示,该操作***的资源配置检测装置600,包括获取单元601、解析单元602和处理单元603;其中:
获取单元601,用于在目标项目的源代码编译之前,获取所述目标项目的源代码;所述源代码中包括所述目标项目对应的配置文件;
解析单元602,用于解析所述配置文件,得到所述配置文件的配置信息;所述配置信息包括各节点的节点信息和各节点的属性配置信息;
处理单元603,用于若确定所述配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述目标项目的源代码存在资源配置冲突。
本发明实施例中,在目标项目的源代码编译之前,获取目标项目的源代码;源代码中包括目标项目对应的配置文件;解析配置文件,得到配置文件的配置信息;配置信息包括各节点的节点信息和各节点的属性配置信息;若确定配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定目标项目的源代码存在资源配置冲突。如此,可以实现在目标项目的操作***的源代码编译之前,检测出操作***的资源配置是否冲突,进而避免***资源配置冲突导致的操作***运行出错,可以节省重新固化运行程序的时间。
可选的,所述配置文件包括的各节点中至少存在两个节点为父子关系;所述处理单元603,用于:若所述配置信息满足第一预设条件中的任一项,则确定所述目标项目的源代码存在资源配置冲突;其中,所述第一预设条件包括:所述配置文件中为每个节点分配的空间块中存在至少两个空间块名称一致;所述配置文件中为每个节点分配的空间块中存在至少两个空间块地址重叠,且重叠部分对应的地址段为非共享地址段;所述配置文件中为每个节点分配的空间块中存在至少一个父节点的空间块容量小于所述父节点的子节点的空间块容量的总和;所述目标项目为至少一个应用项目,且所述至少一个应用项目对应的分区操作***中存在至少两个分区名称一致。
可选的,所述配置文件中还包括所述目标项目的源代码格式;所述获取单元601,还用于:获取所述目标项目对应的配置规则文件;所述配置规则文件包括与所述目标项目相关的预定义代码格式、软硬件特性参数;所述处理单元603,用于:若确定所述目标项目的源代码格式与所述预定义代码格式不一致,或各节点的属性配置信息与所述软硬件特性参数不一致,则确定所述目标项目的源代码存在资源配置冲突。
可选的,所述处理单元603,还用于:确定出存在资源配置冲突的节点的节点信息和属性配置信息,并上报提示信息;所述提示信息用于指示所述存在资源配置冲突的节点的节点信息、属性配置信息、以及所述属性配置信息在所述配置文件中的路径信息。
可选的,所述目标项目包括以下内容中的任一项:BOOT项目、OS项目和至少一个应用项目;所述处理单元,用于:若目标项目为BOOT项目,则:根据所述BOOT项目对应的配置文件的第一配置信息,若确定所述第一配置信息中包括至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述BOOT项目的源代码存在配置冲突;若目标项目为OS项目,则:根据所述OS项目对应的配置文件的第二配置信息和BOOT项目对应的配置文件的第一配置信息,若确定所述第一配置信息和所述第二配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述OS项目的源代码存在资源配置冲突;若目标项目为应用项目,则:根据所述应用项目对应的配置文件的第三配置信息、所述OS项目对应的配置文件的第二配置信息、以及所述BOOT项目对应的配置文件的第一配置信息,若确定所述第一配置信息、所述第二配置信息和所述第三配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述应用项目的源代码存在资源配置冲突。
应理解,以上各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。
本领域内的技术人员应明白,本发明实施例可提供为方法、***、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种操作***的资源配置检测方法,其特征在于,包括:
在目标项目的源代码编译之前,获取所述目标项目的源代码;所述源代码中包括所述目标项目对应的配置文件;
解析所述配置文件,得到所述配置文件的配置信息;所述配置信息包括各节点的节点信息和各节点的属性配置信息;
若确定所述配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述目标项目的源代码存在资源配置冲突。
2.如权利要求1所述的方法,其特征在于,所述配置文件包括的各节点中至少存在两个节点为父子关系;
所述若确定所述配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述目标项目的源代码存在资源配置冲突,包括:
若所述配置信息满足第一预设条件中的任一项,则确定所述目标项目的源代码存在资源配置冲突;其中,所述第一预设条件包括:
所述配置文件中为每个节点分配的空间块中存在至少两个空间块名称一致;
所述配置文件中为每个节点分配的空间块中存在至少两个空间块地址重叠,且重叠部分对应的地址段为非共享地址段;
所述配置文件中为每个节点分配的空间块中存在至少一个父节点的空间块容量小于所述父节点的子节点的空间块容量的总和;
所述目标项目为至少一个应用项目,且所述至少一个应用项目对应的分区操作***中存在至少两个分区名称一致。
3.如权利要求1所述的方法,其特征在于,所述配置信息中还包括所述目标项目的源代码格式;
所述在目标项目的源代码编译之前,还包括:
获取所述目标项目对应的配置规则文件;所述配置规则文件包括与所述目标项目相关的预定义代码格式、软硬件特性参数;
所述若确定所述配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述目标项目的源代码存在资源配置冲突,包括:
若确定所述目标项目的源代码格式与所述预定义代码格式不一致,或各节点的属性配置信息与所述软硬件特性参数不一致,则确定所述目标项目的源代码存在资源配置冲突。
4.如权利要求1所述的方法,其特征在于,所述确定所述目标项目的源代码存在资源配置冲突之后,还包括:
确定出存在资源配置冲突的节点的节点信息和属性配置信息,并上报提示信息;所述提示信息用于指示所述存在资源配置冲突的节点的节点信息、属性配置信息、以及所述属性配置信息在所述配置文件中的路径信息。
5.如权利要求1至4中任一权利要求所述的方法,其特征在于,所述目标项目包括以下内容中的任一项:
BOOT项目、OS项目和至少一个应用项目;
所述若确定所述配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述目标项目的源代码存在资源配置冲突,包括:
若目标项目为BOOT项目,则:
根据所述BOOT项目对应的配置文件的第一配置信息,若确定所述第一配置信息中包括至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述BOOT项目的源代码存在资源配置冲突;
若目标项目为OS项目,则:
根据所述OS项目对应的配置文件的第二配置信息和BOOT项目对应的配置文件的第一配置信息,若确定所述第一配置信息和所述第二配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述OS项目的源代码存在资源配置冲突;
若目标项目为应用项目,则:
根据所述应用项目对应的配置文件的第三配置信息、所述OS项目对应的配置文件的第二配置信息、以及所述BOOT项目对应的配置文件的第一配置信息,若确定所述第一配置信息、所述第二配置信息和所述第三配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述应用项目的源代码存在资源配置冲突。
6.一种操作***的资源配置检测装置,其特征在于,包括:
获取单元,用于在目标项目的源代码编译之前,获取所述目标项目的源代码;所述源代码中包括所述目标项目对应的配置文件;
解析单元,用于解析所述配置文件,得到所述配置文件的配置信息;所述配置信息包括各节点的节点信息和各节点的属性配置信息;
处理单元,用于若确定所述配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述目标项目的源代码存在资源配置冲突。
7.如权利要求6所述的装置,其特征在于,所述配置文件包括的各节点中至少存在两个节点为父子关系;
所述处理单元,用于:
若所述配置信息满足第一预设条件中的任一项,则确定所述目标项目的源代码存在资源配置冲突;其中,所述第一预设条件包括:
所述配置文件中为每个节点分配的空间块中存在至少两个空间块名称一致;
所述配置文件中为每个节点分配的空间块中存在至少两个空间块地址重叠,且重叠部分对应的地址段为非共享地址段;
所述配置文件中为每个节点分配的空间块中存在至少一个父节点的空间块容量小于所述父节点的子节点的空间块容量的总和;
所述目标项目为至少一个应用项目,且所述至少一个应用项目对应的分区操作***中存在至少两个分区名称一致。
8.如权利要求6所述的装置,其特征在于,所述配置文件中还包括所述目标项目的源代码格式;
所述获取单元,还用于:
获取所述目标项目对应的配置规则文件;所述配置规则文件包括与所述目标项目相关的预定义代码格式、软硬件特性参数;
所述处理单元,用于:
若确定所述目标项目的源代码格式与所述预定义代码格式不一致,或各节点的属性配置信息与所述软硬件特性参数不一致,则确定所述目标项目的源代码存在资源配置冲突。
9.如权利要求6所述的装置,其特征在于,所述处理单元,还用于:
确定出存在资源配置冲突的节点的节点信息和属性配置信息,并上报提示信息;所述提示信息用于指示所述存在资源配置冲突的节点的节点信息、属性配置信息、以及所述属性配置信息在所述配置文件中的路径信息。
10.如权利要求6至9中任一权利要求所述的装置,其特征在于,所述目标项目包括以下内容中的任一项:
BOOT项目、OS项目和至少一个应用项目;
所述处理单元,用于:
若目标项目为BOOT项目,则:
根据所述BOOT项目对应的配置文件的第一配置信息,若确定所述第一配置信息中包括至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述BOOT项目的源代码存在资源配置冲突;
若目标项目为OS项目,则:
根据所述OS项目对应的配置文件的第二配置信息和BOOT项目对应的配置文件的第一配置信息,若确定所述第一配置信息和所述第二配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述OS项目的源代码存在资源配置冲突;
若目标项目为应用项目,则:
根据所述应用项目对应的配置文件的第三配置信息、所述OS项目对应的配置文件的第二配置信息、以及所述BOOT项目对应的配置文件的第三配置信息,若确定所述第一配置信息、所述第二配置信息和所述第三配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述应用项目的源代码存在资源配置冲突。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711364825.1A CN108108300B (zh) | 2017-12-18 | 2017-12-18 | 一种操作***的资源配置检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711364825.1A CN108108300B (zh) | 2017-12-18 | 2017-12-18 | 一种操作***的资源配置检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108108300A CN108108300A (zh) | 2018-06-01 |
CN108108300B true CN108108300B (zh) | 2020-06-16 |
Family
ID=62209780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711364825.1A Active CN108108300B (zh) | 2017-12-18 | 2017-12-18 | 一种操作***的资源配置检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108108300B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209591A (zh) * | 2019-06-05 | 2019-09-06 | 北京字节跳动网络技术有限公司 | 图片查找方法、装置、电子设备及存储介质 |
CN114168294B (zh) * | 2021-12-10 | 2024-07-02 | 北京字节跳动网络技术有限公司 | 编译资源分配方法、装置、电子设备及存储介质 |
CN114726756A (zh) * | 2022-03-30 | 2022-07-08 | 联想(北京)有限公司 | 一种配置监测方法及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110712A (zh) * | 2007-08-30 | 2008-01-23 | 华为技术有限公司 | 用于地址冲突的重复地址检测方法及网络节点设备 |
CN103235745A (zh) * | 2013-03-27 | 2013-08-07 | 华为技术有限公司 | 一种地址冲突检测方法及装置 |
CN103645930A (zh) * | 2013-12-18 | 2014-03-19 | 中国科学院声学研究所 | 汇编级跨文件调度框架的构建方法 |
CN103646055A (zh) * | 2013-11-29 | 2014-03-19 | 广州视源电子科技股份有限公司 | 一种程序配置信息的获取方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130332778A1 (en) * | 2012-06-07 | 2013-12-12 | Vmware, Inc. | Performance-imbalance-monitoring processor features |
-
2017
- 2017-12-18 CN CN201711364825.1A patent/CN108108300B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110712A (zh) * | 2007-08-30 | 2008-01-23 | 华为技术有限公司 | 用于地址冲突的重复地址检测方法及网络节点设备 |
CN103235745A (zh) * | 2013-03-27 | 2013-08-07 | 华为技术有限公司 | 一种地址冲突检测方法及装置 |
CN103646055A (zh) * | 2013-11-29 | 2014-03-19 | 广州视源电子科技股份有限公司 | 一种程序配置信息的获取方法和装置 |
CN103645930A (zh) * | 2013-12-18 | 2014-03-19 | 中国科学院声学研究所 | 汇编级跨文件调度框架的构建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108108300A (zh) | 2018-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10216509B2 (en) | Continuous and automatic application development and deployment | |
CN107193750B (zh) | 一种脚本录制方法和装置 | |
CN106933733B (zh) | 一种确定内存泄露位置的方法和装置 | |
US20180046497A1 (en) | Application profiling job management system, program, and method | |
CN107766050B (zh) | 一种异构应用的部署方法以及装置 | |
CN108108300B (zh) | 一种操作***的资源配置检测方法和装置 | |
US8046692B2 (en) | User interface mapping modules to deployment targets | |
US20170220458A1 (en) | Orchestrating and providing a regression test | |
CN107766130B (zh) | 虚拟机向容器迁移的方法和装置 | |
US10983904B1 (en) | Test automation for data processing | |
US20150363195A1 (en) | Software package management | |
US8087015B2 (en) | Assignment of application models to deployment targets | |
US9870314B1 (en) | Update testing by build introspection | |
US11693635B1 (en) | Automatic code reconfiguration based on function and subfunction analysis | |
CN112631737A (zh) | 容器镜像构建方法、装置、电子设备及存储介质 | |
CN107179982B (zh) | 一种跨进程调试方法和装置 | |
CN114518884A (zh) | 修复弱内存序问题的方法及装置 | |
JP6879625B2 (ja) | プログラマブルコントローラ、管理装置および制御システム | |
CN108334333B (zh) | 一种源代码库更新方法及装置 | |
CN105446760B (zh) | 用于应用安装的方法和装置 | |
US20240134637A1 (en) | Symbol-matching between software versions | |
US20130246347A1 (en) | Database file groups | |
CN111857854A (zh) | 关机资源加载方法、装置、存储介质和电子设备 | |
US11550697B2 (en) | Cross jobs failure dependency in CI/CD systems | |
JP2017129970A (ja) | 管理装置,管理方法および管理プログラム |
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 | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20180601 Assignee: Kedong (Guangzhou) Software Technology Co., Ltd Assignor: Beijing Dongtu Technology Co., Ltd.|Beijing keyin Jingcheng Technology Co., Ltd Contract record no.: X2020980000255 Denomination of invention: Resource configuration detection method and device for operating system License type: Exclusive License Record date: 20200218 |
|
GR01 | Patent grant | ||
GR01 | Patent grant |