src 버전 3. *와 3. *-generic의 차이점 대한 두 개의

내 로컬 Linux / Ubuntu에는 Linux src에 대한 두 개의 디렉토리가 있습니다.

/usr/src/linux-3.16.0
/usr/src/linux-3.16.0-generic

3.16.0의 코드는 3.16.0-generic의 코드보다 훨씬 큽니다. 두 디렉토리가 왜 그리고 어떻게 다른지 궁금합니다.



답변

커널에 대한 헤더 파일을 포함하는 해당 패키지가 두 디렉토리를 제공합니다. 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 커널 헤더와 관련이 있습니까?

확장 된 답변 (2015.07.30)

두 상점 모두 x86관련 코드이므로 x86두 디렉토리 의 코드와의 차이점은 무엇 입니까? – Richard Jul 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대응합니다.

이 두 패키지 사이에서 또 하나의 주요 차이점은 상대 디렉토리 의 존재 configgenerated디렉토리입니다 *-generic.

필자의 이해는 *-generic디렉토리 에 소스 디렉토리를 실수로 변경 하지 않고x86 아키텍처와 관련된 모듈을 구성하고 컴파일하는 데 필요한 헤더 파일 이 있다고 생각합니다 .linux-headers-x.x.xx-xx

무엇보다도, 두 디렉토리는 아마도 각 플랫폼에서 패키지를 패키징하고 컴파일하는 “깨끗한”접근 방식 일 것입니다. 그러나 나는이 문제를 분명히 할 수있는 입장이 아닙니다.


Answers ‘s note : 나는 그 대답을 당시에 순진하게 썼다-무엇이 옳고 그른지 확실하지 않다. 따라서이 답변은 이제 커뮤니티 위키이므로 최소한의 평판을 가진 사람이라면 누구나이 게시물을 개선하여 차이점을 충분히 설명 할 수 있습니다.


답변