linux最吸引我的地方之一就是它拥有一个大侠云集的社区,还有就是假如能=为linux内核中贡献代码,一定是一件令人自豪的事情.
下边主要总结一些和贡献代码相关的主要内容.
1.加入社区
假如想为linux贡献代码,这么加入linux社区是必须的,加入了社区linux版qq,除了可以及时内核的最新消息,并且可以及时和社区内有经验的内核开发者交流经验.
同时也是递交代码和讨论代码的地方,了解社区的规则,融入社区环境之中linux命令大全,能够更好的学习内核,感受内核开发的乐趣和成就感.
内核社区说白了就是内核电邮列表(LKMLlinuxkernelmaillist)
订阅电邮列表的网址:这儿面有linux相关的各类电邮列表
关于内核的电邮列表是:#linux-kernel
不仅电邮列表之外,还有2个本书作者推荐的网站也适宜linux内核菜鸟去关注:
有好多适宜内核开发入门的资源
linux新闻周刊
2.编码风格
社区给我们提供了学习和贡献内核的地方,而且为了防止何必要的麻烦(被他人嘲笑或则无人搭理),首先得好好了解一些内核代码的编码风格.
linux的编码风格都记录在Documentation/CodingStyle内核开发前要好好通读以下,然后有时间我会整理到博客中.
3.递交补丁
打算工作都完成以后,就可以开始内核开发之旅了:)
只要坚持不断的学习和尝试,总有三天会为了内核贡献自己的代码linux内核原理与实现,这时侯,就须要了解怎样递交代码,也就是内核补丁.
假如是发觉了BUG或则有改善,可以将BUG的描述或则改善代码发送给对应的维护者.(内核各个子系统的维护者信息在内核代码根目录下的MAINTAINERS文件中)
生成BUG或则改善代码的补丁有2种方式:
1.用diff命令创建补丁
# 生成patch
diff -urN linux-old/ linux-new/ > my-patch # 比对整个内核代码文件夹
OR
diff -u linux-old/some/file linux-new/some/file > my-patch # 比对某个文件
# 应用patch, 应用了patch之后, linux-old 和 linux-new 中的代码就一样了
cd linux-old
patch -p1 < ../my-patch # 这个命令是进入linux内核代码根目录内执行的
# PS. 还有个很有用的工具 diffstat
diffstat -p1 my-patch # 列出补丁所引起的变更的统计(加入或移去的代码行)2.用git命令创建补丁
# 提交修改的或新增的代码
git commit -a # 提交所有修改的代码
OR
git commit linux-src/some/file.c # 提交某个修改的代码
OR
git add linux-src/some/new-file.c # 把新增的文件加入版本库
git commit -a # 提交新增的文件
# 生成patch
git format-patch -N # N 是正整数, 这条命令生成最后N次提交产生的补丁
OR
git format-patch -1 # 最后1次提交产生的补丁
# 应用patch: 和第一种方法一样4.总结
本章的内容都是和递交内核patch有关,我还是内核的入门者,没有社区的经验,更别说递交内核patch的经验了.
这篇笔记只是简单记录一些对入门者有用的信息linux内核原理与实现,以便之后查看.