Skip to content

gfreewind/kernel_comment

Repository files navigation

Linux内核中文注释版

版权说明

本项目为开源项目,开源许可遵守GPL协议,项目所有权属于参与该项目的所有活跃人员。

禁止他人或者机构将本项目用于商业用途,如收费栏目,出版等。

概述

首先感谢Linus为世界贡献了Linux kernel这个伟大的项目,解决了多少码农的生计啊~~~ :D

我本身就是一个内核爱好者,从事网络开发十余年了。平时没事的时候,就研究一下内核代码,收获良多。

  1. 大部分内核代码的质量很高,可以学到不少知识,如设计、架构,技巧等;
  2. 可以深入理解OS是怎么组织运行的;
  3. 提交patch,回馈社区;在提交patch的过程中,既有成就感,也可以获得和世界级优秀工程师交流的机会;
  4. 可以锻炼自己阅读和掌控大型软件的能力;

在学习内核代码的过程中,经常会做些笔记。而在使用笔记的过程中,还经常需要对照源码,重新回忆。与其这样麻烦,还不如直接在内核源码中做笔记和注释呢。再深入的想一想,为什么不把这个做成一个开源项目呢?这样便于更多同学参与进来,那怕只是注释一个结构。就算没有几个人参与进来,把自己做的注释和笔记公开出来,也算给国内的同学做些奉献,推动内核在国内的发展:)

因为自己的领域是网络,所以一直关注和熟悉的也只是内核的网络模块。所以以我个人而言,初期会聚焦于内核网络模块代码的注释和笔记。深切希望有其他领域的大牛同学来负责其它内核模块。

欢迎各路大牛贡献merge request~~

本项目会紧跟由David负责的网络主线版本net.git,即git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git

commit要求

注释提交

每次注释提交,需要是一个完整的注释,如以下几种情况:

  1. 完整注释一个功能;
  2. 完整注释一个关键struct;
  3. 完整注释一个关键函数;
    注:提交日志参考内核的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. 每1~2周合并一次内核代码
  2. 合并内核代码,不能用merge的方式,而是一次性提交所有内核改动;
  3. 提交说明注明跟踪到了内核哪个commit;
  4. 合并内核代码后,必须保证项目可以成功编译;(x86或者x64);

经过一个多月的实践,发现同步所有最新的内核代码不太必要,而且很费时间。因为目前就我一个人在做网络模块的注释和说明,所有目前只同步最新的网络模块的代码,主要是net、include和driver目录。

项目活跃成员

net:高峰(gfree.wind at gmail.com)
driver: 高峰(gfree.wind at gmail.com)

About

中文注释说明内核源码

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published