首页  >  文章  >  系统教程  >  深入解析内核源码树:Kconfig 文件与 Makefile 的协同作用

深入解析内核源码树:Kconfig 文件与 Makefile 的协同作用

王林
王林原创
2024-06-28 08:18:52888浏览

深入解析内核源码树:Kconfig 文件与 Makefile 的协同作用

原理

内核源码树每位目录下都还包含一个Kconfig文件,用于描述所在目录源代码相关的内核配置菜单,各个目录的Kconfig文件构成了一个分布式的内核配置数据库。

通过makemenuconfig命令配置内核的时侯,从Kconfig文件读取菜单存储技术原理分析:基于linux 26内核源代码,配置完毕保存到文件名为.config的内核配置文件中,供Makefile文件在编译内核时使用。

源码目录树顶楼Makefile是整个内核源码管理的入口,对整个内核的源码编译起着决定性作用。编译内核时linux c,顶楼Makefile会按规则递归历遍内核源码的所有子目录下的Makefile文件,完成各子目录下内核模块的编译。

配置内核

步入Linux内核源码数顶楼目录,输入makemenuconfig命令百度网盘LINUX,可以步入基于Ncurses的Linux内核配置主界面,假如没有在Makefile手指定ARCH,则须在命令行手指定:

make ARCH=arm menuconfig

一级目录

一级菜单下的每一项几乎都有复杂的下级子菜单,各自的配置选项也很丰富,假如逐一进行描述,将会是一件十分繁杂的事。而实际产品开发中,并不须要完全了解内核的每一个配置项,一般只须要了解其中一些相关项即可。

内核编写_存储技术原理分析:基于linux 26内核源代码_内核存储原理源基于代码分析

在这里插入图片描述

二级目录Generalsetup是内核通用设置菜单界面

在这里插入图片描述

SystemVIPC表示系统的进程间通讯InterProcess

Communication,它用于处理器在程序之间同步和交换信息

Enableeventpollsupport:支持风波轮循的系统调用。

Enableloadablemodulesupport是内核模块配置

Moduleunloading容许卸载早已加载的模块

Moduleversioningsupport准许使用其他内核版本的模块(可能会出问题)

Sourcechecksumforallmodules为所有的模块校准源码,假如你不是自己编撰内核模块就不须要它这个功能。

内核编写_内核存储原理源基于代码分析_存储技术原理分析:基于linux 26内核源代码

Enabletheblocklayer块设备支持

使用硬碟/USB/SCSI设备者必选这选项促使块设备可以从内核移除:

Supportforlarge(2TB+)blockdevicesandfiles仅在使用小于2TB的块设备时须要

Blocklayerbiothrottlingsupport可用于限制设备的IO速率

IOSchedulersIO调度器I/O是输入输出带宽控制,主要针对硬碟,是核心的必须的东西。这儿提供了三个IO调度器。

SystemType是处理器类型及特征

Symmetricmulti-processingsupport对称多处理器支持,假如你有多个CPU或则使用的是多核CPU就选上

Processorfamily(Pentium-Pro)处理器系列,请依照实际使用的CPU选择,这儿是处理器的类型

Genericx86support这一选项针对x86系列的CPU使用更多的常规优化。假如你在里面一项选的是i386、i586之类的才选这个通用x86支持,

Multi-coreschedulersupport针对多核CPU进行调度策略优化多核调度机制支持,四核的CPU要选

Busoptions是PCI、ISA等总线的支持和配置KernelFeatures是内核特点配置菜单

内核存储原理源基于代码分析_存储技术原理分析:基于linux 26内核源代码_内核编写

在这里插入图片描述

Bootoption启动选项,可设置默认启动参数和内核参数类型

CPUPowerManagementCPU电源管理相关

包括处理器频度降频、休眠模式支持等

Powermanagementoptions电源管理相关Networkingsupport网路配置

包括了以太网、CAN、红外、蓝牙、无线等网路的支持配置选项

Wireless使用无线网卡支持

RFswitchsubsystemsupportRF切换设备

Networkingoptions网路合同和网路包参数配置(其中TCP/IP相关合同必须打开)

Networkingoptions,可步入网路选项配置界面

在这里插入图片描述

使用Linux的系统就会用到网路,而使用网路又常常离不开TCP/TP,故建议在配置中选中TCP/IP选项存储技术原理分析:基于linux 26内核源代码,并选中下级全部选项。三态选项也可以配置为,在须要的时侯再插入模块。

DriverDrivers设备驱动,配置界面也很复杂,有诸多配置项

在这里插入图片描述

Filesystems,是内核文件系统配置界面

内核存储原理源基于代码分析_内核编写_存储技术原理分析:基于linux 26内核源代码

在这里插入图片描述

Kernelhacking内核调试相关Securityoptions安全相关选项

CryptographicAPI—>//加密API,这部份选项会按照此前的优化手动调整

剪裁和配置内核的基本原则

参考资料:

linux内核剪裁的具体过程和选择

嵌入式Linux内核配置、裁剪与编译探讨

Linux内核编译配置(Menuconfig图形化形式)、制作文件系统的步骤

Linux内核移植和根文件系统制做

以上是深入解析内核源码树:Kconfig 文件与 Makefile 的协同作用的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn