缘起
- 之前有前辈对Linux内核、TCP/IP协议栈做过注解,只是之前使用的版本比较旧了,最新的内核版本(截止2022.02.08)已经更新到5.17-rc3了,本人不才,准备效仿前辈,计划对5.15版本的内核协议栈做一注释。
代码基础
- 以linux-5.15.17.tar.xz版本作为底版进行解读;
- 对应内核源码可以从kernel.org上找对应tar包,或者直接从Linux内核源码,5.15.17这里下载。
- 目前代码仅选取了上述内核tar包的net目录、net对应include目录,e100.c文件等。
github库
- Github主页
- 对应的repo库地址:
Reading-and-Comprehense-Linux-Kernel-Network-Protocol-Stack-Linux-5.15.17
该github除了更新代码注释外,也会将参考的资料(如后文涉及pdf书籍)、流程图、框图等更新到github仓库中。
操作方式
- 对应源码的注释会更新到上述提到的github仓库中,可在代码中搜索“qxhgd”字样来获取注释信息,注释格式类似下面这种:
/* qxhgd commented: 协议栈将要发送的skb通过该函数发给e100网卡驱动 */
- 源码的解析以及流程图,会同步更新到本专栏中;
参考书籍
- 《深入理解Linux网络技术内幕》
- 《Linux内核源码剖析:TCP/IP实现》
- 《TCP/IP详解》
后续如增加参考书籍,会陆续更新到这里。
相关工具
- 画图:draw.io
- 截图:FSCapture
- 代码:SourceInsight或VSCode