我想了解一下,什么类型的头文件放在内核基目录下的“/ includes /”下。这些文件在某种意义上是“公共”标题/ API吗?因此,忘记了架构,已启用/禁用的配置开关等?
简而言之,如果我想在我的驱动程序中使用一些核心内核功能,我可以安全地假设我正在寻找的功能,将包含在“/ includes”下的一个相关头文件中,无处 ?
期待一些评论。
谢谢..!
答案 0 :(得分:6)
我最近一直在研究这件事。
我不知道这个答案是如何相关的,因为听起来你只关心理解你手头的内核源码的包装。这个答案可能只适用于你的第二个问题。不过这里有一些关于内核头文件的东西。
据我所知,有两个可能的位置最终被称为“内核头”。
第一个位置是/ usr / src / linux-headers-`version'(至少在我的Ubuntu机器上)。这是您的内核(源?)的安装位置以及随附的标头。如果要构建内核模块,则需要针对此处的头文件进行构建。
另一方面/ usr / include / {linux,asm}也包含“内核头文件”。您可以将这些头文件视为内核的用户界面。它是内核导出的API,因此用户程序可以进行系统调用。您的libc将利用此API,因此它可以根据可用的系统调用创建函数(在/ usr / include中)。
以下是一些备份我刚才所说的文件,并澄清了一些事情:
这是关于RHEL4上/ usr / src / linux-headers-`version'和/ usr / include之间差异的链接。
这是一个关于'导出'内核头文件的链接: http://www.kernel.org/doc/Documentation/make/headers_install.txt
最后,这是对内核头文件的另一个解释: http://www.overclockers.com/forums/showthread.php?t=647638
所以也许你已经知道了这一点,你只是想知道如何使用内核包中的源代码创建驱动程序,但至少在这个答案中你知道它绝对是开始的地方。
答案 1 :(得分:0)
是的,include包含用于内核开发的标准API。