《Linux内核设计与实现》读书笔记(二十)- 补丁, 开发和社区
2014-08-30 08:32
246 查看
linux最吸引我的地方之一就是它拥有一个高手云集的社区, 还有就是如果能=为linux内核中贡献代码, 一定是一件令人自豪的事情.
下面主要总结一些和贡献代码相关的主要内容.
加入社区
编码风格
提交补丁
总结
如果想为linux贡献代码, 那么加入linux社区是必须的, 加入了社区, 不仅可以及时内核的最新消息, 而且可以及时和社区内有经验的内核开发者交流经验.
同时也是提交代码和讨论代码的地方, 了解社区的规则, 融入社区环境之中, 才能更好的学习内核, 体会内核开发的乐趣和成就感.
内核社区说白了就是内核邮件列表(LKML linux kernel mail list)
订阅邮件列表的网址: http://vger.kernel.org/vger-lists.html 这里面有linux相关的各种邮件列表
关于内核的邮件列表是: http://vger.kernel.org/vger-lists.html#linux-kernel
除了邮件列表之外, 还有2个本书作者推荐的网站也适合linux内核新手去关注:
http://kernelnewbies.org 有很多适合内核开发入门的资源
http://lwn.net linux 新闻周刊
社区给我们提供了学习和贡献内核的地方, 但是为了避免不必要的麻烦(被别人指责或者无人理睬), 首先得好好了解一些内核代码的编码风格.
linux的编码风格都记录在 Documentation/CodingStyle 内核开发前要好好研读以下, 之后有时间我会整理到博客中.
准备工作都完成之后, 就可以开始内核开发之旅了 :)
只要坚持不断的学习和尝试, 总有一天会为了内核贡献自己的代码, 这时候, 就需要了解如何提交代码, 也就是内核补丁.
如果是发现了BUG或者有改善, 可以将BUG的描述或者改善代码发送给对应的维护者.(内核各个子系统的维护者信息在内核代码根目录下的 MAINTAINERS 文件中)
生成BUG或者改善代码的补丁有2种方法:
1. 用diff命令创建补丁
2. 用git命令创建补丁
本章的内容都是和提交内核patch有关, 我还是内核的入门者, 没有社区的经验, 更别说提交内核patch的经验了.
这篇笔记只是简单记录一些对入门者有用的信息, 便于以后查看.
下面主要总结一些和贡献代码相关的主要内容.
加入社区
编码风格
提交补丁
总结
1. 加入社区
如果想为linux贡献代码, 那么加入linux社区是必须的, 加入了社区, 不仅可以及时内核的最新消息, 而且可以及时和社区内有经验的内核开发者交流经验.同时也是提交代码和讨论代码的地方, 了解社区的规则, 融入社区环境之中, 才能更好的学习内核, 体会内核开发的乐趣和成就感.
内核社区说白了就是内核邮件列表(LKML linux kernel mail list)
订阅邮件列表的网址: http://vger.kernel.org/vger-lists.html 这里面有linux相关的各种邮件列表
关于内核的邮件列表是: http://vger.kernel.org/vger-lists.html#linux-kernel
除了邮件列表之外, 还有2个本书作者推荐的网站也适合linux内核新手去关注:
http://kernelnewbies.org 有很多适合内核开发入门的资源
http://lwn.net linux 新闻周刊
2. 编码风格
社区给我们提供了学习和贡献内核的地方, 但是为了避免不必要的麻烦(被别人指责或者无人理睬), 首先得好好了解一些内核代码的编码风格.linux的编码风格都记录在 Documentation/CodingStyle 内核开发前要好好研读以下, 之后有时间我会整理到博客中.
3. 提交补丁
准备工作都完成之后, 就可以开始内核开发之旅了 :)只要坚持不断的学习和尝试, 总有一天会为了内核贡献自己的代码, 这时候, 就需要了解如何提交代码, 也就是内核补丁.
如果是发现了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内核设计与实现》读书笔记(二十)- 补丁, 开发和社区
- 《Linux内核设计与实现》读书笔记(二十)- 补丁, 开发和社区
- 《Linux内核设计与实现》读书笔记(二十)- 补丁, 开发和社区
- 《Linux内核设计与实现》——补丁、开发和社区
- 《Linux内核设计与实现》读书笔记(二)- 内核开发的准备
- Linux内核设计与实现 学习笔记(10)补丁,开发和社区
- 《Linux内核设计与实现》读书笔记(二)- 内核开发的准备
- Linux内核设计与实现(20)--补丁、开发和社区
- 《Linux内核设计与实现》读书笔记(二)- 内核开发的准备
- 《Linux内核设计与实现》读书笔记(二)- 内核开发的准备
- 《Linux内核设计与实现》读书笔记(二)- 内核开发的准备
- 《Linux内核设计与实现》读书笔记(二)- 内核开发的准备
- 《Linux内核设计与实现》读书笔记(1)--- Linux内核开发的特点
- 《Linux内核设计与实现》读书笔记(二)- 内核开发的准备
- 《Linux内核设计与实现》读书笔记(二)- 内核开发的准备
- [Torque社区活动] 我们TORQUE社区将开始利用TORQUE引擎开发我们的第一个范例游戏[坦克],欢迎参加
- CVS奠定了开放源码社区协同开发的基石
- 《敏捷软件开发:原则、模式与实践》 前三章读书笔记 -- 实践
- TIOBE编程社区公布了2006年20种程序开发语言排名数据。
- 读书笔记之测试驱动开发优点