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 知识,一部分来自解决 OS 中出现的问题,另一部分来自共事的各种聪明人。

我感兴趣的事情很多;几乎任何偏底层的东西都能吸引我。我真正有时间动手做的,主要集中在网络、调试工具(如 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。那台 FreeBSD 机器既是我的 DHCP 服务器,也运行 tftpd 和 NFS,为 PXE 启动的机器提供文件。

base 与 Ports 的划分让我印象深刻。当时我主要用 Debian 和 CentOS,这意味着有时第三方软件在仓库中找不到,或者没有我想要的版本。FreeBSD Ports 意味着我可以在相对稳定的 base 上使用相对前沿的软件。作为开发者使用 FreeBSD 后,我体会到内核和用户空间都位于同一棵树中的好处。这常常让理解和处理跨越两者边界的事情更容易。我也欣赏 FreeBSD 对源代码的一等公民待遇。FreeBSD 让获取系统源码并在自己的系统上重新编译其中部分变得容易。Ports 让修改需要在 FreeBSD 上略加调整才能构建的第三方软件变得容易。

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

你是怎么成为 src 提交者的?你在 src 的哪部分工作?

Eric: 我提交了几个被接受的补丁,并开启了一些讨论,主要在 -current 邮件列表。我想我主要是靠调试和刻画棘手问题赢得了认可,而不是靠大量补丁提交。

目前我主要修改 sys/kern 下的代码。我不会说自己已经形成了什么强项,但我有一份越来越长的待办列表,希望把它们做到可提交状态,包括改进 FreeBSD 在 KVM 上的支持、一些 SR-IOV 工作以及其他一些事情。

Toomas: 根源在另一个操作系统,因为我自己的技术背景与 Sun Microsystems 相关。我在基于 Illumos 的系统上摸索,最终开始研究如何改进引导加载器及相关主题。在尝试不同方案时,我开始研究 FreeBSD 的 loader,最终把它移植到了 Illumos。这项工作已接近实际集成的阶段。显然,Illumos 对自己的引导加载器有自身需求,这些需求逐渐得到解决,移植中也实现了一些更改和改进。一旦做了更改,你很快就会发现,把其中一些回馈给上游是合理的。我想,最终有提交权限的人想到了邀请我加入 FreeBSD 开发者行列,这对我来说是个不错的惊喜。

所以我的工作领域是引导加载器及相关主题。一些成果已经集成进 FreeBSD,希望带来的好处多于坏处,但关于改进引导加载器的最佳方式,仍有许多问题需要研究。

加入 FreeBSD 项目以来你的体验如何?对想成为 src 提交者的读者有什么建议?

Eric: 我的体验不错。这有点像第二份工作,从这个角度看有些吃力。目前我只做了少数几个提交,但仍花大量时间摆弄各种东西,努力理解它们。但感觉这些时间花得值,因为我通常乐在其中,并有机会为一个重要的开源操作系统做贡献。

我对未来潜在提交者的建议:如果你发现 FreeBSD 中有什么似乎工作不正常,不要停下,直到你明白为什么。我发现,理解一个东西很少有比调试你自己亲身遇到的问题更好的办法。在一家使用 FreeBSD 的公司工作也大有帮助。Dell Compellent 有数百台 FreeBSD 机器每天被测试组敲打,任何 OS 问题都会流转到我所在的组。这提供了绝佳的学习机会。

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

至于建议,你可以有所有的梦想和训练,但在大门打开、你真正迈出那一步之前,一切都不重要。一旦迈出第一步,看到你所受的训练确实在发挥作用并产生成果,你大概就会被吸引住,向着自己设定的目标真正开始艰苦努力。所以,迈出那一步,看看你是否喜欢你所体验到的。


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

最后更新于