Linux Kernel源码版本介绍
官方网站官网介绍了内核的基本信息,里面有长期支持版本和具体信息:官网说明:HTTP:网页可供下载各版本压缩包,补丁包,变更列表,工具软件等。GIT:git代码说明?RSYNC:是什么?[tarball]长期支持版完整压缩包下载链接,[pgp]压缩包签名,[patch]当前版本最新的补丁文件,此补丁文件描述了当前版本所有的补丁修改[inc.patch],最后2个...
官方网站
官网介绍了内核的基本信息,里面有长期支持版本和具体信息:
官网说明:
HTTP:网页可供下载各版本压缩包,补丁包,变更列表,工具软件等。
GIT:git代码说明?RSYNC:是什么?
[tarball]长期支持版完整压缩包下载链接,
[pgp]压缩包签名,
[patch]当前版本最新的补丁文件,此补丁文件描述了当前版本所有的补丁修改
[inc.patch],最后2个补丁文件修改信息
[view diff],查看相对上一个稳定版修改的文件信息
[browse],查看当前版本状态源文件
[changelog],查看相对上一个稳定版变更提交信息
内核版本
内核各版本路径里面可看到全部的版本信息:
内核介绍
点击进入一个版本,如3.x中,Index of /pub/linux/kernel/v3.x/,主要分几个部分:
1、ChangeLog
ChangeLog-3.0.10 表示单独某一版补丁的补丁修改日志
ChangeLog-3.0.10.sign 表示更改补丁日志的签名信息
根据日志查看补丁修改
vi ./ChangeLog-3.15.3 +2522
进入官网的[browse]页面,输入信息查询:
点击进入就能看到具体的修改信息:
2、linux源码
3种不同压缩格式,sign表示签名文件,表示单独某一版源码
3、Linux补丁
gz文件解压:gunzip
xz文件解压:xz -d
bz2文件解压: bunzip2
3种不同压缩格式(.gz文件必有),sign表示签名文件,补丁文件不是单独某一版的修改,而是前面补丁修改的所有累加和,所以可以看到补丁文件size随着补丁号增加而递增。
这样修改的文件都是基于前面的修改,打补丁时也只需打一个补丁。如果是中间补丁版本打新补丁版本会有问题吗?
查看某一版修改只能对比前后2个补丁文件差异,查看ChangeLog里面某一个log的提交日志修改文件怎么看呢?
搜索ChangeLog里面发现某个问题的修改提交在很多的子版本里面都有提交,说明子版本被分支出去后又合入了前面修改的bug:
批量下载补丁日志用于搜索关键字
测试用C代码:下载3.10到3.18变更文件,下载补丁文件类似。
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
int major=10;
int minor=0;
int patch=0;
int count=0;
char path[1024]={0,};
memset(path, 0, 1024);
while(major <= 18)
{
switch(major){
case 10:
patch = 108;
break;
case 11:
patch = 10;
break;
case 12:
patch = 69;
break;
case 13:
patch = 11;
break;
case 14:
patch = 79;
break;
case 15:
patch = 10;
break;
case 16:
patch = 63;
break;
case 17:
patch = 8;
break;
case 18:
patch = 20;
break;
default:
break;
}
for(minor=1;minor<=patch;minor++)
{
sprintf(path,"wget https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.%d.%d", major,minor);
if(system(path) < 0)
{
perror("system");
}
else
count++;
}
major++;
}
printf("count=%d\n",count);//count=378
return 1024;
}
下载后使用grep命令搜索关键字,然后获取出内核补丁版本,然后下载补丁文件进行查看修改差异。
更多推荐
所有评论(0)