为什么 kernel-devel 包含这么多“空”目录?

为什么 kernel-devel 包含这么多“空”目录?

我多年来一直是 Windows 内核开发人员。现在我开始开发Linux内核模块。

首先,我安装kernel-devel/usr/src/kernels/$(uname -r).然而,检查安装文件夹后,我很困惑,因为目录中似乎有很多看似无用的文件夹和文件。许多文件夹都是空的,除了两个文件:KconfigMakefile

在 Windows 下,要开发内核设备驱动程序,我只需要一个包含所有必要头文件的 include 文件夹和一个包含需要链接的库的 lib 文件夹。

在Linux下,我无法理解为什么会有这么多看似无用的文件夹。

有什么解释吗?

答案1

kernel-develFedora 和其他 Red Hat 衍生品中的软件包不包含完整的内核源代码,只是驱动程序开发所需的公共接口和 makefile 的标头。大多数标头可以在/usr/src/kernels/$(uname -r)/include/某些特定于体系结构的标头下找到,例如,对于 x86,可以在/usr/src/kernels/$(uname -r)/arch/x86/include/.

和 的目录Kconfig并非Makefile无用,您只是看不到完整的图片,因为您没有完整的内核源代码(无论如何您通常都不需要驱动程序开发)。

相关内容