Linux内核头文件

时间:2011-01-05 23:06:53

标签: linux-kernel arm kernel

  • 我想了解一下,什么类型的头文件放在内核基目录下的“/ includes /”下。这些文件在某种意义上是“公共”标题/ API吗?因此,忘记了架构,已启用/禁用的配置开关等?

  • 简而言之,如果我想在我的驱动程序中使用一些核心内核功能,我可以安全地假设我正在寻找的功能,将包含在“/ includes”下的一个相关头文​​件中,无处 ?

期待一些评论。

谢谢..!

2 个答案:

答案 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.linuxquestions.org/questions/red-hat-31/rhel4-kernel-devel-headers-packages-missing-directories-697552/

这是一个关于'导出'内核头文件的链接: http://www.kernel.org/doc/Documentation/make/headers_install.txt

最后,这是对内核头文件的另一个解释: http://www.overclockers.com/forums/showthread.php?t=647638

所以也许你已经知道了这一点,你只是想知道如何使用内核包中的源代码创建驱动程序,但至少在这个答案中你知道它绝对是开始的地方。

答案 1 :(得分:0)

是的,include包含用于内核开发的标准API。