Linux内核:Kbuild子系统
Kbuild 即kernel build,是用来编译Linux内核的一套Makefile。Kbuild基于GNU make设计,但是又对Makefile进行了各种扩充:
- 基于图形界面的菜单式配置
- 各种预定义目标和变量:menuconfig、obj-y
- 提供各种跨平台工具和编译
- 递归式Makefile
Linux内核可以灵活自由的高度裁剪和定制,其底层技术支撑除了模块机制之外,还有一项技术就是:可以使用Kbuild编译系统来方便地进行裁剪、配置、编译和安装。内核中的Kbuild子系统随着内核版本不断更新迭代,功能也越来越强大,也越来越受欢迎,被越来越多的开源软件借鉴和使用,比如U-boot、Busybox、Buildroot、Xen等,都在使用Kbuild这种编译系统来管理和维护。总结起来,Kbuild具有如下优势:
- 高度灵活可定制:编译参数、编译模块选项都可以定制
- 使用方便:内核裁剪、添加模块、删除模块操作简单
- 配置简单:可交互的图形菜单
学习Kbuild本期课程预期会有哪些收获?
- 深刻理解Makefile是如何编译Linux内核、U-boot等大型工程的
- 遇到编译错误时,提供更多的视角去分析
- 提供了一张地图,破解Linux内核的“黑暗森林”
- 有助于理解内核启动流程、组织架构
- 掌握Kbuild工作原理,对学习其他开源软件有帮助
本期课程主要内容:
- 如何使用Kbuild Makefile:
- 裁剪、配置内核
- 编译内核
- 往内核中添加新的模块
- Kbuild工作流程分析:
- 内核镜像如何生成?
- 内核模块编译
- 内核模块安装
- 内核头文件安装
- 内核源码中的空头文件探秘
学习须知:
学习本课程前,需要具备Makefile基础知识,知道程序编译、链接的基本原理。如果没有此基础,建议先学习之前的《Linux三剑客》基础课程:Makefile工程实践:从零开始一步一步写项目的Makefile,学习效果会更好。
Linux内核编程第02期:Kbuild编译子系统,课程已经录制完成,视频和配套的文档已经上传到网盘,已经购买的学员可以直接下载观看了
课程购买淘宝店链接:Linux内核编程
一线原厂驱动开发经验,专门为嵌入式精心打造的嵌入式进阶视频教程,详情请点击:王利涛老师个人店