> For the complete documentation index, see [llms.txt](https://freebsd-journal-cn.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://freebsd-journal-cn.bsdcn.org/20160910-huan-ying-lai-dao-freebsd-11/new-faces-of-freebsd.md).

# FreeBSD 的新面孔

* 原文：[New Faces of FreeBSD](https://freebsdfoundation.org/wp-content/uploads/2016/10/New-Faces-of-FreeBSD.pdf)
* 作者：**Dru Lavigne**

本专栏旨在聚焦近期获得提交权限的贡献者，并向 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 认证小组主席。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://freebsd-journal-cn.bsdcn.org/20160910-huan-ying-lai-dao-freebsd-11/new-faces-of-freebsd.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
