Ответы:
Две директории предоставляются соответствующими пакетами, которые содержат заголовочные файлы для ядра. Используйте 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
Насколько мне известно, оба каталога содержат только исходные коды, а не двоичные файлы. И разница между ними заключается главным образом в целевой архитектуре исходных кодов.
Связанный: Что содержит дерево исходного кода ядра? Это связано с заголовками ядра Linux?
так как оба хранят
x86
связанный код, какая разница междуx86
кодом в двух каталогах? - Ричард 29 июля 15 в 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
.
Прежде всего, эти два каталога, вероятно, являются «чистым» подходом к упаковке и компиляции пакетов на соответствующих платформах. Хотя я не в состоянии уточнить этот вопрос.
Примечание ответчика : я написал этот ответ наивно в то время - не уверен, что правильно или неправильно - и между ними может отсутствовать какое-то объяснение. Следовательно, этот ответ теперь является вики сообщества, так что любой человек с минимальной репутацией может улучшить этот пост, чтобы полностью объяснить разницу.
x86
связанный код, какая разница междуx86
кодом в двух каталогах?