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具有如下优势:

  • 高度灵活可定制:编译参数、编译模块选项都可以定制
  • 使用方便:内核裁剪、添加模块、删除模块操作简单
  • 配置简单:可交互的图形菜单

1635342754860

学习Kbuild本期课程预期会有哪些收获?

  • 深刻理解Makefile是如何编译Linux内核、U-boot等大型工程的
  • 遇到编译错误时,提供更多的视角去分析
  • 提供了一张地图,破解Linux内核的“黑暗森林”
  • 有助于理解内核启动流程、组织架构
  • 掌握Kbuild工作原理,对学习其他开源软件有帮助

本期课程主要内容:

  • 如何使用Kbuild Makefile
  • 裁剪、配置内核
  • 编译内核
  • 往内核中添加新的模块
  • Kbuild工作流程分析:
  • 内核镜像如何生成?
  • 内核模块编译
  • 内核模块安装
  • 内核头文件安装
  • 内核源码中的空头文件探秘

1635342800663

学习须知:

学习本课程前,需要具备Makefile基础知识,知道程序编译、链接的基本原理。如果没有此基础,建议先学习之前的《Linux三剑客》基础课程:Makefile工程实践:从零开始一步一步写项目的Makefile,学习效果会更好。

Linux内核编程第02期:Kbuild编译子系统,课程已经录制完成,视频和配套的文档已经上传到网盘,已经购买的学员可以直接下载观看了

1635342848147

课程购买淘宝店链接:Linux内核编程

一线原厂驱动开发经验,专门为嵌入式精心打造的嵌入式进阶视频教程,详情请点击:王利涛老师个人店