工具
工欲善其事必先利其器,下面介绍一下读代码的工具和资料
网站
Linux内核官网
官网里面可以下载内核源代码
还可以查看各个patch当初修改的代码内容和提交时的内容
官方文档
在线阅读代码神器
内核代码讲解
内核函数流程图
书籍
Linux内核源代码情景分析
深入理解Linux内核架构
Linux编程接口
奔跑吧 Linux内核
相关代码
首先是调度代码
然后是时间子系统
最后是如何统计CPU时间
这里说一下我为什么要看这几块代码,如何统计CPU时间是这次项目的核心,其中关键选项是VIRT_CPU_ACCOUNTING和VIRT_CPU_ACCOUNTING_GEN。但是要打开这两个选项,又要看no_hz选项。又由于我发现CFS在文档中说明可以防御主动放弃tick的攻击,所以我又阅读了调度相关的代码。
讲解源码原则
数据结构
相关函数及其调用流程