Linux内核技术实战课
邵亚方
前蘑菇街技术专家,Linux Kernel活跃贡献者
新⼈⾸单¥9.9
2877 人已学习
课程目录
已完结 24 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 如何让Linux内核更好地服务应用程序?
免费
Page Cache管理问题 (5讲)
01 基础篇 | 如何用数据观测Page Cache?
02 基础篇 | Page Cache是怎样产生和释放的?
03 案例篇 | 如何处理Page Cache难以回收产生的load飙高问题?
04 案例篇 | 如何处理Page Cache容易回收引起的业务性能问题?
免费
05 分析篇 | 如何判断问题是否由Page Cache产生的?
内存泄漏问题 (5讲)
06 基础篇 | 进程的哪些内存类型容易引起内存泄漏?
07 案例篇 | 如何预防内存泄漏导致的系统假死?
08 案例篇 | Shmem:进程没有消耗内存,内存哪去了?
09 分析篇 | 如何对内核内存泄漏做些基础的分析?
10 分析篇 | 内存泄漏时,我们该如何一步步找到根因?
TCP重传问题 (6讲)
11 基础篇 | TCP连接的建立和断开受哪些系统配置影响?
12 基础篇 | TCP收发包过程会受哪些配置项影响?
13 案例篇 | TCP拥塞控制是如何导致业务性能抖动的?
14 案例篇 | TCP端到端时延变大,怎样判断是哪里出现了问题?
15 分析篇 | 如何高效地分析TCP重传问题?
16 套路篇 | 如何分析常见的TCP问题?
内核态CPU利用率飙高问题 (4讲)
17 基础篇 | CPU是如何执行任务的?
18 案例篇 | 业务是否需要使用透明大页:水可载舟,亦可覆舟?
19 案例篇 | 网络吞吐高的业务是否需要开启网卡特性呢?
20 分析篇 | 如何分析CPU利用率飙高问题 ?
加餐 (1讲)
加餐 | 我是如何使用tracepoint来分析内核Bug的?
结束语 (1讲)
结束语 | 第一次看内核代码,我也很懵逼
结课测试 (1讲)
结课测试 | 这些Linux内核技术实战技能你都掌握了吗?
Linux内核技术实战课
15
15
1.0x
00:00/00:00
登录|注册

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

邵亚方 2020-10-08
你好,我是邵亚方。
我们的专栏就要接近尾声了,一路走来,非常感谢你的支持。我在这里想跟你分享一下我学习 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/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Linux内核技术实战课》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥9.9
立即订阅
登录 后留言

精选留言(3)

  • Su
    这就结束了,意犹未尽啊
    2020-10-08
  • 我来也
    感谢老师的辛苦付出!

    台上一分钟,台下十年功.
    每次看到老师贴上提交的的`patch`,像如数家珍一样的.
    想必每一个都让老师印象深刻吧!

    别看每次提交的patch也许只修改了几行代码,但排查的过程肯定是非常艰难的.
    像内核这种大型的项目,对代码的要求肯定是非常苛刻的.
    即使是分析出了问题的根因,内核维护者对接收`patch`的要求也是非常高的吧.

    这些`patch`还只是被合并了的.
    想必未被合并,或者是排查出来了,但是在新版中已经修复的bug也不会少吧.

    -----
    我比较好奇,老师公司对系统内核有没有什么要求.
    像老项目可能是没办法了,不能随便迁移.
    但是新项目总会有些要求吧.
    要不然这查起代码内核代码来,也是相当繁琐啊.

    -----
    另外,现在的趋势是应用上云,上k8s.
    但是在容器中分析内核问题,比直接在宿主机上分析问题,又会复杂不少.
    老师会有什么意见或建议么?

    作者回复: maintainer对patch要求还是很高的,需要跑很多测试用例来证明自己的patch是没有问题的;

    生产环境中的很多内核问题都是在新内核版本中已经解决的;
    新项目得内核版本我们这边的要求是4.18内核,和centos8保持一致;
    容器中排查问题是相对麻烦一些,所以我们会在容器中添加一些指标来辅助我们排查问题。

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

    作者回复: 一起加油!

    2020-10-08
收起评论
3
返回
顶部