首頁  >  文章  >  系統教程  >  深入解析核心原始碼樹:Kconfig 檔案與 Makefile 的協同作用

深入解析核心原始碼樹:Kconfig 檔案與 Makefile 的協同作用

王林
王林原創
2024-06-28 08:18:52884瀏覽

深入解析内核源码树:Kconfig 文件与 Makefile 的协同作用

原理

核心原始碼樹每位目錄下都還包含一個Kconfig文件,用於描述所在目錄原始碼相關的核心設定選單,各個目錄的Kconfig檔案構成了一個分散式的核心設定資料庫。

透過makemenuconfig指令設定核心的時侯,從Kconfig檔讀取選單儲存技術原理分析:基於linux 26核心原始碼,設定完畢儲存到檔案名稱.config的核心設定檔中,供Makefile檔案在編譯內核時使用。

原始碼目錄樹頂樓Makefile是整個核心原始碼管理的入口,對整個核心的原始碼編譯起著決定性作用。編譯核心時linux c,頂樓Makefile會依規則遞歸歷遍核心原始碼的所有子目錄下的Makefile文件,完成各子目錄下核心模組的編譯。

配置內核

步入Linux內核源碼數頂樓目錄,輸入makemenuconfig命令百度網盤LINUX,可以步入基於Ncurses的Linux內核配置主界面,假如沒有在Makefile手指定ARCH,則須在命令行手指定:

make ARCH=arm menuconfig

一級目錄

一級選單下的每一項幾乎都有複雜的下級子選單,各自的配置選項也很豐富,假如逐一進行描述,將會是一件十分繁雜的事。而實際產品開發中,並不須要完全了解核心的每個配置項,一般只須要了解其中一些相關項即可。

内核编写_存储技术原理分析:基于linux 26内核源代码_内核存储原理源基于代码分析

在这里插入图片描述

二級目錄Generalsetup是內核通用設定選單介面

在这里插入图片描述

SystemVIPC表示系統的進程間通訊InterProcess

Communication,它用於處理器在程式之間同步和交換資訊

Enableeventpollsupport:支援風波輪循的系統呼叫。

Enableloadablemodulesupport是核心模組配置

Moduleunloading容許卸載早已加載的模組

Moduleversioningsupport準許使用其他核心版本的模組(可能會出問題)

Sourcechecksumforallmodules為所有的模組校準源碼,假如你不是自己編撰內核模組就不須要它這個功能。

内核编写_内核存储原理源基于代码分析_存储技术原理分析:基于linux 26内核源代码

Enabletheblocklayer塊設備支援

使用硬盤/USB/SCSI設備者必選此選項促使塊設備可以從核心移除:

Supportforlarge(2TB+)blockdevicesandfiles僅在使用小於2TB的區塊裝置時須要

Blocklayerbiothrottlingsupport可用於限制設備的IO速率

IOSchedulersIO調度器I/O是輸入輸出頻寬控制,主要針對硬盤,是核心的必須的東西。這兒提供了三個IO調度器。

SystemType是處理器型別及特性

Symmetricmulti-processingsupport對稱多處理器支援,假如你有多個CPU或則使用的是多核心CPU就選上

Processorfamily(Pentium-Pro)處理器系列,請依照實際使用的CPU選擇,這兒是處理器的類型

Genericx86support這個選項針對x86系列的CPU使用較多的常規最佳化。假如你在裡面一項選的是i386、i586之類的才選這個通用x86支援,

Multi-coreschedulersupport針對多核心CPU進行調度策略最佳化多核心調度機制支持,四核心的CPU要選

Busoptions是PCI、ISA等匯流排的支援與配置KernelFeatures是核心特性配置選單

内核存储原理源基于代码分析_存储技术原理分析:基于linux 26内核源代码_内核编写

在这里插入图片描述

Bootoption啟動選項,可設定預設啟動參數和核心參數類型

CPUPowerManagementCPU電源管理相關

包括處理器頻度降頻、休眠模式支援等

Powermanagementoptions電源管理相關Networkingsupport網路配置

包含了乙太網路、CAN、紅外線、藍牙、無線等網路道路的支援配置選項

Wireless使用無線網卡支援

RFswitchsubsystemsupportRF切換設備

Networkingoptions網路合約與網路包參數配置(其中TCP/IP相關合約必須開啟)

Networkingoptions,可步入網路選項配置介面

在这里插入图片描述

使用Linux的系統就會用到網路,而使用網路又常常離不開TCP/TP,故建議在配置中選取TCP/IP選項儲存技術原理分析:基於linux 26核心原始碼,並選取下級全部選項。三態選項也可以配置為,在須要的時侯再插入模組。

DriverDrivers裝置驅動,設定介面也很複雜,有諸多設定項

在这里插入图片描述

Filesystems,是核心檔案系統設定介面

内核存储原理源基于代码分析_内核编写_存储技术原理分析:基于linux 26内核源代码

在这里插入图片描述

Kernelhacking內核調試相關Securityoptions安全相關選項

CryptographicAPI—>//加密API,此選項會依照先前的最佳化手動調整

剪裁和配置內核的基本原則

參考資料:

linux內核剪裁的具體過程和選擇

嵌入式Linux核心配置、裁剪與編譯探討

Linux核心編譯配置(Menuconfig圖形化形式)、製作檔案系統的步驟

Linux核心移植和根檔案系統製做

以上是深入解析核心原始碼樹:Kconfig 檔案與 Makefile 的協同作用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn