Linux內核的編譯主要過程

2023-08-08 16:22:04 來源:嵌入式Linux充電站

Linux內核的編譯主要過程: 配置、編譯、安裝。

配置主要由Kconfig提供圖形界面完成編譯主要基于Kbuild編譯系統,執行make完成編譯安裝主要也是基于Kbuild提供的腳本,然后執行make完成安裝

Kconfig

Kconfig用于內核的配置,make menuconfig顯示的菜單就來自Kconfig

make menuconfig的菜單包括了多層,每層都是各個目錄下對應的Kconfig產生的,選擇好配置后,配置結果會被保存到.config文件中。


【資料圖】

執行Makefile時,Makefile就會根據.config的結果來實現內核的編譯。

Kconfig語法

Kbuild

KbuildKernel build,是內核的一個編譯系統。

簡單來說,Kbuild是對Makefile語法功能的擴展。

例如,kbuild定義了很多有用的變量如obj-m`` obj-y,-objs等等,用戶只要為這些變量賦值,kbuild會自動把代碼編譯到內核或者編譯成模塊。

Linux內核使用kbuild編譯時,會掃描兩次LinuxMakefile:首先讀取頂層的Makefile文件,然后根據讀取到的內容第二次讀取kbuild的Makefile文件來編譯Linux內核。

內核的Makefile包括五部分:

Makefile

頂層的Makefile是編譯的入口,下面分析一下頂層Makefile文件。

頂層Makefile會向各子目錄的Makefile傳遞一些信息,有些變量,例如vmlinux-dirs,不僅在頂層Makefile中定義并且賦值,而且在arch/*/Makefile還作了擴充。

標簽:

上一篇:Linux中斷下半部實現的三種方法
下一篇:最后一頁