原理
内核源码树每位目录下都还包含一个Kconfig文件,用于描述所在目录源代码相关的内核配置菜单,各个目录的Kconfig文件构成了一个分布式的内核配置数据库。
通过makemenuconfig命令配置内核的时侯,从Kconfig文件读取菜单存储技术原理分析:基于linux 26内核源代码,配置完毕保存到文件名为.config的内核配置文件中,供Makefile文件在编译内核时使用。
源码目录树顶楼Makefile是整个内核源码管理的入口,对整个内核的源码编译起着决定性作用。编译内核时linux c,顶楼Makefile会按规则递归历遍内核源码的所有子目录下的Makefile文件,完成各子目录下内核模块的编译。
配置内核
步入Linux内核源码数顶楼目录,输入makemenuconfig命令百度网盘LINUX,可以步入基于Ncurses的Linux内核配置主界面,假如没有在Makefile手指定ARCH,则须在命令行手指定:
make ARCH<span class="token operator">=</span>arm menuconfig
一级目录
一级菜单下的每一项几乎都有复杂的下级子菜单,各自的配置选项也很丰富,假如逐一进行描述,将会是一件十分繁杂的事。而实际产品开发中,并不须要完全了解内核的每一个配置项,一般只须要了解其中一些相关项即可。
二级目录Generalsetup是内核通用设置菜单界面
SystemVIPC表示系统的进程间通讯InterProcess
Communication,它用于处理器在程序之间同步和交换信息
Enableeventpollsupport:支持风波轮循的系统调用。
Enableloadablemodulesupport是内核模块配置
Moduleunloading容许卸载早已加载的模块
Moduleversioningsupport准许使用其他内核版本的模块(可能会出问题)
Sourcechecksumforallmodules为所有的模块校准源码,假如你不是自己编撰内核模块就不须要它这个功能。
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是内核特点配置菜单
Bootoption启动选项,可设置默认启动参数和内核参数类型
CPUPowerManagementCPU电源管理相关
包括处理器频度降频、休眠模式支持等
Powermanagementoptions电源管理相关Networkingsupport网路配置
包括了以太网、CAN、红外、蓝牙、无线等网路的支持配置选项
Wireless使用无线网卡支持
RFswitchsubsystemsupportRF切换设备
Networkingoptions网路合同和网路包参数配置(其中TCP/IP相关合同必须打开)
Networkingoptions,可步入网路选项配置界面
使用Linux的系统就会用到网路,而使用网路又常常离不开TCP/TP,故建议在配置中选中TCP/IP选项存储技术原理分析:基于linux 26内核源代码,并选中下级全部选项。三态选项也可以配置为,在须要的时侯再插入模块。
DriverDrivers设备驱动,配置界面也很复杂,有诸多配置项
Filesystems,是内核文件系统配置界面
Kernelhacking内核调试相关Securityoptions安全相关选项
CryptographicAPI—>//加密API,这部份选项会按照此前的优化手动调整
剪裁和配置内核的基本原则
参考资料:
linux内核剪裁的具体过程和选择
嵌入式Linux内核配置、裁剪与编译探讨
Linux内核编译配置(Menuconfig图形化形式)、制作文件系统的步骤
Linux内核移植和根文件系统制做
以上是深入解析内核源码树:Kconfig 文件与 Makefile 的协同作用的详细内容。更多信息请关注PHP中文网其他相关文章!