【问题标题】:Linux kernel headersLinux 内核头文件
【发布时间】:2011-01-05 23:06:53
【问题描述】:
  • 我想了解一下,内核基目录下的“/includes/”下放的是什么类型的头文件。这些文件在某种意义上是否旨在成为“公共”标头/API?因此,忘记了架构、已启用/禁用的配置开关等?

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

期待一些cmets。

谢谢..!

【问题讨论】:

    标签: linux-kernel arm kernel


    【解决方案1】:

    我最近一直在研究这个问题。

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

    根据我的发现,有两个可能的位置最终被称为“内核标头”。

    第一个位置在 /usr/src/linux-headers-`version' (至少在我的 Ubuntu 机器上)。这是您的内核(源代码?)以及随附的头文件的安装位置。如果要构建内核模块,则需要针对此处找到的标头进行构建。

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

    这里有几个文件来支持我刚才所说的内容并进一步澄清一些事情:

    这里是一个关于 /usr/src/linux-headers-`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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-23
        • 2011-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-15
        • 2011-09-24
        相关资源
        最近更新 更多