新闻详情

新闻详情

首页 / 资讯中心 / 详情

2.6.39发布了-最近关于内核开发的一些感受

发布时间:2026/9/9 13:57:23来源:尧图网络
2.6.39发布了-最近关于内核开发的一些感受
linux kernel 2.6.39终于发布了感觉从rc1到rc7挺长时间了这是一个值得纪念的内核版本。当然只是对于我而言是值得纪念的一个内核版本从39-rc1开始决定正式参与内核的开发了从刚开始不成熟地改了几个format的错误到后来改了几处函数错误再到后来为驱动核心写了注释一点点进步了也越来越专业了。可以说我为开源做贡献之路是从39这个版本开始的值得纪念。其实感受之前也写过以前一直觉得内核是个神圣的东西只能每天以一种朝神的姿态去读它去读懂它从来没想到过去改个一句半句的想都不敢想觉得那完全是不可能的事情而这毕业后一年的工作时间进步真的是太大了在学校的时候每天总是有这样的事那样的事有这样的作业那样的作业其实真正安心下来看代码的时间不多有时候容易浮燥没有大块大块的时间去研究一个东西而在上班的这段时间里本来就做linux 驱动的工作每天都是在做自己喜欢的事情看自己喜欢的代码大块大块的时候虽然有时也会被一些蛋疼的事情打断但是总体来说重心还是在这个上面。虽然有时间工作的内容有些简单毕竟有时候做驱动只是加一些board device,有时候或许看了好几天的一个模块在改的时候就改几行或者改几个参数就OK了但是重要的不是结果不是这个设备工作了正常工作了而是对这个设备的理解对这个驱动的理解对driver core的理解对linux kernel整个系统的理解。所以有时候工作了一样长的时间做了一样的一些工作有做的好的有做的不好的人。而且做了同样的事情人跟人得到的收获也不一样。比如做一个简单的按键的驱动或者触摸屏的驱动可以按照前人加过的代码照着改一改能工作了OK工作做完了下次做的时候还是一样的步骤。最后呢这玩意是个啥是怎么工作起来的不了了之这样反而会觉得工作没有乐趣没有一点意思。而相反在这样的设备工作以后你可以进一步看看它是怎么样工作的驱动核心是怎么样把它们驱动起来的输入核心代码是怎么样实现的这样的一层层的核心代码是怎么样才让你在写一个设备的驱动的时候如此简单地就完成了工作都了解了在做别的输入设备驱动的时候even在做其它设备驱动的时候也许就得心应手了因为你理解了输入核心理解了驱动核心久而久之也许对整个系统也了如执掌了完全可以做优化整个系统的工作了。这是我的理解在平时的工作中我经常从做一个简单模块的时候尽量理解得深入一些这反而增加了不少工作的乐趣。可喜可贺。另外在理解得深入的前提下我觉得要有一颗为开源做贡献的心虽然有时候也会有私心因为看着自己的patch被apply也会有一些小小的虚荣心成就感当然这也是应该的没有自己心理上的满足没有成就感就没有动力。像前几天在做关于nand flash驱动的时候看了看mtd core发现了一个问题当时很兴奋那天晚上回来就马上提交了一个patch今天被apply了哈哈。以前总是会觉得kernel那么大找出个错误多不容易啊咋能那么容易就提一个patch呢其实很容易在平时看它的时候当然前提是要读代码在读的时候也许就发现错误了在调试的时候也许就发现错误了也许这个bug你fix掉后就被采纳了呢。做内核开发我觉得必须要有激情有时候发现一个bug我会弄到大半夜去提这个patch有时候真是生怕被别人抢先fix掉了这个bug这是一个充满激情的地方在邮件队列里有的是不分日夜在那里为内核提交patch的大牛们要向他们学习学习这种激情。不知不觉扯远了本来是想说说39内核的昨天linus加了39的tag后意味着39正式发布了然后还发了一个邮件说接下来两周 要去日本参加活动39不能再delay了本想发个rc8的还是先发个39然后打开40的merge window吧希望在回来前不会有大麻烦。就这样39就发布了听起来并不是那么的神圣吧哈哈。本来这个文章是想写写今天发patch的一个体会的现在才开始写只能当作PS了哈哈。前天发了一个关于drivers/mtd/mtdcore.c的patch发了两个一个被apply了一个没有Artem说第二个在他的l2 tree里面merge不了因为proc函数被别人重写过了我去他的tree看了一下发现果然如此我的patch是基于linus的tree发的果然很过时然后就想把他的l2 tree 给clone下来改一改再提个patch但是clone一个tree实在是太费劲的真是很不容易于是我只把那一个文件拿了下来。然后1 mkdir temp_kernel23 cd temp_kernel45 git init67 mkdir -p drivers/mtd/89 cp mtdcore.c temp_kernel/drivers/mtd/1011 git add *1213 git commit -m init1415 vi temp_kernel/drivers/mtd/mtdcore.c #然后就是一顿改1617 git diff #看看改的有没有问题18 git commit -a #写点注释1920 git format-patch -s -12122 git send-email --from Wanlong Gao wanlong.gaogmail.com --to Artem ***mail --cc linux-kernelvger.kernel.org 0001-****这样就发出去了patch跟直接在linus tree上改的一样这样也很方便非常方便免去了clone整个tree的麻烦因为各个维护者的tree实在是太多了要是都clone下来还要每天在改之前pull一下那就是一个e梦啊。这是一个不错的方法哦哈哈。提patch的同学可以看看。题外话昨天39内核发布后今天40的window一打开疯子一样的一顿pull 啊晚上回来更新了一下linus tree更新了快两个M的代码疯狂的kernel hackers。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

