Linux Kernel社区开发
       1

           D a ( shanwei88@gmail.com)
              Vid
目录
               2

 内核开发人员概括
 社区开发模式
 怎么参与社区开发
 如何提交 Patch
 社区开发注意点
5
                                                       20
                                                            35
                                                                 50
                                                                      65
                                                                           80
                                                                                95
                                                                                     110
                                                                                           125
                                          2.6.12
                                          2.6.13
                                          2.6.14
                                                                                                                 总体概况


                                          2.6.15
                                          2.6.16
                                          2.6.17
                                          2.6.18
                                                                                                  内核开发人员数



                                          2.6.19




内核版本发布时间:
                                          2.6.20
                                          2.6.21
                                          2.6.22
                                          2.6.23
                                          2.6.24
                                          2.6.25
                                          2.6.26
                                                                                                             3




                                          2.6.27




 2.6.1 2: 2005/06 ; 2.6.21 : 2007/04
 2.6.31 : 2009/09 ; 3.1 .0 : 201 1 /1 0
                                          2.6.28
                                          2.6.29
                                          2.6.30
                                          2.6.31
                                          2.6.32
                                          2.6.33
                                          2.6.34
                                          2.6.35
                                          2.6.36
                                          2.6.37
                                          2.6.38
                                          2.6.39
                                           3.0.0
                                           3.1.0
                                                                      美国
                                                                      中国
总体概况 ( 续 )
                                                  4

 对内核贡献度
  中国贡献度在增加,但是无论是 pa 个数还是修改的行数,与美国相比,差
                   tch
 距还很大。

         25   22.96                                                             中国
                                                        19.03                   美国
         20
   百分比




         15

         10
                                                      5.87
          5 2.9

          0
              2.6.12


                       2.6.22


                                2.6.31


                                         2.6.38


                                                        3.0.0


                                                                3.1.0


                                                                        Total
                                数据来源: http://remword.com/kps_ result/
社区开发模式
                                              5

 内核版本
  3.X.Y
  3: 主版本号
  X: 子版本号 ( 由 Linus发布 )
  Y: 修正版本号 ( 由 Greg 发布 )

    主要开发人员及职责
 Linus T orvalds:
 Andrew M orton: ext3...
 I ngo M olna scheduler, tra
              r:             cing, x86...
 D a S. M iller: networking, ide, spa
     vid                              rc...
 J Axboe: cd-rom driver, block
   ens
 T heodore T s' o: ext4
 ......
社区开发模式 ( 续 )
                                  6

 开发流程

                                 仅仅修正 Bug        3.2-rc8,rcX
   3.2-rc1          3.2-rc2



                                                  3.2 正式版
                                 Merger Window
 3.4-rc1               3.3-rc1

                                                 linux-next



   -mm tree        block-next    sparc-next        net-next

           注: next tree 接收新特性,或者 code 清理的 Pa 。
                                            tch
怎么参与社区
                                                  7

 工作荣誉
   RP: Reported-by
   T S: T ested-by
   RV: Reviewed-by
   SI : Signed-off-by
   AK: Acked-by

 如何参与
 有项目 < ---> 自己提交 Pa            tch
 没项目 , 从测试开始。测试工具 : ltp, a            utotest...
  更多 : http://lwn.net/Articles/238838/

 订阅邮件列表,参与讨论
  内核 : linux-kernel, http://lkml.org/
  网络 : linux-netdev, http://patchwork.ozlabs.org/proj
                                                    ect/netdev/list/
  更多 : http://ma rc.info/
如何提交 Patch
                                                  8

 内核源码版本控制 : git 工具
 提交流程
1 ) 获取最新源码 (http://git.kernel.org)
 # clone git://git.kernel.org/pub/scm/linux/kernel/git/torva
   git                                                      lds/linux.git

2) 修改内核源码 , 并 commit。
3) 生成 pa     tch
 # git forma tch -1
            t-pa

4) 检查 pa       tch
  (1 ) 编译测试,不能有警告,编译失败更是不允许!
  (2) scripts/checkpa  tch.pl 检查代码风格
  (3) 功能,性能测试
5) 发送邮件
 # scripts/get_ ma iner.pl获取相关人员和邮件列表
                   inta
Pa 例子
  tch-
注意点
                                 10

 格式问题
1 ) 检查邮件客户端 thunderbird 。
    T a 不要被空格替换!! (D ocumenta
       b                     tion/email-clients.txt)
    邮件编码格式选择 UT F-8, 否则 pa   tchwork 不能识别。
2) Pa 自己是否能够 a 。
      tch       pply
3) 一个 Pa 一个问题。
          tch

 沟通技巧
