delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

30 Oct 2005

Jun Kuriyama: 拥抱FreeBSD(zz)

这是一篇几年前的文章,发表地我已经记不清楚了。除了这篇文章对FreeBSD开发模式和如何成为 committer 的介绍之外,我还希望看到这篇文章的人,能够成为国人在 FreeBSD 中的中坚分子,让我们(华人)成为整个项目最重要的一部分。


拥抱FreeBSD

FreeBSD项目的结构

和FreeBSD项目关联的人大体分为三类,即被称为commiter的开发者,由其中9名组成的core team,及其他的贡献于FreeBSD的人们。

commiter是FreeBSD项目的正式开发者,他们拥有对原始码的直接修改权限。现在大约有330名commiter,其中47名在日本。

commiter并不只是自己写代码的人,为别人写的ports做登录,或者写文档等等,还有负责各种分野的commiter存在。core team是从这些commiter中选出来的,共有9人。所有的commiter都有投票权,从候选人中投票选举9人组成core team。在今年6月份进行的选举中,包括笔者在内的9人当选进入了core team,任期为2年。

core team的责任是把握并制定项目的发展方向,协调开发者之间的冲突。所以,相对于作为一名hacker应有的技能,更需要的是公平地对项目全面审视的能力和冷静的可以信赖的人格。不知道我能多大程度达到这样的要求:)

其他对FreeBSD默默贡献着的人们还有很多,确切人数没有人能够知道。报告问题的人,在mailing list上回答问题的人,写新的程序或者维护程序的人,在电脑杂志上写文章的人,当然还有使用FreeBSD的人,没有这么些热爱FreeBSD的人们,可能现在的FreeBSD还只是只能在特殊环境下运行的怪物,并且也不会有今天这样的易用性。广大支持FreeBSD的用户,是FreeBSD项目最宝贵的资源。

FreeBSD项目就是这样由处于顶点的core team及活跃的commiter和众多的用户这样的金字塔形的结构组成的。

项目的问题

从当初只有3个人开始的FreeBSD项目,随着开发者人数的不断增加,原始代码也很快地膨胀,于是各种各样的问题也开始出现了。

(1)原代码树的管理体制

活跃的开发者人数不多并且代码树也不是那么大的时候,很多开发者能够把握项目的全体,尽管如此,随着增加需要专门领域知识的功能如增加设备驱动程序的工作的展开,代码树的特定领域慢慢就出现了该领域的默认的管理者,这样,即使对代码树的少许的修改也通过该领域的默认管理者进行了。

当然,FreeBSD的代码树是由项目进行全面管理的,并不是任何人独有的。只是考虑到象GCC等由其他自由软件项目开发的赠送软件的管理,由对特定领域熟悉的专任人员进行管理也是大家所希望的。

现在,对代码树的访问没有进行强制控制,各领域的管理者大体采用的也就是要求其他开发者「在进行修改之前,请和我联系」这样很宽松的手法。

(2)以领域分类的commiter制度

现在作为commiter登录的开发者,大体分为三类。内核及用户级开发的src commiter,ports commiter和负责web文档等的doc commiter。ports是FreeBSD的一大特征,ports本身其数量正不断的增长,所以ports commiter的人数也正以比其他commiter更快的速度增长着。

FreeBSD的CVS代码树的绝大部分领域是对所有commiter开放的。因此,「比较容易成为其commiter的ports和doc的commiter们会不会在对src领域没有充分理解的情况下不在意地破坏了该领域呢?」,抱着这样的疑问的人不会没有。另一方面,ports和doc commiter们也提出了「软件不断增加,文档要求更新,人数不够」的意见。

针对这些意见,一个方案是把commiter明确分工,明确各类commiter可以访问修改的代码树领域。从沿用至今的宽松的管理环境向这样的由系统进行强制控制的环境转移是否可以被接受还不知道,我们将倾听开发者们的意见,寻找最合适的方法进行项目的管理。

(3)FreeBSD在日本的占有率,比其他国家包括美国都要高。这要归功于FreeBSD(98)移植小组的努力和那些ISP及大电器制造商中的BSD爱好者们。

commiter的一成以上是日本人,对FreeBSD来说,来自日本的贡献是相当多的。至今规模最大的本地化作业就是日语化,另外,在IPv6和PC card及ACPI领域的开发方面,日本开发者也处于世界领先地位。

在这儿,有一个问题是,进行开发讨论的mailing list上的主要语言是英语。日本人的特点是用英语不太能够把自己的想法明确地表达出来,结果常常出现谁的嗓门大就用谁的代码这样的情况。

数年之前,因为「一帮不会用英语进行代码说明的家伙」而难以被采用自己辛苦写出的代码,随着众多的日本人开发者默默地积累经验和实力,「原来日本也有很厉害的家伙的嘛」,慢慢地被接受了。

前任的core team里也有日本人,现在的core team里也有成员在考虑到这样的日本人开发者的问题。作为非英语母语的日本人开发者,加强英语能力还是必要的,但感觉上在语言要求上对日本人开发者不象以前那么严酷了。

FreeBSD项目就是这样面对着种种问题,努力地一点一点地解决。要让FreeBSD不断的发展壮大,需要更多的支持。「好,我也该做点什么!」,我们希望有更多的这样想的人。

通向core team的道路

针对那些想为FreeBSD项目做点什么的有志之士,简单介绍一下笔者至今的经历。笔者是于1998年4月成为ports cimmiter的,在此之前,做一些自己常用ports的修改及日语文档的翻译等,主要在日本的mailing list上活动。

其后,逐渐熟悉了ports的管理,又参与了日语文档的整理工作,还参加过jp.FreeBSD.org机器的管理。数次出席FreeBSD Conference,和众多开发者直接会面,进行意见的交换。

然后今年的6月份,新core team选举的时候,考虑到其他重要的hacker们把时间过多地花在项目的事务管理上对FreeBSD项目的发展不利,并不是hacker的笔者就报名候补了。

感谢大家的支持,笔者进入core team后,现在在叹息几乎没有时间在ports和文档上做点工作的同时,每天忙于处理发到core@FreeBSD.org的mail。

在此,对希望为FreeBSD项目做点贡献的人,我想说的是首先参加FreeBSD的mailing list,这是你应该迈出的第一步。