gpt4 book ai didi

linux -/usr/include/linux和linux内核源码中的include文件夹有什么区别?

转载 作者:IT王子 更新时间:2023-10-29 00:58:26 28 4
gpt4 key购买 nike

在新安装的 Ubuntu 上,我在 /usr/include/linux/usr/src/kernel-version-headers/include/linux 中找到了内核头文件>

它们是否相同?

最佳答案

它们非常不同; /usr/include/linux header 是编译系统标准 C 库时使用的 header 。它们由 C 库打包拥有,并与标准 C 库同步更新。它们的存在是为了向内核提供 userland 接口(interface),正如 C 库所理解和“代理”1 的那样。

/usr/src/linux-headers-$(uname -r)/include/linux header 通过 /lib/modules/$(uname -r)/使用构建 符号链接(symbolic link)。它们由内核头文件包拥有,并与内核同步更新。这些是内核头文件的子集,并且是构建树外内核模块所需的足够的 Kbuild 系统。这些文件代表内核内部——如果模块要正确理解内存中的对象,就必须针对这些文件进行构建。有关详细信息,请参阅内核的 Documentation/kbuild/modules.txt 文件。


1:“中介”是我选择的第一个词,但它暗示某种访问控制,事实并非如此。 “代理”意味着第三方流程,但事实并非如此。考虑:当 C 程序调用 _exit() 时,它实际上是在调用标准 C 库的 _exit() wrapper,后者调用 exit(2) 系统调用。 select(2) 接口(interface)对可跟踪的文件描述符数量有上限,并且该限制被编译到标准 C 库中。即使扩展了内核的接口(interface),C库也需要重新编译。

关于linux -/usr/include/linux和linux内核源码中的include文件夹有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9094237/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com