技术开发 频道

Linux 3.0:内核开发的模式与现状

  【IT168 评论】2011年7月22日,Linus亲自发布了Linux Kernel 3.0版本。虽然从内核的更新内容上跟普通的2.6.40没什么两样,不过版本号的修改,无疑在Linux内核20周年之际,被赋予了特殊的意义。

  20年走来,Linux内核早已不是一开始Linus单打独斗开发的模式。各个Linux相关企业的开发者和很多单独的、因为爱好而参与的开发者都被有序的组织在一起。

  下面,我们将以Linux Kernel 3.0为例,介绍一下现在的Linux内核是如何开发的。

  主干负责人:Linus Torvalds

  当下,Linux内核版本众多,每个主版本都有一个专人负责维护,叫做Maintainer。比如Kernel 2.6.32的负责人是Greg Kroah-Hartman(目前在Novell任职),Kernel 2.6.35的负责人是Andi Kleen(曾在Novell任职,目前在Intel开源技术中心)。而按照惯例,每一个最新的主分支,都是由Linus本人进行维护和发布。Linux 3.0也不例外。

  Maintainer的主要工作是将其他开发者提供的代码和补丁集成到一起,并在发布前测试修改各种bug。

  其他分支负责人

  其实Linux内核的开发模式就是一个树状模式,使用过Git的开发者们应该会比较了解。一般来说,开发者们如果要对Linux内核做一些修改,那么他首先会在Git上将Linus的主干代码复制一份,形成自己的分支。在Git系统上,每个开发者在建立的分支上进行的每一个变更都有一个单独的ID,当开发者认为自己进行的变更没有问题的时候,可以申请让主要分支的负责人将自己的变更“拉”入其负责的分支当中。

  说到这里就要说一下Linux内核目前的几个分支。最新的分支mainline里面包含最新的特性,但是由于缺乏测试,并不建议在生产环境中使用;标注stable的分支则是每一个之前发布的版本都有,进入stable之后的版本只会进行安全补丁和bug更新,不会再添加任何新特性。另外还有snapshot、linux-next等分支,里面包含了很多比较新的变更。大部分Linux发行版包含的内核都是来自stable分支,而有些发行版则会在这些分支上进行一些定制(比如红帽和Debian),当然也会有自己的负责人。

  可以说,Linux内核开发的分工模式就像一棵树一样,每一个开发者都有一条自己的分支,而且每一条分支都和主干有直接的联系。

  所以,Linux内核的开发者社区其实是一个扁平的结构,除了几条主干的负责人之外,其他上千开发者并没有什么明确的分工,大家主要以“为Linux内核贡献了多少代码”作为贡献多少的判定——也就是说,你有多少代码被接受并入了mainline或stable分支当中,你就是更加重量级的开发者。无论你的代码是关于CPU、显卡、网卡、虚拟化还是别的什么,全部一视同仁(当然,在主干维护者那里会有自己的优先级)。

  就Linux 3.0而言,在负责人Linus之下,开发者们以代码贡献情况的排名列表是:

Linux 3.0:内核开发的模式与现状

0
相关文章