本发明涉及操作系统,尤其涉及一种linux内核裁剪方法、装置、电子设备及存储介质。
背景技术:
1、linux是一个开源的操作系统项目,目前众多操作系统公司基于该项目推出了不同的linux系统发行版本的,由于linux系统的高度可移植、可裁剪能力,目前已经在嵌入式领域广泛应用。
2、目前,国产平台虚拟化在各个行业已经得到充分的发展,并且正在广泛的使用。由于行业的差别和各自的应用场景不同,对虚拟化节点系统的定制已经成为必不可少的技术步骤。由于国产平台下的内核软件数以万计,如何快速、准确的选择行业所需要的模块成为国产平台版本发行的一项重要工作。然而,在对linux系统进行定制化裁剪的过程中,一般通过人工选择完成,由于对内核定制裁剪人员的要求过高,并且人工选择时需要频繁试验,一般需经过多轮的人工审核和反复的测试才能定稿,从而导致内核裁剪的效率十分低下,裁剪不彻底,难以达到最优的结果。
3、因此,现有技术在对linux系统进行定制化裁剪的过程中,存在由于裁剪不彻底导致系统存在冗余浪费的的问题。
技术实现思路
1、有鉴于此,有必要提供一种linux内核裁剪方法、装置、电子设备及存储介质,用以解决现有技术中在对linux系统进行定制化裁剪的过程中,存在的由于裁剪不彻底导致系统存在冗余浪费的的问题。
2、为了解决上述问题,本发明提供一种linux内核裁剪方法,包括:
3、删除未被调用的初始linux内核模块,得到目标linux内核模块;
4、获取目标linux内核模块的源代码文件,并识别出源代码文件中需要进行编译的目标源代码文件;
5、对目标linux内核模块的目标源代码文件进行编译,确定目标linux内核。
6、在一种可能的实现方式中,删除未被调用的初始linux内核模块,得到目标linux内核模块,包括:
7、获取多个初始linux内核模块之间的依赖关系;
8、基于依赖关系分别计算多个初始linux内核模块的被调用程度,并确定被调用程度大于预设的被调用程度阈值的初始linux内核模块为目标linux内核模块。
9、在一种可能的实现方式中,基于依赖关系分别计算多个初始linux内核模块的被调用程度,包括:
10、通过系统调用跟踪工具对linux内核进行跟踪,得到系统调用跟踪结果;
11、根据系统调用跟踪结果计算多个初始linux内核模块的调用次数,并根据调用次数确定多个初始linux内核模块的被调用程度。
12、在一种可能的实现方式中,删除未被调用的初始linux内核模块,得到目标linux内核模块,还包括:
13、启动linux内核的追踪器,基于追踪器对初始linux内核模块的内核函数进行跟踪,得到被调用内核函数对应的被调用linux内核模块;
14、确定被调用linux内核模块为目标linux内核模块。
15、在一种可能的实现方式中,获取目标linux内核模块的源代码文件,并识别出源代码文件中需要进行编译的目标源代码文件,包括:
16、在源代码文件自动添加错误代码,得到异常处理源代码文件;
17、编译异常处理源代码文件,并判断是否出现报错;
18、若是,判断异常处理源代码文件对应的源代码文件不需要进行编译;
19、若否,判断异常处理源代码文件对应的源代码文件需要进行编译。
20、在一种可能的实现方式中,获取目标linux内核模块的源代码文件,并识别出源代码文件中需要进行编译的目标源代码文件,还包括:
21、通过构建工具自动检查确定源代码文件中需要进行编译的目标源代码文件。
22、在一种可能的实现方式中,在对目标linux内核模块的目标源代码文件进行编译,确定目标linux内核之后,还包括:
23、将目标linux内核载入虚拟机,以检测目标linux内核是否能在虚拟机内稳定运行。
24、为了解决上述问题,本发明还提供一种linux内核裁剪装置,包括:
25、目标linux内核模块获取组件,用于删除未被调用的初始linux内核模块,得到目标linux内核模块;
26、目标源代码文件获取组件,用于获取目标linux内核模块的源代码文件,并识别出源代码文件中需要进行编译的目标源代码文件;
27、目标linux内核确定组件,用于对目标linux内核模块的目标源代码文件进行编译,确定目标linux内核。
28、为了解决上述问题,本发明还提供一种电子设备,包括存储器和处理器,其中,
29、存储器,用于存储程序;
30、处理器,与存储器耦合,用于执行存储器中存储的程序,以实现如上文所述的linux内核裁剪方法中的步骤。
31、为了解决上述问题,本发明还提供一种计算机可读存储介质,用于存储计算机可读取的程序或指令,程序或指令被处理器执行时能够实现如上文所述的linux内核裁剪方法中的步骤。
32、采用上述实施例的有益效果是:本发明提供一种linux内核裁剪方法,通过对linux系统的初始linux内核模块进行调用情况筛选,从而针对性地去掉linux系统在运行过程中未使用到的模块,实现对linux内核的初步精简;通过对目标linux内核模块的源代码文件进行针对性识别,选取需要进行编译的部分,能够仅对目标linux内核模块的目标源代码文件进行编译,以确定目标linux内核,实现了从文件的层面对linux内核进行裁剪,大大提高了对linux系统的裁剪力度,减少了冗余浪费。
1.一种linux内核裁剪方法,其特征在于,包括:
2.根据权利要求1所述的linux内核裁剪方法,其特征在于,所述删除未被调用的初始linux内核模块,得到目标linux内核模块,包括:
3.根据权利要求2所述的linux内核裁剪方法,其特征在于,所述基于所述依赖关系分别计算所述多个初始linux内核模块的被调用程度,包括:
4.根据权利要求1所述的linux内核裁剪方法,其特征在于,所述删除未被调用的初始linux内核模块,得到目标linux内核模块,还包括:
5.根据权利要求1所述的linux内核裁剪方法,其特征在于,所述获取所述目标linux内核模块的源代码文件,并识别出所述源代码文件中需要进行编译的目标源代码文件,包括:
6.根据权利要求1所述的linux内核裁剪方法,其特征在于,所述获取所述目标linux内核模块的源代码文件,并识别出所述源代码文件中需要进行编译的目标源代码文件,还包括:
7.根据权利要求1所述的linux内核裁剪方法,其特征在于,在对所述目标linux内核模块的所述目标源代码文件进行编译,确定目标linux内核之后,还包括:
8.一种linux内核裁剪装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括存储器和处理器,其中,
10.一种计算机可读存储介质,其特征在于,用于存储计算机可读取的程序或指令,所述程序或指令被处理器执行时能够实现上述权利要求1至7中任意一项所述的linux内核裁剪方法中的步骤。
