특정 커널 버전에 대한 소스를 다운로드할 수 있는 리소스가 있습니까? 예를 들어, 비교할 2.6.36.2 소스를 가져오고 싶습니다.이 가방어떤 변경 사항이 도입되었는지 확인하세요.
답변1
이 작업을 여러 번 수행하려는 경우 가장 쉽고 대역폭 친화적인 방법은 커널의 git 저장소를 복제하고 해당 태그를 기반으로 원하는 버전을 보는 것입니다. 복제하는 것이 더 좋습니다리눅스 안정적인 저장소, 여기에는 태그의 모든 안정적인 버전이 포함됩니다.
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
cd linux
git checkout v2.6.36.2
나중에 다른 버전으로 전환하는 방법은 간단합니다.
git checkout v3.5.2
모든 최신 태그와 커밋을 포함하도록 저장소를 업데이트하려면 다음 안내를 따르세요.
git fetch
답변2
예,kernel.org가지다게시된 모든 버전, 포함하다2.6.36.2. 그러나 대부분의 Linux 배포판은 일반 커널 소스 코드에 자체 패치를 적용합니다.
답변3
전체 커널 커밋 기록(1GiB 이상)을 다운로드하지 않으려면 원하는 분기로 연결되는 커널 Git 저장소 부분만 다운로드하면 됩니다. 예를 들어 버전 4.5에서 로컬로 Ubuntu 커널을 확인하려면 다음을 수행합니다.
git clone --depth 1 --single-branch --branch v4.5 git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack
결과적으로 클론 크기는 약 150MiB가 됩니다.
답변4
다양한 Linux 커널 포크를 어디서, 어떻게 구할 수 있는지 알아내려고 애쓰고 있었기 때문에 이에 대해 자세히 설명하고 어디서 배웠는지 보여주고 싶었습니다. 이 연구를 통해 링크를 수정하고 업데이트할 수도 있습니다.가장 많이 투표된 답변 중, 최근에 제가 한 일입니다.
어디그리고어떻게공식 Linux 커널 소스 코드 받기
빠른 요약
Linux 커널 소스 코드의 공식 코드 위치는 다음과 같습니다.https://kernel.org/.
옵션 1: 관심 있는 커널 버전 tar 파일만 수동으로 다운로드
관심 있는 버전을 탐색하고 다운로드하려면 여기로 이동하세요.https://mirrors.edge.kernel.org/pub/linux/kernel/.
예: 이 페이지의 OP v2.6.32.2:https://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/. .tar.xz
이 파일의 버전이 가장 작으므로 다운로드하는 것이 좋습니다 .리눅스-2.6.36.2.tar.xz. .sign
옆에 있는 파일에는 다운로드한 파일의 신뢰성과 무결성을 확인하는 암호화된 PGP 서명이 포함되어 있습니다. 서명을 확인하는 명령을 포함하여 여기에서 자세한 내용을 읽어보세요.https://kernel.org/category/signatures.html.
명령줄에서 파일을 다운로드하는 것도 매우 쉽습니다. 다음과 같이 보일 수 있습니다.
# Download the file, showing a progress bar; this file is 56 MB
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.2.tar.xz
# extract it; on a fast computer this takes ~4 sec.; the extracted
# "linux-2.6.36.2" dir is ~400 MB when done
time tar -xvf linux-2.6.36.2.tar.xz
옵션 2(권장): git을 사용하여 다운로드모두버전 및 보기어느버전
# clone the latest Stable and Longterm release tree (git repo)
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
# cd into it
cd linux
# view all tags, which contain the many many version numbers
# - see my answer here: https://stackoverflow.com/a/69275540/4561887
git log --no-walk --tags --oneline
# Once you identify the one of interest (ex: 2.6.36.2), check out the commit
# with that tag
git checkout v2.6.36.2
세부 사항
공식 Linux 커널 소스 코드는 Linux Kernel Archives에 있습니다.https://kernel.org/.
복제하려는 Git 저장소 "트리"를 선택합니다.
아래 인용문은 이 페이지에서 가져온 것입니다.https://kernel.org/category/releases.html. 그리고 대괄호([]) 안에 제가 한 말을 덧붙였습니다.
사전 패치
사전 패치 또는 "RC"[릴리스 후보] 커널은 메인라인 커널의 시험판 버전으로, 주로 다른 커널 개발자와 Linux 매니아를 대상으로 합니다. 소스 코드에서 컴파일해야 하며 안정적인 릴리스에 포함되기 전에 테스트해야 하는 새로운 기능을 포함하는 경우가 많습니다. Prepatch 커널은 Linus Torvalds가 유지 관리하고 게시합니다. [그들의 버전은 숫자가-rcX
어디에 있는지로 끝납니다.X
]본선
메인라인 트리는 Linus Torvalds가 관리합니다. 이것은 모든 새로운 기능이 도입되고 모든 흥미로운 새로운 개발이 일어나는 트리입니다. 새로운 메인라인 커널은 9~10주마다 출시됩니다.안정적인
각 메인라인 커널이 출시되면 "안정적"인 것으로 간주됩니다. 안정 커널에 대한 모든 버그 수정은 메인라인 트리에서 백포트되어 지정된 안정 커널 관리자에 의해 적용됩니다. "장기 유지 관리 커널"로 지정되지 않는 한, 다음 메인라인 커널이 출시되기 전에 일반적으로 몇 가지 버그 수정 커널 릴리스만 있습니다. 안정적인 커널 업데이트는 필요에 따라 일반적으로 일주일에 한 번씩 릴리스됩니다.긴
일반적으로 이전 커널 트리의 버그 수정을 백포트하는 "장기 유지 관리" 커널 릴리스가 여러 개 있습니다. 이러한 커널에는 중요한 버그 수정만 적용되며, 특히 오래된 트리의 경우 자주 릴리스되는 경우에는 일반적으로 나타나지 않습니다. [여기에서 모든 장기 릴리스 표를 확인하세요: https://kernel.org/category/releases.html. 대부분은 최대 6년까지 지원됩니다. ]
git clone
URL
원하는 저장소를 복제하십시오. 복제 URL이 여러 개인 경우 어느 URL이든 작동하지만 아래 각 목록의 첫 번째 URL을 선호합니다.
- 사전 패치("릴리스 후보" 또는
-rc
) 및 메인라인(주 작업 트리) 릴리스의 경우:# From kernel.org directly # See: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git clone https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux.git # Or, an exact mirror on GitHub # See: https://github.com/torvalds/linux git clone https://github.com/torvalds/linux
- 안정적인 장기 릴리스의 경우:
# From kernel.org directly # See: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git git clone https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux.git # Note: This URL still works as of Dec. 2022, and has the exact same content # as the URLs above, but is no longer listed in the list of **all** # repos/trees here (https://git.kernel.org/), and so it appears to be # deprecated. Use the URLs above instead. git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
- "Linux-Next"(무슨 뜻인지 잘 모르겠습니다) 버전의 경우:
# From kernel.org directly # See: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/ git clone git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git clone https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git clone https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next.git
커널에서 개발 중이거나 최신 버전을 보려면 메인라인 git 트리가 필요할 수 있습니다.
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
# or on GitHub
git clone https://github.com/torvalds/linux
문제의 내용(v2.6.36.2)과 같이 주어진 안정 또는 장기 버전 번호를 다운로드하려는 경우 안정 및 장기 버전 트리를 복제하고 cd
해당 버전으로 이동하십시오.
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
cd linux # cd into the newly-cloned dir
그런 다음 모든 버전 번호 태그를 볼 수 있습니다(자세한 내용과 추가 명령은 내 답변을 참조하세요.), 그런 다음 관심 있는 항목을 봅니다.
git log --no-walk --tags --oneline
git checkout v2.6.36.2
git clone
위의 kernel.org URL을 어떻게 찾나요 ?
홈페이지로 이동:https://kernel.org/그런 다음 "찾아보기" 링크를 클릭하세요.
그런 다음 상단의 "요약" 열 헤더를 클릭하고 하단에서 "복제" 링크를 찾으세요.
인용하다
- https://kernel.org/category/signatures.html- 이 페이지에서 PGP 서명을 확인하고 개별 tar 파일의 다운로드 URL을 찾는 방법을 배웠습니다.
- 내 대답:모든 태그 표시
git log
- https://linuxize.com/post/how-to-extract-unzip-tar-xz-file/