Linux 커널 소스 트리란 무엇입니까? 여기에는 무엇이 포함되어 있으며 그 목적은 무엇입니까?
외부 모듈을 구축하려고 하는데 제가 사용하고 있는 튜토리얼에서는 커널 소스 트리를 사용할 수 있는지 확인하라고 나와 있습니다.
사용 가능한 경우 우분투에서 어디에서 찾을 수 있나요?
여기에도 비슷한 질문이 있습니다.
커널 소스 트리에는 무엇이 포함되어 있나요? 이것은 Linux 커널 헤더 파일과 관련이 있습니까?
하지만 내 질문에 대한 답변이 표시되지 않습니다.
이 점을 명확히 할 수 있다면 좋을 것 같습니다.
답변1
소스 트리는 모든 커널 소스 코드를 포함하는 디렉터리입니다. 새 커널을 빌드하고 설치한 다음 컴퓨터를 다시 시작하여 다시 빌드된 커널을 사용할 수 있습니다. 학습 외에도 사람들은 덜 일반적으로 사용되는 옵션을 선택하거나 일반적으로 Linux에 번들로 제공되지 않는 장치 드라이버를 추가하기 위해 커널을 다시 빌드합니다.
당신은 그것을 찾을 수 없습니다존재하다Ubuntu에서는 소스 tar 파일을 다운로드해야 합니다 kernel.org
. Ubuntu는 많은 용도로 Debian 패키지를 사용하며 후자의 웹 사이트에서는 이러한 패키지를 더 쉽게 찾을 수 있습니다.
두 경우 모두 "원시" tar 파일("업스트림"의)과 "debian" 추가 기능(스크립트 및 패키지)이 포함되어 있습니다. 데비안에서 두 파일을 모두 다운로드할 수 있습니다. 설치된 커널 패키지의 소스 코드를 찾고 있다면 두 부분을 모두 다운로드할 수 있습니다.
"linux-source" 패키지를 설치할 수도 있습니다: Debian 및우분투몇 가지 소스 패키지가 제공되며 이는 그 중 하나입니다. 다른 패키지 수만 개에 비해 이름에 "-source"가 포함된 패키지는 수십 개만 확인되었습니다. 많은 수정 사항(및 사용자 정의)이 필요하고 소스 패키지는 이러한 패치를 트리에 병합하므로 소스 패키지가 선호됩니다.
약 10년 전까지만 해도 사운드, 비디오, 네트워킹을 위한 드라이버가 부족하여 커널을 자주 빌드했습니다.
답변2
커널 개발자는 특정 git 저장소를 언급하면서 "내 나무"와 "그 나무"에 대해 자주 이야기합니다. 디렉토리 트리 구조는 현재 git 저장소에서 어떤 브랜치나 태그가 체크아웃되어 있는지에 따라 다르게 보입니다. Git의 분기 시스템은 다음과 같습니다.반품트리 구조(따라서 "브랜치"라는 이름)로 간주되는 이는 디렉토리 구조와 완전히 다른 개념입니다. 따라서 첫 번째 질문에 대한 답은 보기만큼 간단하지 않습니다. 내 경험에 따르면 일부 사람들에게 "커널 트리"라는 용어는 커널 소스 코드의 특정 git 저장소에 존재하는 git 분기 및 해당 콘텐츠 모음을 의미합니다. 그들은 "linux-next"가 메인라인 트리와 다른 트리라고 말할 것입니다.