2020 年,我运营过知乎专栏《高速缓存与一致性》,更新结束后,便再无新的技术话题分享。

知乎于我而言,是一个格外正式的平台,总想着做体系化的基础技术分享,无形之中给自己设立了很高的分享屏障。而那些琐碎的个人见解、突发的技术思考,总需要一个更轻松的出口,于是我决定维护一个微信公众号。在这里,我会分享个人的成长经历、实用的学习方法,也会聊聊内核开发的技术观点、深耕不辍的基础知识点——我向来格外在意基础,也乐于分享基础;会探讨新潮话题,比如 AI 对Linux 开发者如何提效?也会做书籍推荐,都是我自己读过、觉得有价值的内容。
初出茅庐
2017 年,我本科毕业加入上海闻泰从事 Linux 驱动研发工作。刚走出校园的我,对 Linux 开发满是热情,同年恰逢宋宝华老师的微信公众号起号初期,向所有 Linux 爱好者征文。我至今记得,当时怀着忐忑的心情,写了一封邮件,把自己梳理许久的设备树解析文章完整附上,原本只是抱着试试看的心态,没想到竟收到了不少鼓励和建议。也是从这一刻起,我开始陆陆续续输出技术文章,宋老师的公众号、蜗窝科技的论坛、知乎专栏,都能看到我的文字,越来越多 Linux 行业的从业者,也开始认识我。
刚毕业的这一年,我的生活简单又纯粹:除了上班做好本职工作,休息时便埋首 Linux 源码,写代码解析笔记,再把这些内容分享到不同渠道。说实话,那时的分享并不全然纯粹,我也带着一点对知名度的期许,希望能为自己的未来,谋求一份更好的“机缘”。2018 年,我写了 6 篇 CFS 的代码解析分享,也顺理成章地向 Linux 内核社区发送了自己的第一个 patch,初衷是修复 CFS 调度器的 vruntime 的计算错误问题。从这一个 patch 开始,我向社区提交 patch 的脚步,便一发不可收拾。
机缘转折
2019 年,如我所预想的那样,我确实等到了一份不错的"机缘"——这份机缘的到来,满是曲折,后续慢慢和大家分享。这一年,我加入字节跳动,正式从事 Linux 内核研发工作。
2020 年,我几乎一整年都在和内核 Bug 打交道,可能是因为当年我们是国内首个大规模上量 v5.4 的内核,这一年修复了大量社区的 Bug。

2021 年,我遇到一个问题:如何把云场景下使用的大页对应的元数据 struct page ,节省出来供其他程序使用。当时觉得这个问题应该不难,毕竟同事告诉我,百度、阿里等大厂都已经有了自己的解决方案。彼时的我,既没太多相关经验,也对问题的复杂度没什么概念,凭着一股冲劲提出了 HVO 方案。谁曾想,这个方案历经 23 个版本的打磨,耗时整整一年,才成功合入 Linux 内核社区。在方案推进的过程中,随着社区里各家公司的反馈纷至沓来,我才渐渐意识到,原来这个问题被这么多企业关注,而在 HVO 方案出现之前,行业内始终没有一个通用的解决方案,我这才真正体会到这个问题的棘手。但有趣的是,往往是解决问题后,才懂问题有多难,我很幸运,最开始的一无所知,让我少了瞻前顾后的顾虑,敢直接躬身入局。所谓不曾预见前路的难,才敢迈出坚定的步,所谓破局,不过是先行动,再成长。

写在最后
五年前,是对着设备树源码埋头苦啃的内核小白;五年后,是躬身 Linux 内核社区的维护者。这条路从非坦途,但所幸从未停下脚步。未来,本号将聚焦微架构、体系结构、操作系统等底层技术,也会偶尔聊聊成长历程与行业思考。愿与同频的你,并肩深耕技术,稳步奔赴前路。