一种接口感知的编译配置项补全方法、系统和介质

文档序号:32820395发布日期:2023-01-04 05:27阅读:74来源:国知局
一种接口感知的编译配置项补全方法、系统和介质

1.本发明涉及linux操作系统的内核编译定制技术,具体涉及一种接口感知的编译配置项补全方法、系统和介质。


背景技术:

2.linux内核社区数千名开发人员参与其中,持续的提交各种类型的机制、特性和设备支持代码。以5.8版本为例,内核包含69,325个文件和28,442,673 行代码,这些代码构造了15000多的内核机制和特性。为了满足对多类型软硬件需求的灵活支持,内核开发者将内核中包含的各种特性以配置项的方式加以表示,在内核配置元文件kconfig中明确定义出来,编译配置程序将这些配置项以配置菜单的形式呈现给内核系统定制者,用于选择哪些配置需要生效,支持系统设计者通过配置项的组合构造出支持各类软硬件系统的内核映像和模块。内核的编译定制就具化为确定配置项集合的过程。
3.内核编译配置项用于配置内核应该包含哪些功能模块,同时也就决定了包含哪些内核的接口。当应用需要某些接口时,目前为人工定义所需的配置项或内核模块,但是由于不同人对于所需的熟悉程度不同,可能定义所需的配置项或内核模块往往会存在遗漏或者多余,导致内核编译出现问题。因此,如何实现接口感知的内核编译配置项的补全,已成为一项亟待解决的关键技术问题。


技术实现要素:

4.本发明要解决的技术问题:针对现有技术的上述问题,提供一种接口感知的编译配置项补全方法、系统和介质,本发明面向内核兼容性保障问题,通过关注内核编译时配置项对内核接口的影响,支持快速定位出配置项所影响到的内核函数和内核关键接口,从而能够实现接口感知的编译配置项自动补全,在实现内核兼容性保障的前提下,提升内核编译定制的效率和周期。
5.为了解决上述技术问题,本发明采用的技术方案为:一种接口感知的编译配置项补全方法,包括:s101,针对给定的接口集合i,根据预设的配置项-接口关系cig得到接口集合i对应的关联配置项集合ci
relevance
;s102,针对关联配置项集合ci
relevance
进行自洽性计算,若任意配置项对发生冲突则判定自洽性不成立,将所有发生冲突的配置项所对应的接口加入互斥接口对集合i
exclusive
,最终输出互斥接口对集合i
exclusive
,结束并退出;否则跳转下一步;s103,针对关联配置项集合ci
relevance
,根据预设的配置项-配置项关系cg得到对应的全部配置项,针对全部配置项进行自洽性计算,若任意配置项对发生冲突则判定自洽性不成立,将所有发生冲突的配置项加入互斥配置项集合对ci
exclusive
,最终输出互斥配置项集合对ci
exclusive
,结束并退出;否则,根据给定的内核配置项集合ci得到所需补全的配置项ci
completion
并输出。
6.可选地,所述配置项-接口关系cig中包含有配置项、接口之间关联关系。
7.可选地,所述配置项-接口关系cig中包含的配置项、接口之间关联关系包括互斥和依赖两种关联关系。
8.可选地,步骤s101之前还包括生成配置项-接口关系cig的步骤:扫描内核编译所需的编译文件makefile,从编译文件makefile中分析提取出配置项和后缀为“.o”的输出文件之间的关系,得到配置项对应的输出文件列表;扫描后缀为“.o”的输出文件所对应的后缀为“.c”的源文件,从后缀为“.c”的源文件中分析提取出所有的接口,生成配置项对应的接口描述文件;扫描后缀为“.o”的输出文件所对应的后缀为“.c”的源文件,根据配置项对应的接口描述文件从后缀为“.c”的源文件中分析提取出配置项和接口的关联关系,从而生成用于描述配置项、接口之间关联关系的配置项-接口关系cig。
9.可选地,所述配置项-配置项关系cg中包含配置项之间的逻辑关系,所述逻辑关系为通过与、或、非表达的互斥或依赖关系中的一种。
10.可选地,步骤s103之前还包括生成配置项-配置项关系cg的步骤:扫描内核编译所需的配置项元数据文件kconfig,从配置项元数据文件kconfig中分析提取出配置项之间的逻辑关系,根据配置项之间的逻辑关系得到用于描述配置项、配置项之间逻辑关系的配置项-配置项关系cg。
11.此外,本发明还提供一种接口感知的编译配置项补全系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述接口感知的编译配置项补全方法的步骤。
12.此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述接口感知的编译配置项补全方法的步骤。
13.和现有技术相比,本发明主要具有下述优点:本发明方法包括针对给定的接口集合,根据预设的配置项-接口关系cig得到接口集合对应的关联配置项集合;针对关联配置项集合进行自洽性计算,若自洽性成立,则针对关联配置项集合,根据预设的配置项-配置项关系cg得到对应的全部配置项,针对全部配置项进行自洽性计算,若自洽性成立,则根据给定的内核配置项集合得到所需补全的配置项并输出。本发明面向内核兼容性保障问题,通过关注内核编译时配置项对内核接口的影响,支持快速定位出配置项所影响到的内核函数和内核关键接口,从而能够实现接口感知的编译配置项自动补全,在实现内核兼容性保障的前提下,提升内核编译定制的效率和周期。
附图说明
14.图1为本发明实施例方法的基本流程示意图。
15.图2为本发明实施例中预先生成知识图谱的步骤。
具体实施方式
16.如图1所示,本实施例接口感知的编译配置项补全方法包括:s101,针对给定的接口集合i,根据预设的配置项-接口关系cig得到接口集合i对应的关联配置项集合ci
relevance

