For the complete documentation index, see llms.txt. This page is also available as Markdown.

FreeBSD 的新面孔

本专栏旨在聚焦近期获得提交权限的贡献者,并向 FreeBSD 社区介绍他们。本月聚焦的是 Eric Badger 和 Toomas Soome,他们分别在 2016 年 7 月和 8 月成为 src 提交者。

请介绍一下你自己、背景和兴趣。

Eric:我是 Dell Compellent 的软件工程师,在美国明尼苏达州工作。我在平台 OS 团队负责 Dell 存储控制器上运行的 FreeBSD 操作系统。这份工作我做了两年多。在 Dell 工作让我学到了大量 FreeBSD 相关知识,一部分来自解决操作系统中出现的问题,另一部分来自我合作的各种聪明人。

我对很多东西感兴趣,几乎所有偏底层的东西都能吸引我。我实际有时间动手的主要是网络、调试工具(如 gdb 或 DTrace)和存储设备。我刚买了一块 BeagleBone Black,用来在 amd64 以外的平台上玩 FreeBSD,从中获得了很多乐趣。

计算机之外,我喜欢演奏音乐(我喜欢大多数音乐类型,零星参加过一些乐队),还有学习语言(目前主要在学西班牙语)。

Toomas:我大约在 1992 年以学生身份在爱沙尼亚塔尔图大学接触到 Unix。当时我们有一堆不同的系统:SCO、SunOS、Irix,后来的 Ultrix、NetBSD、FreeBSD,最终还有 Linux,等等。那时我在大学担任系统管理员,那段时间意味着大量的编译、软件集成等工作,因为所有(自由)软件都以源代码形式分发。

说个趣事,我们实际上是用 CERN 的源代码同时搭起了服务器和浏览器来使用万维网。

后来我在一家 Sun Microsystems 本地经销商处担任售前工程师,这意味着编译变少了,但仍然有大量的集成、架构设计,以及对 IT 基础设施几乎每一层的深入钻研。

其他兴趣方面,冬天玩单板滑雪,夏天跳伞。不过由于时间关系,这些活动有所减少。

你最初是如何了解到 FreeBSD 的?FreeBSD 哪些方面吸引了你?

Eric:我在明尼苏达大学读书时,在超级计算研究所得到了第一份计算机相关的工作。我的第一任老板是网络管理员,她使用 FreeBSD 来运行网络管理工具和作为跳板机接入交换机管理网络。我想尽可能多地了解事物的工作原理,于是把一台 FreeBSD 机器加入了家里的 Linux 机器网络(主要是朋友和家人给的旧电脑)。那台 FreeBSD 机器是我的 DHCP 服务器,还运行 tftpd 和 NFS,为 PXE 启动的机器提供文件服务。

基本系统和 Ports 之间的划分让我印象深刻。当时我主要用 Debian 和 CentOS,这意味着有时第三方软件在仓库中不可用,或者版本不是我想要的。FreeBSD 的 Ports 意味着我可以在相对稳定的基本系统上使用相对前沿的软件。作为开发者与 FreeBSD 打交道后,我开始欣赏内核和用户空间都位于同一源代码树中这一点。这通常使理解和处理跨越两者边界的问题更容易。我也开始欣赏源代码受到的一流待遇。FreeBSD 让获取系统源代码并在自己的系统上重新构建其中部分变得很容易。Ports 让你能轻松地修补那些需要一点帮助才能在 FreeBSD 上构建的第三方软件。

Toomas:记不清是哪一年了——很久以前,我还在大学工作时,我们有几台 FreeBSD 和 NetBSD 实例。但基于 BSD 的系统一直很有趣,因为它们的根基,现在更是如此——作为提供自由软件并真正支持技术交流的 Unix 品牌之一。

你是如何成为 src 提交者的?你在 src 的哪个部分工作?

Eric:我提交的几个补丁被接受进入源代码树,并引发了若干讨论,主要在 -current 上。不过我想我主要是靠调试和刻画棘手问题赢得认可的,而不是靠提交大量补丁。

目前我主要改动 sys/kern 下的代码。我不会说我已经形成了什么明显的专长,但我有一个不断增长的待办清单,希望把它们推进到可提交的状态,包括改进 FreeBSD 在 KVM 上的支持、一些 SR-IOV 相关工作,以及其他一些事情。

Toomas:根源在另一个操作系统,因为我自己的技术根基与 Sun Microsystems 相关。我当时在折腾基于 Illumos 的系统,最终开始研究改进启动加载器及相关主题的方法。在尝试不同方案时,我开始研究 FreeBSD 的加载器,最后把它移植到了 Illumos。这项工作已经到了即将实际集成的阶段。显然,Illumos 对启动加载器有自己的需求,于是这些需求逐渐得到满足,移植过程中也实施了一些变更和改进。一旦你做了一些改动,很快就会发现把其中一些回馈上游是合理的。最终,我想拥有提交权限的人有了邀请我加入 FreeBSD 开发者行列的想法,这对我来说是个不小的惊喜。

所以我工作的领域是启动加载器及相关主题。一些成果已经集成到 FreeBSD 中,希望利大于弊,但关于如何以最佳方式改进启动加载器,仍有许多问题需要研究。

加入 FreeBSD 项目后你的体验如何?对那些可能也想成为 src 提交者的读者有什么建议?

Eric:我的体验很好。这有点像第二份工作,从这个意义上说可能会比较耗费精力。目前我只有几次提交,但仍然花大量时间摆弄各种东西、试图理解它们。但感觉这些时间花得值得,因为我通常乐在其中,并有机会为一个主要的开源操作系统贡献力量。

我对未来潜在提交者的建议是:如果你在 FreeBSD 中发现似乎不能正常工作的东西,不要停下来,直到你理解了原因。我发现,要理解某样东西,没有比调试你亲身遇到的问题更好的办法了。在一家使用 FreeBSD 的公司工作也大有裨益。在 Dell Compellent,我们的测试团队每天对数百台 FreeBSD 机器施压,任何 OS 层面的问题都会流转到我所在的团队。这提供了极大的学习机会。

Toomas:我只有正面的体验。最有价值的部分真的在于信息交流,有更多途径了解不同组件之间如何关联、团队之间如何关联,以及决策背后的驱动力是什么。某个具体项目的成功,其实并不在于某段代码写得多好——改进的空间总是有的——而在于它能多好地融入系统其余部分,以及你是否能设法在合适的时机引入某项特性,为系统或其他团队或人员提供最大价值。

至于建议,你可以有所有的梦想和训练,但在门打开、你真正迈出那一步之前,一切都不重要。一旦你迈出了第一步,并看到你所接受的训练确实在发挥作用并产生成果,你大概就被吸引了,而朝着你设定的目标进行的艰苦工作才真正开始。所以,迈出那一步,看看你是否喜欢正在经历的事情吧。


Dru Lavigne 是 FreeBSD 基金会董事,BSD 认证小组主席。

最后更新于