Linux内核编程02: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子系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分享自己针对Automation做的两个
- 下一篇: H面试程序(29):求最大递增数