Dwa katalogi są dostarczane przez odpowiednie pakiety, które zawierają pliki nagłówkowe dla jądra. Użyj dpkg
polecenia, aby znaleźć pakiet, który udostępnia katalogi.
$ 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
...
Pierwszy katalog /usr/src/linux-headers-X.X.XX-XX
zawiera pliki nagłówkowe dla wielu architektur, w tym x86, amd64, powerpc i innych, co powoduje większą liczbę plików i większy rozmiar pakietu.
Drugi katalog /usr/src/linux-headers-X.X.XX-XX-generic
zawierał głównie kody źródłowe istotne dla architektury x86, która jest przeznaczona dla instalacji lokalnej.
Odpowiedni pakiet wskazał w opisie, na przykład:
$ 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
O ile mi wiadomo, oba katalogi zawierają tylko kody źródłowe, a nie pliki binarne. Różnica między nimi polega głównie na architekturze docelowej kodów źródłowych.
Powiązane: Co zawiera drzewo źródeł jądra? Czy jest to związane z nagłówkami jądra Linux?
Rozszerzona odpowiedź (2015.07.30)
skoro oba przechowują x86
powiązany kod, jaka jest różnica między x86
kodem w dwóch katalogach? - Richard 29 lipca 2015 o 19:11
Większość katalogów i plików w /usr/src/linux-headers-X.X.XX-XX-generic
nich zawartych to dowiązania symboliczne, które wskazują na rzeczywiste katalogi i pliki w /usr/src/linux-headers-X.X.XX-XX
. Innymi słowy, arch/x86
w tych dwóch katalogach znajduje się tylko różnica między łączami rzeczywistymi i symbolicznymi, z pewnymi resztkowymi plikami asm
nagłówków w *-generic
odpowiedniku.
Pomiędzy tymi dwoma pakietami można zauważyć kolejną istotną różnicę - obecność config
i generated
katalogi w *-generic
odpowiedniku.
W moim najlepszym rozumieniu, sądzę, że *-generic
katalog zawiera niezbędne pliki nagłówkowe do konfigurowania i kompilowania modułów odpowiednich dla x86
architektury, bez dokonywania przypadkowych zmian w katalogu źródłowym linux-headers-x.x.xx-xx
.
Przede wszystkim dwa katalogi są prawdopodobnie „czystym” podejściem do pakowania i kompilowania pakietów na odpowiednich platformach. Chociaż nie jestem w stanie wyjaśnić tej kwestii.
Notatka odpowiadającego: w tym czasie napisałem naiwnie tę odpowiedź - nie jestem pewien, co jest poprawne, a co złe - a pomiędzy nimi może brakować jakiegoś wyjaśnienia. Dlatego ta odpowiedź jest teraz wiki społeczności, dzięki czemu każdy z minimalną reputacją może poprawić ten post, aby w pełni wyjaśnić różnicę.
x86
powiązany kod, jaka jest różnica międzyx86
kodem w dwóch katalogach?