博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何获取内核代码的变更信息说明
阅读量:5915 次
发布时间:2019-06-19

本文共 2074 字,大约阅读时间需要 6 分钟。

有时候内核代码因为各种原因,发生改变,如何查找更新理由?

1、首先git内核全部代码,不能用下载的压缩包,git可以包含全部信息。

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

2、查看下载的内核版本?

make kernelversion

3、比如:我想查看 include/linux/kernel.h内的min3()函数是何时更改的?

4、首先:用grep命令,查看min3的行号

grep -n  min3  include/linux/kernel.h

得到如下反馈:

fly@noi:~/linux-stable$ grep -n min3 include/linux/kernel.h820: * min3 - return minimum of three values825:#define min3(x, y, z) min((typeof(x))min(x, y), z)

5、根据行号:得到定义该宏的行号:825,然后使用git查hash码

fly@noi:~/linux-stable$ git blame -L824,825 include/linux/kernel.he8c97af0 (Randy Dunlap      2017-10-13 15:58:11 -0700 824)  */2e1d06e1 (Michal Nazarewicz 2014-10-09 15:30:13 -0700 825) #define min3(x, y, z) min((typeof(x))min(x, y), z)

可以得知:hash码为:2e1d06e1

6、使用git log命令查找相关的日志:

git log 2e1d06e1

哈哈,找到了更新min3函数的说明:

commit 2e1d06e1c05af9dbe8a3bfddeefbf041ca637fffAuthor: Michal Nazarewicz 
Date: Thu Oct 9 15:30:13 2014 -0700 include/linux/kernel.h: rewrite min3, max3 and clamp using min and max It appears that gcc is better at optimising a double call to min and max rather than open coded min3 and max3. This can be observed here: $ cat min-max.c #define min(x, y) ({ \ typeof(x) _min1 = (x); \ typeof(y) _min2 = (y); \ (void) (&_min1 == &_min2); \ _min1 < _min2 ? _min1 : _min2; }) #define min3(x, y, z) ({ \ typeof(x) _min1 = (x); \ typeof(y) _min2 = (y); \ typeof(z) _min3 = (z); \ (void) (&_min1 == &_min2); \ (void) (&_min1 == &_min3); \ _min1 < _min2 ? (_min1 < _min3 ? _min1 : _min3) : \ (_min2 < _min3 ? _min2 : _min3); }) int fmin3(int x, int y, int z) { return min3(x, y, z); } int fmin2(int x, int y, int z) { return min(min(x, y), z); }

。。。后面还有很多

转载地址:http://logpx.baihongyu.com/

你可能感兴趣的文章
ldap落地实战:gitlab集成openldap认证
查看>>
DIV+CSS IE6/IE7/IE8/FF兼容问题汇总
查看>>
轻松集成?GitCafe 支持 Webhooks 功能了
查看>>
编程语言之父谈语言设计,龟叔大赞 TypeScript
查看>>
C++泛型线性查找算法——find
查看>>
重拾C#教程:高级部分-索引器(Indexer)
查看>>
妈妈们的接种本有用了,输入生产批号就能查到问题疫苗
查看>>
[20180625]简单计算日志生成率.txt
查看>>
金融行业:如何节省10%单个人日,如何提升40%资源同步效率
查看>>
细数Intellij Idea10个蛋疼问题!
查看>>
如何把git仓库(包含所有提交历史)迁移到gitlab
查看>>
史上最漂亮“成绩单”告诉你:阿里巴巴远不止电商这么简单!
查看>>
《AI寒冬将至》作者:人工智能存在十大问题
查看>>
laravel-v5.1分页并带参数
查看>>
精通SpringBoot——第三篇:详解WebMvcConfigurer接口
查看>>
解读阿里云AI产品矩阵:目标是打造最强中国云计算能力
查看>>
赋能B端,AI物联网“涂鸦智能”完成近2亿美元C轮融资
查看>>
YY一下,扎克伯格做了一个什么样的AI家居助手?
查看>>
好书推荐:Java与模式.pdf
查看>>
JHipster生成微服务架构的应用栈(五)- 容器编排示例
查看>>