Answers:
这两个目录由相应的软件包提供,其中包含内核的头文件。使用dpkg
命令查找哪个软件包提供目录。
$ dpkg -S /usr/src/linux*
linux-headers-X.XX.X-XX: /usr/src/linux-headers-X.XX.X-XX
linux-headers-X.XX.X-XX-generic: /usr/src/linux-headers-X.XX.X-XX-generic
...
第一个目录/usr/src/linux-headers-X.X.XX-XX
包含用于多种体系结构(包括x86,amd64,powerpc等)的头文件,从而导致文件数量更多,包更大。
另一个目录/usr/src/linux-headers-X.X.XX-XX-generic
似乎主要包含与x86体系结构相关的源代码,这些源代码针对本地安装。
相应的包已在说明中提示,例如:
$ apt-cache show linux-headers-3.16.0-25 | grep -A3 Description-en
Description-en: Header files related to Linux kernel version 3.16.0
This package provides kernel header files for version 3.16.0, for sites
that want the latest kernel headers. Please read
/usr/share/doc/linux-lts-utopic-headers-3.16.0-25/debian.README.gz for details
据我所知,这两个目录仅包含源代码,而不包含二进制文件。两者之间的区别主要是源代码的目标体系结构。
由于两者都存储了
x86
相关代码,x86
所以两个目录中的代码btwn有什么区别?–理查德(Richard)2015年7月29日在19:11
其中包含的大多数目录和文件/usr/src/linux-headers-X.X.XX-XX-generic
都是符号链接,它们指向中的实际目录和文件/usr/src/linux-headers-X.X.XX-XX
。换句话说,arch/x86
在这两个目录中发现的只是实际链接和符号链接的区别,其中一些asm
标头的剩余文件在*-generic
对应文件中。
在这两个软件包之间,可能会注意到另一个主要区别是在副本中存在config
和generated
目录*-generic
。
以我的最佳理解,我认为该*-generic
目录包含用于配置和编译与x86
架构相关的模块的必要头文件,而不会意外更改的源目录linux-headers-x.x.xx-xx
。
最重要的是,这两个目录可能是在相应平台上打包和编译程序包的“干净”方法。虽然,我无法澄清这个问题。
答题者的注释:当时我天真地写了这个答案-不确定是对还是错-并且在这之间可能缺少一些解释。因此,此答案现在是社区Wiki,以便信誉最低的任何人都可以改善此帖子,以充分说明差异。
x86
相关代码,x86
所以两个目录中的代码btwn有什么区别?