dai*_*isy 4 linux include linux-kernel
在刚安装的Ubuntu中,我发现在这两个内核头文件/usr/include/linux,并/usr/src/kernel-version-headers/include/linux
它们是否相同?
sar*_*old 10
他们是非常不同的; 该/usr/include/linux标头是被编译系统的标准C库时使用的标题.它们归C库包装所有,并与标准C库保持同步更新.存在它们以提供内核的用户空间接口,如C库所理解和"代理" 1.
在/usr/src/linux-headers-$(uname -r)/include/linux报头通过使用/lib/modules/$(uname -r)/build符号链接.它们由内核头文件包拥有,并与内核保持同步更新.这些是内核头的一个子集,以及构建树外内核模块所需的足够Kbuild系统.这些文件代表内核内部 - 如果要正确理解内存中的对象,模块必须针对这些构建.有关Documentation/kbuild/modules.txt详细信息,请参阅内核的文件.
1:"Mediated"是我的第一个单词选择,但它暗示了某种访问控制,但实际情况并非如此."Brokered"意味着第三方流程,但事实并非如此.考虑一下:当一个C程序调用时_exit(),它实际上是调用标准C库的_exit() 包装器,它调用exit(2)系统调用.所述select(2)接口具有对可跟踪文件描述符的数量的上限,并且该限制被编译成标准C库.即使内核的接口被扩展,C库也需要重新编译.