1 ) 谦虚
2) 测试数据说明一切
3) changelog 说明包含但不限于:
     问题现象,原因,重现方法,如何解决。修改的理由。
4) 回答任何一个人提的疑问
11




Question?




            EN D

Linux内核社区开发

  • 1.
    Linux Kernel社区开发 1 D a ( shanwei88@gmail.com) Vid
  • 2.
    目录 2  内核开发人员概括  社区开发模式  怎么参与社区开发  如何提交 Patch  社区开发注意点
  • 3.
    5 20 35 50 65 80 95 110 125 2.6.12 2.6.13 2.6.14 总体概况 2.6.15 2.6.16 2.6.17 2.6.18  内核开发人员数 2.6.19 内核版本发布时间: 2.6.20 2.6.21 2.6.22 2.6.23 2.6.24 2.6.25 2.6.26 3 2.6.27 2.6.1 2: 2005/06 ; 2.6.21 : 2007/04 2.6.31 : 2009/09 ; 3.1 .0 : 201 1 /1 0 2.6.28 2.6.29 2.6.30 2.6.31 2.6.32 2.6.33 2.6.34 2.6.35 2.6.36 2.6.37 2.6.38 2.6.39 3.0.0 3.1.0 美国 中国
  • 4.
    总体概况 ( 续) 4  对内核贡献度 中国贡献度在增加,但是无论是 pa 个数还是修改的行数,与美国相比,差 tch 距还很大。 25 22.96 中国 19.03 美国 20 百分比 15 10 5.87 5 2.9 0 2.6.12 2.6.22 2.6.31 2.6.38 3.0.0 3.1.0 Total 数据来源: http://remword.com/kps_ result/
  • 5.
    社区开发模式 5  内核版本 3.X.Y 3: 主版本号 X: 子版本号 ( 由 Linus发布 ) Y: 修正版本号 ( 由 Greg 发布 )  主要开发人员及职责  Linus T orvalds:  Andrew M orton: ext3...  I ngo M olna scheduler, tra r: cing, x86...  D a S. M iller: networking, ide, spa vid rc...  J Axboe: cd-rom driver, block ens  T heodore T s' o: ext4  ......
  • 6.
    社区开发模式 ( 续) 6  开发流程 仅仅修正 Bug 3.2-rc8,rcX 3.2-rc1 3.2-rc2 3.2 正式版 Merger Window 3.4-rc1 3.3-rc1 linux-next -mm tree block-next sparc-next net-next 注: next tree 接收新特性,或者 code 清理的 Pa 。 tch
  • 7.
    怎么参与社区 7  工作荣誉  RP: Reported-by  T S: T ested-by  RV: Reviewed-by  SI : Signed-off-by  AK: Acked-by  如何参与  有项目 < ---> 自己提交 Pa tch  没项目 , 从测试开始。测试工具 : ltp, a utotest... 更多 : http://lwn.net/Articles/238838/  订阅邮件列表,参与讨论 内核 : linux-kernel, http://lkml.org/ 网络 : linux-netdev, http://patchwork.ozlabs.org/proj ect/netdev/list/ 更多 : http://ma rc.info/
  • 8.
    如何提交 Patch 8  内核源码版本控制 : git 工具  提交流程 1 ) 获取最新源码 (http://git.kernel.org) # clone git://git.kernel.org/pub/scm/linux/kernel/git/torva git lds/linux.git 2) 修改内核源码 , 并 commit。 3) 生成 pa tch # git forma tch -1 t-pa 4) 检查 pa tch (1 ) 编译测试,不能有警告,编译失败更是不允许! (2) scripts/checkpa tch.pl 检查代码风格 (3) 功能,性能测试 5) 发送邮件 # scripts/get_ ma iner.pl获取相关人员和邮件列表 inta
  • 9.
  • 10.
    注意点 10  格式问题 1 ) 检查邮件客户端 thunderbird 。 T a 不要被空格替换!! (D ocumenta b tion/email-clients.txt) 邮件编码格式选择 UT F-8, 否则 pa tchwork 不能识别。 2) Pa 自己是否能够 a 。 tch pply 3) 一个 Pa 一个问题。 tch  沟通技巧 1 ) 谦虚 2) 测试数据说明一切 3) changelog 说明包含但不限于: 问题现象,原因,重现方法,如何解决。修改的理由。 4) 回答任何一个人提的疑问
  • 11.

Editor's Notes

  • #4 1. 统计包含了从 2005 年到现在。 2. 从 07 年 4 月, 2.6.21 版本开始,中国参加内核开发的人员开始增加。 3. 到 09 年 9 月,中国开发人员首次超过美国。达到 111 人。