本项目为开源项目,开源许可遵守GPL协议,项目所有权属于参与该项目的所有活跃人员。
首先感谢Linus为世界贡献了Linux kernel这个伟大的项目,解决了多少码农的生计啊~~~ :D
我本身就是一个内核爱好者,从事网络开发十余年了。平时没事的时候,就研究一下内核代码,收获良多。
- 大部分内核代码的质量很高,可以学到不少知识,如设计、架构,技巧等;
- 可以深入理解OS是怎么组织运行的;
- 提交patch,回馈社区;在提交patch的过程中,既有成就感,也可以获得和世界级优秀工程师交流的机会;
- 可以锻炼自己阅读和掌控大型软件的能力;
在学习内核代码的过程中,经常会做些笔记。而在使用笔记的过程中,还经常需要对照源码,重新回忆。与其这样麻烦,还不如直接在内核源码中做笔记和注释呢。再深入的想一想,为什么不把这个做成一个开源项目呢?这样便于更多同学参与进来,那怕只是注释一个结构。就算没有几个人参与进来,把自己做的注释和笔记公开出来,也算给国内的同学做些奉献,推动内核在国内的发展:)
因为自己的领域是网络,所以一直关注和熟悉的也只是内核的网络模块。所以以我个人而言,初期会聚焦于内核网络模块代码的注释和笔记。深切希望有其他领域的大牛同学来负责其它内核模块。
欢迎各路大牛贡献merge request~~
本项目会紧跟由David负责的网络主线版本net.git,即git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
每次注释提交,需要是一个完整的注释,如以下几种情况:
- 完整注释一个功能;
- 完整注释一个关键struct;
- 完整注释一个关键函数;
注:提交日志参考内核的commit格式;
示例:
commit 5b883739c194c943ebedbc00078f11bddd6ef54d
Author: GaoFeng <gfree.wind at gmail.com>
Date: Fri May 11 08:47:16 2018 +0800
net: 增加对struct softnet_data的注释和说明
struct softnet_data是内核收包的关键结构。本次提交除xfrm_backlog成员外,
全部进行了注释和说明。
这个项目会跟踪最新的内核代码,所以要有合并内核代码的提交。
- 每1~2周合并一次内核代码
- 合并内核代码,不能用merge的方式,而是一次性提交所有内核改动;
- 提交说明注明跟踪到了内核哪个commit;
- 合并内核代码后,必须保证项目可以成功编译;(x86或者x64);
经过一个多月的实践,发现同步所有最新的内核代码不太必要,而且很费时间。因为目前就我一个人在做网络模块的注释和说明,所有目前只同步最新的网络模块的代码,主要是net、include和driver目录。
net:高峰(gfree.wind at gmail.com)
driver: 高峰(gfree.wind at gmail.com)