Linux资讯

专注于服务器操作系统的FreeBSD是如何炼成的

专注于服务器操作系统的FreeBSD是如何炼成的
-----国内资深FreeBSD committer Delphij专访

ChinaUnix:FreeBSD是一份UNIX操作系统,支持众多的硬件平台,比如i386、IA-64、PowerPC及UltraSPARC平 台。它是基于加州伯克利大学 的4.4 BSD-Lite发布,并带有一些4.4 BSD-Lite2增强。FreeBSD被遍布全世界的公司、Internet服务提供商、研究人员、计算机专家、学生,以及家庭用户用于他们的工作、教 学和娱乐之中。 在国内,也有大量的互联网公司在使用FreeBSD操作系统,比如网易和新浪。同时,国内也有少数几位为FreeBSD默默作出贡献的开发人员,今天我们 有幸请到他们当中的一位----delphij,他活跃于FreeBSD项目相关mailist和国内各大BSD相关社区,比如ChinaUnix、 FreeBSDChina社区和newsmth的FreeBSD板块。作为国内的资深FreeBSD  committer,让他给我们谈谈目前的 FreeBSD项目的发展现状,以及如何参与到类似于FreeBSD项目的开源社区中来。

ChinaUnix:能给ChinaUnix的网友简单的介绍一下自己么?

delphij:我是北京人,现年27岁,1999年经一位师兄介绍认识了 FreeBSD,并从 Linux fans 变成了 FreeBSD fans,大学期间做过一些 Windows 应用和少量驱动程序的开发,大学毕业以后一直在做开源平台上的开发和系统管理工作。我目前在美国硅谷工作,已婚。

我在 2004 年成为 FreeBSD 的 src committer,并在稍后获得了doc/ 和 ports/的相关权限,目前是 FreeBSD 安全小组的成员。我比较关注的领域是基本系统中的工具和 libc 的易用性与标准化,以及内核的兼容性和可靠性,在业余时间不允许我去做比较大块的项目时,我也会花一点时间来改善一部分现有代码的品质。

最早产生参加 FreeBSD project 的冲动是在上大一的时候,很大程度上是因为和Kirk McKusick 讨论关于 UFS 文件系统的一些问题的时候他提到说 Please encourage continued use of BSD software in your country。当时也感觉到,似乎我们中国大陆的开发人员在 FreeBSD 社区中没有什么声音,而很多东西对我来说并不是很困难,所以就想做一些自己力所能及的事情。

ChinaUnix:作为国内为数不多的FreeBSD committer,能给我们谈谈FreeBSD项目团队的运作么?以及如何才能成长为一名FreeBSD committer,最终成为Core Team的成员?

delphij:FreeBSD 项目团队是一个非常关注系统设计和代码品质的团队,在技术方面,我们鼓励同僚复审(peer-review)的方法来确保代码品质,并在开发过程中使用包 括持续集成(Continuous Integration)和回归测试等自动化的方法来提高由变动所引入的新缺陷的门槛;在管理方面,我们每两年会由过去一年内活跃的 committer选举产生项目的领导团队——Core Team,而 Core Team 会将自己的一部分技术方面的权力下放给一些专业小组,如负责发行版及其质量保障的 Release Engineering Team、负责管理 Ports 基础设施及管理 Ports Committer 的 Ports Management Team、文档工程小组以及安全长官团队等,而 Core Team 则避免直接参与专业方面的争议处理,作为原则指导及最终仲裁机构存在,其地位类似于普通商业机构中的董事会。

由于美国法律的要求,在项目之外还成立了 FreeBSD 基金会。除了接受捐款之外,基金会还代表 FreeBSD 项目团队进行一些必须以法人名义进行的活动,例如签署授权、持有“FreeBSD”注册商标等。

作为开发团队,我们总是需要补充更多的新鲜血液来适应新的挑战。成为 FreeBSD committer 其实并不困难,找到一个或一些 FreeBSD 没有或不够完善的部分并不断提交相关的代码或补丁,很快就会有 committer 邀请你加入了,当然,FreeBSD的三个主要的组成部分——内核及基本系统(src)、第三方软件(ports)和文档(doc)都有一定的编码规范要 求,这些联机手册 style(9)、Ports 开发手册等都有介绍,成为 committer 的开发人员需要遵守这些规范,并且能够和团队一起工作。

我本人并不是 FreeBSD Core Team 成员,事实上, Core Team 需要关注很多管理方面的问题,因此也就需要在这方面花费一定的精力。成为 Core Team 成员需要在选举期间主动参选提出自己的主张,并获得其他 committer 的支持。

ChinaUnix:ChinaUnix论坛中很大部分的会员是Unix/Linux系统管理人员,能给我们谈谈作为一个系统管理人员,特别是开源系统方面的管理员,成长的过程中需要注意什么?包括技术方面的、学习技巧等等。

delphij:我个人认为作为系统管理员是需要了解很多基础知识的,这个其实和是否开源系统关系不大。系统管理员需要关注的问题很多,包括存储、网络, 也包括安全,有些公司的系统管理员甚至还要肩负应用程序上下线甚至交付工程方面的职责。因此,作为系统管理员需要不断地拓展自己的知识面,并思考如何能够 使自己所管理的系统更有效地运行。我认为系统管理员除了普通的服务器软硬件方面的知识之外,还需要具备一定的开发能力,哪怕仅仅是把自己的一部分工作自动 化地进行,因为这样做不仅可以提高工作效率、减少失误,而且可以让自己有更多的时间去学习和拓展知识面。

关于学习技巧,我个人认为小的SA团队,例如有2-3个人的小团队之间的相互促进效果是最明显的,在这种实际的工作中能够迅速提高能力并增长经验。
ChinaUnix:能给我们谈谈最近几年的Google SoC么?FreeBSD项目从中得到了什么发展?哪些公司或者团体对目前的FreeBSD项目贡献比较多?
delphij:Google SoC是一个非常有远见的计划,我想我们应该感谢 Google 公司提供资助和持续不断地运营这个计划。过去四年 FreeBSD 从中受益很多,这不光是SoC所赞助的项目,也包括透过SoC所发现的人才,而今年我们继续作为 mentor organization 参加这个计划,这几年中已经完成和正在进行的项目涵盖了操作系统的各个方面,从磁盘调度器、系统状态监控、托管访问控制、Xen、几种不同的文件系统等内 核方面的实验性和应用性项目,到用户环境的流量监控、新的安装程序、更多的回归测试,以及采用BSD授权的一系列基础编译和调试工具等等,每年总共会有大 约20个入选项目得到资助。

许多欧美和日本的公司对 FreeBSD 的开发提供赞助,或直接参与开发。例如大家熟悉的 Cisco、NetApp、Juniper 等等。除了资金赞助之外,还有很多公司是以捐赠代码或聘用 FreeBSD 开发人员的方式来支持 FreeBSD 开发的,除了 Google、Yahoo 和一些国外的硬件厂商之外,国内的网易、新浪两家网站都有直接聘用FreeBSD 开发人员,这些对我们都是十分重要的支持。

希望看到您的想法,请您发表评论x