https://ieevee.com/tech/2018/03/30/centos-kernel.html

有个小问题一直没闹明白:CentOS的内核源代码从哪里下?

如果是linux主线的代码,可以github上获取了:[[linux] (https://github.com/torvalds/linux)(4.5之后的版本)。但需要注意centos并不是使用的linux主线的内核,而是redhat自己维护的。

查了下资料,在这做个笔记。

centos的内核源码获取方式参考[这里的说明]

centos将源码都归档到了[git.centos.org],但如果直接去看
[kernel rpm
git]

你会发现根本找不到代码的影子。

centos用了一个特别的办法。

[user\@host]\$ git clone https://git.centos.org/git/rpms/kernel.git
[user\@host]\$ git clone
https://git.centos.org/git/centos-git-common.git\[user\@host\]\$ cd
kernel# 举例说我们要修改 centos7 的内核[user\@host]\$ git checkout
c7#
get_sources会分析当前git目录,下载对应的kernel压缩包[user\@host]\$
../centos-git-common/get_sources.sh

在kernel目录下执行get_sources.sh时,脚本会分析kernel目录下的.kernel.metadata文件,这个文件记录了当前版本需要对应的kernel源代码文件的sha值。

4cddbe6531170fad4a6dd31f10512e6bd4298fbd
SOURCES/kernel-abi-whitelists-693.tar.bz243853d8a8a8c9ff26f3efc87757a197321f83e79
SOURCES/linux-3.10.0-693.21.1.el7.tar.xz95b9b811c7b0a6c98b2eafc4e7d6d24f2cb63289
SOURCES/rheldup3.x509

d90885108d225a234a5a9d054fc80893a5bd54d0
SOURCES/rhelkpatch1.x5095a7d05a8298cf38d43689470e8e43230d8add0f9
SOURCES/centos-kpatch.x509

c61172887746663d3bdd9acaa263cbfacf99e8b3
SOURCES/centos-ldup.x5096e9105eb51e55a46761838f289a917611cad8091
SOURCES/centos.cer

之后会去 \${SURL/\${pn/\${br/\${fsha (如
https://git.centos.org/sources/kernel/c7/{fsha)
通过curl下载对应的文件,最终会在SOURCES目录下得到刚下载的的linux-3.10.0-693.21.1.el7.tar.xz压缩包,解压即可。