Linux 内核技术实战课
邵亚方
前蘑菇街技术专家,Linux Kernel 活跃贡献者
23704 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 26 讲
Linux 内核技术实战课
15
15
1.0x
00:00/00:00
登录|注册

结束语 | 第一次看内核代码,我也很懵逼

从99迈向100的可能性
未来的突破
每一步都越来越难
通过与开发者讨论不断学习
意识到自己的认知仍然肤浅
参与Linux社区工作后再次发现认知肤浅
认为自己是Linux内核专家
在师傅和同事的帮助下实现了特性
开始学习《深入Linux内核》
意识到对Linux的认知肤浅
自以为是Linux专家
安装了Windows+Ubuntu双系统
对Linux操作系统略有了解
从0到1的学习过程
与Linux社区的交流
狂妄自大的反复
实现一个Linux内核特性的经历
之前对Linux的认知
期待听到对课程的想法和建议
结束感言
学习Linux内核的经历
作者:邵亚方
《Linux内核技术实战课》
第一次看内核代码,我也很懵逼
参考文章

该思维导图由 AI 生成,仅供参考

你好,我是邵亚方。
我们的专栏就要接近尾声了,一路走来,非常感谢你的支持。我在这里想跟你分享一下我学习 Linux 内核的经历,希望我的个人经历能够给你带来一些启发。
我在从事 Linux 内核开发工作之前,几乎没有接触过 Linux 内核源码,只是对 Linux 操作系统略微了解一些,这还得益于大学期间 Ubuntu 的流行。那个时候我对什么都感到好奇,看到 Ubuntu 忽然流行起来,就在自己的电脑上也安装了 Windows+Ubuntu 双系统,天天折腾 Linux 命令和一些 Ubuntu 的使用技巧。然后没过多久,我就觉得自己是一个 Linux 专家了,开始在一些论坛上“指指点点”,觉得自己无所不能。
我们说,从 0 到 1 是一个从无到有的过程,对于发明创造来说这很难,但对于学习新东西而言,从 0 到 1 就相对容易了。不过,我那个时候把“学习”当成了“发明创造”,认为自己跨越了从 0 到 1 的阶段,就算是突破了学习 Linux 最难的部分,再往后就会顺其自然。
直到我开始实现一个 Linux 内核特性,才意识到自己对 Linux 的认知有多么肤浅。我之前掌握的那些 Linux 知识,只是让我从 0 迈出了一小步,而后面实际上还有 99 步要走。好在我及时意识到了自己的狂妄自大,开始埋头对照着 Linux 内核源码学习《深入 Linux 内核》这本书。在我的师傅手把手的指导以及周围同事的热心帮助下,我终于实现了 Linux 内核特性。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

第一次看内核代码,我也很懵逼,作者分享了自己学习Linux内核的经历。他在接触Linux内核源码之前几乎没有经验,曾自以为是Linux专家,但在实现一个Linux内核特性后才意识到自己认知的肤浅。在师傅和同事的帮助下,他逐渐深入学习,但在参与Linux社区工作时又发现自己认知的不足。作者强调了从0到1是相对容易的,但后续的每一步都会更加困难,并提醒读者不要陷入狂妄自大。他分享了自己的成长心路历程,鼓励读者在学习过程中保持谦逊和勤奋,不断前行。文章展现了作者在学习Linux内核过程中的成长与反思,对于初学者和技术人员都具有启发意义。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Linux 内核技术实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(9)

  • 最新
  • 精选
  • 我来也
    感谢老师的辛苦付出! 台上一分钟,台下十年功. 每次看到老师贴上提交的的`patch`,像如数家珍一样的. 想必每一个都让老师印象深刻吧! 别看每次提交的patch也许只修改了几行代码,但排查的过程肯定是非常艰难的. 像内核这种大型的项目,对代码的要求肯定是非常苛刻的. 即使是分析出了问题的根因,内核维护者对接收`patch`的要求也是非常高的吧. 这些`patch`还只是被合并了的. 想必未被合并,或者是排查出来了,但是在新版中已经修复的bug也不会少吧. ----- 我比较好奇,老师公司对系统内核有没有什么要求. 像老项目可能是没办法了,不能随便迁移. 但是新项目总会有些要求吧. 要不然这查起代码内核代码来,也是相当繁琐啊. ----- 另外,现在的趋势是应用上云,上k8s. 但是在容器中分析内核问题,比直接在宿主机上分析问题,又会复杂不少. 老师会有什么意见或建议么?

    作者回复: maintainer对patch要求还是很高的,需要跑很多测试用例来证明自己的patch是没有问题的; 生产环境中的很多内核问题都是在新内核版本中已经解决的; 新项目得内核版本我们这边的要求是4.18内核,和centos8保持一致; 容器中排查问题是相对麻烦一些,所以我们会在容器中添加一些指标来辅助我们排查问题。

    2020-10-08
    5
  • 机制小风风
    作为一个运维,也有研究一下ebpf,或者改改别跟的代码实现一下自己的想法。许多老师提到的排查思路,正是我特别特别缺的,即使找书来啃也是相当茫然,问题就摆在那,但不知道怎么尝试解决。老师这个课程简直太棒了,短小精悍,收益匪浅,让我有了无数想法。以后遇到类似问题,也能心中不慌。真是非常之感谢。期望老师更多的分享。

    作者回复: 能够对你有帮助感觉很欣慰

    2020-11-18
  • 于栋
    感谢老师让我学习了很多,老师牛逼👍,与老师相比,我还只是个小菜鸟,路途漫漫,其修远兮,一起加油😎

    作者回复: 一起加油!

    2020-10-08
    2
  • Linuxer
    这个课程我已经看了三遍了,感觉还是有新的收获,把老师讲的知识转化成自已的知识还是需要些时间,不过感觉收获挺大,PageCache方面的知识,最近也帮助解决了不少问题,第三遍的时候来留个言,表示一下感谢!
    2020-12-08
    3
  • Geek_3afe6c
    老师的内核学习路线是怎样的?如何从一个只会调用内核的接口的人变成一个内核开发人员?谢谢老师
    2022-02-20
  • Wade_阿伟
    跟着老师把整个系列课程学习下来了,真的收货很大,尤其是page cache管理和TCP重传量大章节。其他章节感觉自己功力还不够深厚,需要再跟着老师重复学习。最后,有个问题想得到老师的建议。我们现在生产环境开始使用基于ali kernel的4.19内核了,主要是算法和大数据业务。之前有专门学习了bcc-tools这类分析工具。但是对tracepiont kprobe和ePBF 理解还不够深厚。老师能提供这些知识的学习方法和相关资料吗?期望老师的回复
    2021-10-27
  • Geek_396cce
    醍醐灌顶,意犹未尽。 后会有期,江湖再见!
    2021-10-02
  • 五十九秒
    “从 0 到 1 真的是最简单的一步,往后的每一步会越来越难。”,受教了。
    2021-05-26
  • Su
    这就结束了,意犹未尽啊
    2020-10-08
收起评论
显示
设置
留言
9
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部