> 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/20170708-zi-yuan-kong-zhi/new-faces-of-freebsd.md).

# FreeBSD 新面孔

作者：Dru Lavigne

本专栏聚焦近期获得提交权限的贡献者，并向 FreeBSD 社区介绍他们。本月聚焦的是 Danilo Baio 和 Richard Gallamore，他们分别在 2017 年 5 月获得 Ports 提交权限。

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

**Danilo：** 我今年 31 岁，出生在巴西巴拉那州马林加。我家人来自 Marialva，我在那里长大。2007 年我毕业于信息学专业（UniCesumar），之后又在网络计算（UEL）和 IT 项目管理（FCV）方向进修。从小我就对计算机感兴趣，后来在父亲开的一家小电脑店半工半读，跟着哥哥学硬件，对这一行越来越熟稔。现在我没怎么做运动，但中学时参加过州级游泳比赛，至今仍很喜欢游泳。

**Richard：** 我叫 Richard Gallamore，出生在佛罗里达州基西米。今年 30 岁，在佛罗里达生活了一辈子。最近搬到加州旧金山，开始 IT 职业生涯。工作方面，我目前正过渡到新职业。此前我在 UPS 工作了 11 年，其中 4 年当司机。我也做过不少兼职，帮公司起步、解决工作站或打印机问题，以及管理服务器、网站和其他各种服务。说到背景，这一行对我来说更多是爱好而非必需。我把大部分业余时间都用在了某种形式的计算机系统上。2004/2005 年前后，我组装了第一台电脑，那是一次相当有趣的体验。我的知识大多来自买零件、弄清它们的作用——搭建一些我根本不需要的环境，只为搞懂它怎么工作。我也常帮亲朋好友解决网络、打印机、“我电脑变慢了”之类的基本问题。2007 年左右我第一次接触 Linux，但接触不多，理解也有限。我的其他兴趣：保持系统和软件更新、网络、安全、美食、Unix（不言而喻！）、健身或至少保持体型。虚拟机一直让我着迷，我特别喜欢 bhyve！偶尔也玩游戏，不过很少有游戏能长时间吸引我。

## 你最早是怎么了解到 FreeBSD 的？FreeBSD 哪点吸引你？

**Danilo：** 毕业后，我开始在 BS2（ISP/托管）工作，现在也还在那里，并在 BS2 和 CRMall（软件公司）之间分担任务。经理问我对 FreeBSD 了解多少，我说不了解，他让我去看看，因为 BS2 有好几台机器在跑 FreeBSD。我印象最深的是 FreeBSD 的组织方式——比如把基本系统的配置文件（**/etc**）和通过 Ports 安装的软件包的配置文件（**/usr/local/etc**）分开；还有系统升级的简洁性，哪怕是跨大版本升级。我也欣赏开发者和项目对变更的认真态度——变更记录详尽，对用户没有意外。在成为提交者之前，我听说过 POLA（Principle of Least Astonishment，最小惊讶原则，<https://www.freebsd.org/doc/handbook/freebsdglossary.html#pola-glossary>），现在回头看，这一切都说得通。

**Richard：** 我一直有兴趣保持系统和软件更新——近乎偏执，有时甚至没必要，大概有点强迫症的成分。2013/2014 年前后，我开始更深入地了解 Ports，手动更新 Ports 并构建它们。我发现一个叫 Seafile 的 Port 坏了，花了好几个小时试图编译，终于把它弄能用，想更新这个 Port，但完全不懂流程。幸运的是，我在 IRC 上找到一些帮助，被引到了正确的方向。这段时间里我积累了不少 FreeBSD 知识。期间有 FreeBSD 开发者几次问我要不要成为提交者，但我工作太忙没时间，也觉得自己还没准备好或知识不够。今年早些时候，我终于下定决心对当下的生活状态不满足，需要改变。于是我转行，搬到加州。我联系了那位经常提交我工作的提交者，于是就有了今天！

2011 年，我决定需要一台存储机器，开始用 FreeNAS。当时我完全不知道 FreeBSD 是什么，甚至不知道 FreeNAS 是基于 FreeBSD 构建的。用了一年左右 FreeNAS 后，我感到挫败——我想用一些 FreeNAS 不支持的功能，或者需要重新编译内核的功能，但我用的是 FreeBSD 老版本，在 FreeNAS 上重编内核相当困难。我终于决定转到 FreeBSD，从此再没回头！我也想说，FreeNAS 是个不错的产品，我不是在贬低它；只是它不适合我的学习方式。在这方面 FreeBSD 对我来说再合适不过。它精简干净，默认安装几乎只配置到能跑起来的最小程度。所以 FreeBSD 哪点吸引我？它契合我的性格和知识水平，对我来说这是大胜！

## 你是怎么成为提交者的？

**Danilo：** 2009 年，我看了 Renato Botelho（garga@）关于 VuXML（<https://vuxml.freebsd.org/>）的演讲，发现我们在 BS2 用到的一个 Port 有安全问题。这就是我提交第一个 PR（<https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=141318>）的缘起。几年后，我开始频繁提交补丁更新 Ports。STAGEDIR 支持引入后，没有 STAGEDIR 支持的 Port 将被移除。我也给 pfSense 项目提交过一些贡献。在 FreeBSD 和 pfSense 之间来回工作时，Renato 问我他能否推荐我成为提交者。如果通过，他会担任我的导师。这件事发生在今年 5 月，我现在每天还在不断学习。

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

**Danilo：** 世界各地的开发者都欢迎我加入，这真的太棒了。大多数人都跟我说“享受乐趣就好”，我也正是这么做的。我现在对项目的组织水平更加惊叹——任何小细节都很重要，哪怕是 Bugzilla 中的一个简单关键字。我处理的每个 PR，都会检查贡献者是否已登记在 Additional FreeBSD Contributors 列表（<https://www.freebsd.org/doc/en/articles/contributors/contrib-additional.html>）中。如果没有，就添加进去，以此表明任何贡献都是重要且有意义的，也许未来他们也能成为 FreeBSD 提交者。我对未来潜在提交者的建议是：在提交任何补丁前，永远先为其他用户着想。想一想，这个改动对大多数用户有意义，还是只对你自己有意义。订阅你感兴趣领域的邮件列表，并多关注 FreeBSD Phabricator（<https://reviews.freebsd.org/>）。那里发生的事情很多，有时你能学到手册里还没写的东西。新开发者的指导工作也通常在那里进行。贡献者也可以先向 Phabricator 提交修订，再在 Bugzilla（<http://bugs.freebsd.org/>）登记一个 PR，让自己的代码被提交。总有开发者愿意看一看、提些意见。最后，持续提交补丁，保持耐心，如果反馈等了一段时间，不要灰心。这并不说明你做错了什么，只是开发者们都很忙，或在专注其他事情——毕竟大家通常用业余时间参与。我参与过一个 PR（感兴趣的可以看 171246）就发生过这种情况——等了七个月，等我成为提交者后才由我自己提交。

**Richard：** 加入 FreeBSD 项目以来，我的体验非常好！这里有许多知识渊博的开发者。在成为提交者的路上，最重要的事情之一就是贡献。不仅要积极为项目做贡献，还要跑 QA，并完整填写 bug 报告——写清楚为什么需要这个补丁的总结，附上或链接 changelog，并提供 QA 报告。这样做表明你重视自己的工作，并愿意多走一步。久而久之，这会被注意到并得到感谢。在邮件列表或 IRC 上保持活跃，也是学习和帮助社区的好方式。

***

**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/20170708-zi-yuan-kong-zhi/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.
