在內核編譯中如何將各個目錄樹中的文件組織起來編譯是一個很重要的問題,并且要根據用戶配置來編譯特有的內核。為了解決這個問題,內核使用兩種文件,Makefile和 Kconfig。分布到各目錄的 Kconfig構成了個分布式的內核配置數據庫,每個 Kconfig分別描述了所屬目錄源文檔相關的內核配置菜單,就是我們使用命令 make menuconfig(或者 xconfig)后產生的配置菜單,此菜單包含多層,每個層次都是由各個目錄中的Kconfig產生的。用戶根據需求來選擇如何編譯內核,然后將配置結果保存到 config中,然后執行 Makefile時就會根據 onfig的結果來實現內核的編譯。這個過程是由 kbuild系統來完成的,Linux編譯系統會兩次掃描 Linux的 Makefile:首先編譯系統會讀取 Linux內核頂層的 Makefile,然后根據讀到的內容第二次讀取 Kbuild的 Makefile來編譯 Linux內核。內核編譯系統或者說 kbuild,是一種在編譯內核時,可以對內核配置選項進行選擇的機制。2.6內核樹中已經更新了這種機制,新版本的 kbuild不僅高速而且備有更完善的文檔。Kbuild機制完全依賴于源代碼的層次結構。Kconfig的作用就是為了讓用戶配置內核,在Kconfig中定義了一些變量,用戶通過設置變量的值來選擇如何個性化自己的系統內核。定義的變量將在每個菜單都有一個關鍵字標識,最常見的就是contig
標簽:
linux
上傳時間:
2022-03-30
上傳用戶: