深入解析Linux内核构建与编译
1. 内核结构与配置基础
在探索内核构建的过程中,我们首先要熟悉内核的结构。例如,若要查找特定片上系统(SoC)的串口代码,应在 drivers/tty/serial 目录中寻找,而非 arch/$ARCH/mach-foo ,因为它属于设备驱动,并非特定于CPU架构的代码。
Linux内核的一大优势在于其高度可配置性,能够适应从智能恒温器等小型专用设备到复杂手机等不同的工作场景。当前版本的内核有数千个配置选项,正确配置内核本身就是一项重要任务。
内核配置机制名为Kconfig,与之集成的构建系统是Kbuild,相关文档位于 Documentation/kbuild 中。Kconfig/Kbuild不仅用于内核构建,还在crosstool - NG、U - Boot、Barebox和BusyBox等多个项目中得到应用。
配置选项在一系列名为Kconfig的文件中以层次结构的方式声明,语法说明可在 Documentation/kbuild/kconfig - language.rst 中找到。在Linux中,顶级Kconfig文件如下所示:
mainmenu "Linux/$(ARCH) $(KERNELVERSION) Kernel Configuration"
comment "Compiler: $(CC_VERSION_TEXT)"
source "scripts/Kconfig.include"
[…]
</
超级会员免费看
订阅专栏 解锁全文
320

被折叠的 条评论
为什么被折叠?



