Linux内核是操作系统的核心组件,很多开发者在学习内核原理、调试驱动程序或者进行内核定制时,都需要获取对应的内核源码。不同需求下获取源码的位置和方式存在差异,下面详细介绍常见的获取途径。

官方源码下载站点
Linux内核的官方维护站点是最权威的源码获取渠道,所有稳定版本和开发版本的源码都会在这里发布。官方站点的地址为 https://www.ipipp.com/pub/linux/kernel/,进入站点后可以看到按版本分类的目录:
- v1.0/ 到 v6.0/ 等目录对应不同主版本的内核源码压缩包
- stable/ 目录下存放当前维护的稳定版本源码
- testing/ 目录下是处于测试阶段的开发版本源码
用户可以根据自己的需求选择对应版本的压缩包下载,常见的压缩包格式有 .tar.xz、.tar.gz 等,下载完成后解压即可得到完整的源码目录。解压命令示例如下:
# 解压xz格式的压缩包 tar -xvf linux-6.1.20.tar.xz # 解压gz格式的压缩包 tar -xvf linux-6.1.20.tar.gz
代码托管平台查看
如果需要在线浏览最新的内核源码,或者查看某个提交的历史变更,可以在代码托管平台查看。内核官方在 GitHub 上维护了镜像仓库,地址为 https://github.com/torvalds/linux,这里会同步最新的内核开发分支代码。
除了官方镜像,还有很多第三方代码浏览平台也托管了内核源码,支持按文件路径、函数名检索,方便快速定位代码片段。如果只是临时查看某部分逻辑,不需要下载完整源码,在线平台是更高效的选择。
Linux发行版自带源码
很多Linux发行版会提供对应内核版本的源码包,用户可以直接通过包管理器安装,不需要手动到官网下载。不同发行版的安装命令有所区别:
| 发行版 | 安装命令 |
|---|---|
| Ubuntu/Debian | apt-get source linux-image-$(uname -r) |
| CentOS/RHEL | yum install kernel-devel-$(uname -r) |
| Arch Linux | pacman -S linux-headers |
这种方式获取的源码会和当前系统运行的内核版本完全匹配,适合需要针对当前系统内核进行驱动编译、模块开发的场景。
本地已安装系统的源码位置
如果已经通过包管理器安装了内核源码或者头文件,源码通常会存放在系统的固定目录下。常见的存放路径如下:
- 源码包解压后一般放在
/usr/src/linux-版本号/目录 - 内核头文件通常放在
/usr/src/linux-headers-版本号/目录 - 部分发行版会将源码放在
/lib/modules/$(uname -r)/build/目录,这个路径通常是一个软链接,指向实际的源码目录
可以通过以下命令查看当前系统对应的源码路径:
# 查看当前内核版本 uname -r # 查看build目录指向的实际路径 ls -l /lib/modules/$(uname -r)/build
验证源码完整性
从非官方渠道获取源码时,建议验证文件的完整性,避免出现文件损坏或者被篡改的情况。官方站点会提供每个压缩包对应的校验文件,常见的是 .sign 签名文件和 sha256sums.asc 校验文件。
校验流程示例如下:
# 下载源码和对应的校验文件 wget https://www.ipipp.com/pub/linux/kernel/v6.x/linux-6.1.20.tar.xz wget https://www.ipipp.com/pub/linux/kernel/v6.x/linux-6.1.20.tar.sign # 校验签名 gpg --verify linux-6.1.20.tar.sign linux-6.1.20.tar.xz
如果校验通过,说明源码文件完整且未被篡改,可以放心使用。