Compiling
為什麼 kernel-devel 包含這麼多“空”目錄?
多年來,我一直是 Windows 核心開發人員。現在我開始開發 Linux 核心模組。
首先,我安裝
kernel-devel
在/usr/src/kernels/$(uname -r)
. 但是,在檢查了安裝文件夾後,我感到很困惑,因為目錄中似乎有很多看似無用的文件夾和文件。許多文件夾是空的,除了兩個文件:Kconfig
和Makefile
.在 Windows 下,要開發核心設備驅動程序,我只需要一個包含所有必要標頭檔的 include 文件夾和一個包含要連結的必要庫的 lib 文件夾。
在Linux下,我不明白為什麼會有這麼多看似無用的文件夾。
有什麼解釋嗎?
kernel-devel
Fedora 和其他 Red Hat 衍生產品中的軟體包不包含完整的核心原始碼,僅包含公共介面的標頭檔和驅動程序開發所需的 makefile。大多數標頭檔都可以在/usr/src/kernels/$(uname -r)/include/
和一些體系結構特定的標頭檔下找到,例如 x86 下的/usr/src/kernels/$(uname -r)/arch/x86/include/
.帶有
Kconfig
和的目錄Makefile
不是無用的,您只是看不到完整的圖片,因為您沒有完整的核心原始碼(無論如何您通常都不需要驅動程序開發)。