我多年来一直是 Windows 内核开发人员。现在我开始开发Linux内核模块。
首先,我安装kernel-devel
在/usr/src/kernels/$(uname -r)
.然而,检查安装文件夹后,我很困惑,因为目录中似乎有很多看似无用的文件夹和文件。许多文件夹都是空的,除了两个文件:Kconfig
和Makefile
。
在 Windows 下,要开发内核设备驱动程序,我只需要一个包含所有必要头文件的 include 文件夹和一个包含需要链接的库的 lib 文件夹。
在Linux下,我无法理解为什么会有这么多看似无用的文件夹。
有什么解释吗?
答案1
kernel-devel
Fedora 和其他 Red Hat 衍生品中的软件包不包含完整的内核源代码,只是驱动程序开发所需的公共接口和 makefile 的标头。大多数标头可以在/usr/src/kernels/$(uname -r)/include/
某些特定于体系结构的标头下找到,例如,对于 x86,可以在/usr/src/kernels/$(uname -r)/arch/x86/include/
.
和 的目录Kconfig
并非Makefile
无用,您只是看不到完整的图片,因为您没有完整的内核源代码(无论如何您通常都不需要驱动程序开发)。