内核映像的形成 —— KBuild体系(一)

本文介绍了Linux内核2.6版本开始采用的KBuild编译系统,该系统基于GNU make机制。KBuild体系主要包括顶层Makefile、.config、特定CPU架构的Makefile、scripts/Makefile.*和各个目录的kbuild Makefiles。核心部分是内核目标的定义,如编译进内核、编译成模块和编译成库文件。KBuild通过读取.config文件和递归操作子目录的Makefile来构建内核和模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.1 KBuild体系


从Linux内核2.6开始,Linux内核的编译采用Kbuild系统,这和过去的编译系统有很大的不同,尤其对于Linux内核模块的编译。在新的系统下,Linux编译系统会两次扫描Linux的Makefile:首先编译系统会读取Linux内核顶层的Makefile,然后根据读到的内容第二次读取Kbuild的Makefile来编译Linux内核。

 

Kbuild是建立在GUN make机制上的一种编译体系,理解KBuild体系,首先要理解GUN make,这也就是为什么要在前一节大谈特谈Makefile预备知识的原因。

 

那么Linux内核的KBuild体系中用到的Makefile分为5个部分:

 

(1)顶层Makefile

 

Kernel Makefile位于Linux内核源代码的顶层目录,也叫 Top Makefile。它主要用于指定编译Linux Kernel目标文件(vmlinux)和模块(module)。这编译内核或模块是,这个文件会被首先读取,并根据读到的内容配置编译环境变量。对于内核或驱动开发人员来说,这个文件几乎不用任何修改。

 

(2).config

 

内核配置文件,当配置完menuconfig以后,就会在主目录下生成一个.config文件,我们再来看看这个文件的部分内容:
……
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值