2026年最新降AI率工具推荐,AI率从90%直降到17%!(内附实测体验) 2026/9/9 16:20:57

2026年最新降AI率工具推荐,AI率从90%直降到17%!(内附实测体验)

谁懂啊?论文查重刚过,又冒出来一个AI率。说实话,这茬真够磨人的。明明是自己一个字一个字敲出来的,逻辑自己理的,数据自己跑的,结果检测报告一出来,标红一片,说这段疑似AI生成&#…

阅读更多 →
快速定制 Hermes WebUI 外观:从明暗模式到自定义皮肤完整教程 2026/9/9 16:20:57

快速定制 Hermes WebUI 外观:从明暗模式到自定义皮肤完整教程

快速定制 Hermes WebUI 外观:从明暗模式到自定义皮肤完整教程 【免费下载链接】hermes-webui Hermes WebUI: The best way to use Hermes Agent from the web or from your phone! 项目地址: https://gitcode.com/GitHub_Trending/he/hermes-webui 打开 Herm…

阅读更多 →
Web Dynpro Table控件数据源绑定与服务调用实战解析 2026/9/9 16:20:57

Web Dynpro Table控件数据源绑定与服务调用实战解析

做 Web Dynpro ABAP 开发的人,几乎都会在 Table 控件上栽过几个跟头。别的不说,光“WDA005 Table 控件的数据源与服务调用”这个经典课题,就够不少人琢磨一阵子——Table 控件真的只是个展示标签吗?数据源是不是一定得直接查数据库…

阅读更多 →
SpringBoot接口传参:查询参数、路径参数与JSON参数详解 2026/9/9 16:20:57

SpringBoot接口传参:查询参数、路径参数与JSON参数详解

从一次前后端联调的“参数大战”说起。前端同事甩过来一句话:“我明明把参数传过去了,你后端怎么还说没收到?”我一看请求日志,参数躺在URL的?号后面,而后端接口用RequestBody等着JSON,两边压根没对齐。Sp…

阅读更多 →
基于雨流计数法的源-荷-储双层协同优化配置Matlab实现 2026/9/9 16:20:57

基于雨流计数法的源-荷-储双层协同优化配置Matlab实现

这个课题我当年做了很久,老实说,市面上讲雨流计数法的文章不少,讲双层优化的更多,但把“雨流计数法”和“源-荷-储双层协同优化配置”真正串起来、并且用Matlab完整实现的资料,确实不多。大多数人要么把电池寿命当成固…

阅读更多 →
JAVA毕设选题推荐:轻量化校园新闻展示与管理平台的设计与实现 基于 SpringBoot 的高校校园新闻动态系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】 2026/9/9 16:17:57

JAVA毕设选题推荐:轻量化校园新闻展示与管理平台的设计与实现 基于 SpringBoot 的高校校园新闻动态系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