2011-01-05 87 views
2
  • 我想了解,什么类型的头文件放在内核基本目录下的“/ includes /”下。这些文件在某种意义上是否意图成为“公共”头/ API?因此,忘记了体系结构,已启用/禁用等配置交换机?总之,如果我想在我的驱动程序中使用某些核心内核功能,我是否可以安全地假定我正在查找的功能将包含在“/ includes”下的相关头文件之一中,并且无处可用别的?Linux内核头文件

期待一些意见。

谢谢..!

回答

6

最近我一直在关注这件事。

我不知道这个答案是怎么相关的,因为它听起来像你只关心理解你手头上的内核源代码的包装。这个答案可能只涉及你的第二个问题。不过,这里有一些我发现的关于内核头文件的东西。

从我发现的有两个潜在的位置,最终被称为“内核标题”。

第一个位置在/ usr/src/linux-headers -version中(至少在我的Ubuntu机器上)。这是您的内核(源代码?)的安装位置以及附带的标题。如果你想构建内核模块,那么你需要根据这里找到的头文件来构建。

另一方面/ usr/include/{linux,asm}也包含“内核头文件”。您可以将这些头文件视为内核的用户界面。它是由内核导出的API,因此用户级程序可以进行系统调用。您的libc将利用此API,因此它可以基于哪些系统调用可用来创建函数(位于/ usr/include中)。

这里是我刚才说的,并澄清事情有点多了几个文件进行备份:

下面是一个关于在/ usr/src/linux目录,标题,`version之间的差别链接'和/ usr/include在RHEL4上。

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

你只是想知道如何使用你的内核包中的源代码来创建一个驱动程序,但至少在这个答案中你知道它肯定是开始的地方。

0

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