BSP工程师的内核必修课 —— 1.3 Kernel Build Sytem

欢迎关注个人公众号: Core&Chip  持续更新,免费观看。

在上一期中我们介绍了如何使用Linux的编译系统构建一个内核,本期我们来介绍一下Linux编译系统。

Linux 内核采用统一的代码基础,却可以在大到服务器,小到微型的嵌入式设备上使用,其高度可裁剪、可定制化的构建在业界都是一流的。

在初期Linux是通过Makefile来编译,但是随着系统复杂度的提升,编译体系的复杂度也随着提升。于是在2.6版本,Linux采用了Kbuild机制,将编译做成了一个更加科学的系统。

这套系统现在不仅用在Linux内核编译,许多项目都在使用例如:ubootbuildroot等。所以了解和学会使用这套编译系统对于日常开发尤其是嵌入式领域是非常有必要的。

Linux编译系统,也有的文章会把它简称为Kbuild子系统,内核文档中将其称为:Kernel Build System,我觉得官方的名称更准确一些。因为Kbuild同样也是一个编译机制,并不能代表整个编译系统,放在一起容易混淆。

我们本文主要参考内核的官方文档:Kernel Build System — The Linux Kernel documentation

1. Kernel Build System 结构

Linux编译系统主要分为两个部分:Kconfig + Kbuild

我们先一句话总结:Kconfig作用是将配置以菜单的形式列出来供用户选择,Kbuild作用是将用户选择的配置的整理并生成.config配置文件用于镜像编译。

一个形象的比喻就是在饭店点菜:

  1. Kconfig就是服务员给你提供的菜单

  2. 你根据菜单把要点的菜,服务员将你点的菜记录在本子上,生成了.config文件

  3. 服务员将点的菜交给后厨,最后炒好了你的菜,生成了对应的镜像

下面是简略的内核中编译系统的文件结构,可以看到:

  1. 顶层目录有MakefileKbuildKconfig三个文件

  2. 其余子目录都有Makefile/Kbuild + Kconfig文件

linux-6.12.28
|---arch
|---block
|---drivers
 |---i2c
 |---spi
 ......
 |---Makefile
 |---Kconfig
.......
|---Makefile
|---Kbuild
|---Kconfig

需要注意的有以下几点:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值