s102,针对关联配置项集合ci
relevance
进行自洽性计算,若任意配置项对发生冲突则判定自洽性不成立,将所有发生冲突的配置项所对应的接口加入互斥接口对集合i
exclusive
,最终输出互斥接口对集合i
exclusive
,结束并退出;否则跳转下一步;s103,针对关联配置项集合ci
relevance
,根据预设的配置项-配置项关系cg得到对应的全部配置项,针对全部配置项进行自洽性计算,若任意配置项对发生冲突则判定自洽性不成立,将所有发生冲突的配置项加入互斥配置项集合对ci
exclusive
,最终输出互斥配置项集合对ci
exclusive
,结束并退出;否则,根据给定的内核配置项集合ci得到所需补全的配置项ci
completion
并输出。
17.本实施例中,配置项-接口关系cig中包含有配置项、接口之间关联关系。参见图2,步骤s101之前还包括生成配置项-接口关系cig的步骤:扫描内核编译所需的编译文件makefile,从编译文件makefile中分析提取出配置项和后缀为“.o”的输出文件之间的关系,得到配置项对应的输出文件列表;扫描后缀为“.o”的输出文件所对应的后缀为“.c”的源文件,从后缀为“.c”的源文件中分析提取出所有的接口,生成配置项对应的接口描述文件(本实施例中存储为1.csv);扫描后缀为“.o”的输出文件所对应的后缀为“.c”的源文件,根据配置项对应的接口描述文件从后缀为“.c”的源文件中分析提取出配置项和接口的关联关系,从而生成用于描述配置项、接口之间关联关系的配置项-接口关系cig(本实施例中存储为2.csv)。本实施例中,配置项-接口关系cig是作为配置知识图谱kg的一部分而存在的,毫无疑问的话,配置项-接口关系cig中包含的配置项、接口之间关联关系包括互斥和依赖两种关联关系,可以根据需要采用所需的形式/形态进行存储和表现。
18.本实施例中,配置项-配置项关系cg中包含配置项之间的逻辑关系,所述逻辑关系为通过与、或、非表达的互斥或依赖关系中的一种。参见图2,步骤s103之前还包括生成配置项-配置项关系cg的步骤:扫描内核编译所需的配置项元数据文件kconfig,从配置项元数据文件kconfig中分析提取出配置项之间的逻辑关系,根据配置项之间的逻辑关系得到用于描述配置项、配置项之间逻辑关系的配置项-配置项关系cg(本实施例中存储为3.csv)。本实施例中,配置项-配置项关系cg也是作为配置知识图谱kg的一部分而存在的,毫无疑问的话,配置项-配置项关系cg中包含的配置项之间的逻辑关系,可以根据需要采用所需的形式/形态进行存储和表现。
19.需要说明的是,步骤s102和s103中所涉及的自洽性计算为现有方法,具体可参见公开号为cn114791865a、名为《一种基于关系图的配置项自洽性检测方法、系统和介质》的中国专利申请,故其具体实现详细方式在此不再赘述。
20.综上所述,本实施例方法包括针对给定的接口集合,根据预设的配置项-接口关系cig得到接口集合对应的关联配置项集合;针对关联配置项集合进行自洽性计算,若自洽性成立,则针对关联配置项集合,根据预设的配置项-配置项关系cg得到对应的全部配置项,针对全部配置项进行自洽性计算,若自洽性成立,则根据给定的内核配置项集合得到所需补全的配置项并输出。本发明面向内核兼容性保障问题,通过关注内核编译时配置项对内核接口的影响,支持快速定位出配置项所影响到的内核函数和内核关键接口,从而能够实现接口感知的编译配置项自动补全,在实现内核兼容性保障的前提下,提升内核编译定制的效率和周期。
21.此外,本实施例还提供一种接口感知的编译配置项补全系统,包括相互连接的微
处理器和存储器,所述微处理器被编程或配置以执行所述接口感知的编译配置项补全方法的步骤。
22.此外,本实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述接口感知的编译配置项补全方法的步骤。
23.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
24.以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1