> 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/20161112-bian-cheng-yu-yan/new-faces-of-freebsd.md).

# FreeBSD 新面孔

* 作者：**Dru Lavigne**

本栏目旨在聚焦近期获得提交位的贡献者，并向 FreeBSD 社区介绍他们。

本月聚光灯对准 2016 年 9 月加入项目的三位提交者：Sevan Janiyan 与 Ruey-Cherng Yu 成为文档提交者，Joseph Mingrone 成为 Ports 提交者。

**谈谈你自己、背景和兴趣。**

**Sevan：** 我三十多岁，是系统管理员，现居英国伦敦。十几岁起开始接触计算机，多年来主要靠自学。我维护一个技术博客 GeekLAN（<https://www.geeklan.co.uk/>），写些我做的东西。

我尽量不囤积电脑，但小型电脑收藏还是在不断增长。我喜欢摆弄不同操作系统、听电子音乐。我想多了解函数式与面向对象编程语言，特别是 Lisp 与 Smalltalk。

**Ruey-Cherng：** 我是台湾牙医。我并非计算机专业出身，但对计算机很感兴趣。父亲在我 10 岁时买了一台 80286 PC。我记得操作系统是 DOS 3.3，我用它玩了很多 DOS 游戏。随着硬件要求越来越高，父亲把我的电脑从 80386、80486DX2-66、Pentium 等一路升级。过了一阵，我决定搞懂这些游戏怎么运作。高中一年级时，我在台湾大学资讯工程系参加了 C 语言与数据结构课程，当时用的编译器是 Borland C++ 2.0。课程结束后我意识到调试太难，于是改学医。

大学期间，我通过 Redhat Linux 5.2 开始了解类 UNIX 操作系统，也用过 Mandrake Linux 与 Debian。我的兴趣是计算机科学、骑车、经济学，陪伴两个女儿。

**Joseph：** 我是加拿大新斯科舍省哈利法克斯 Dalhousie 大学数学/统计系的博士候选人，研究分子演化模型。除研究外，我还管理我们研究组的计算集群。研究生之前，我做软件开发，做过各种项目，用过多种语言。

**你最初怎么知道 FreeBSD 的？FreeBSD 哪一点吸引了你？**

**Sevan：** 很久以前，我弄到一台 Sun3/60 工作站（Sun Microsystems 1980 年代生产、采用 Motorola 68000 CPU 的工作站），想给它找个操作系统。在这个过程中我了解到 BSD 家族，但确实分不清谁是谁。大约 1997 年前后，我访问过三大 BSD 变种的网站。

第一次真正试用 FreeBSD，我记得清清楚楚。5.0 发布消息在 Slashdot 上线那晚我就看到了。又是同样的情况：我又弄到一台老硬件，这次是 DEC AlphaStation 250。Linux 在这台机器上不太好用，我看到 Alpha CPU 是受支持架构，于是试了 FreeBSD，没让我失望。首先系统比我之前试过的 Linux 发行版快得多；其次，多亏 Handbook，我无需预备知识就能在系统上做很多事情。这让我很有成就感，从此入坑。

**Ruey-Cherng：** 我用 Redhat 5.2 时觉得依赖问题非常烦人。换到 Debian 后有改善。在解决 RPM 文件依赖、上网找方案时，我发现了 FreeBSD 的特性：Ports 系统。Ports 的便利吸引了我。但那时硬件兼容性不佳，我只短暂试用过 FreeBSD。2014 年 5 月，FreeBSD 再次吸引我。我在富士通 T2010 上装了 FreeBSD 9.0，调校一番后运行良好。

**Joseph：** 我最初了解 FreeBSD 大约在 1998 年。两个室友和我搬进公寓，希望共享一条上网连接。当时廉价家用路由器还不普及，我记得 ISP 要么对同一连接上多台电脑额外收费，要么禁止。那时我对 Unix 几乎一窍不通，于是和一位年长、更懂计算机的学生达成交易：他出技术建议，我夏季拼车时多开车。我们捡来一台弃置台式机，加了一块网卡，装了某种 Linux 发行版。我不记得细节，但记得它不好用。这位学长认识一位 FreeBSD 老用户 Marc Fournier，Marc 推荐 FreeBSD。装上 FreeBSD 后，那台旧台式机一年到头跑得非常好。于是 FreeBSD 走入我的视野，最初吸引我的是稳定性。今天我在服务器、台式机、笔记本上仍运行它，原因很多，但只挑一个：我喜欢 FreeBSD 给我的掌控力。凭借相对精简的基本系统和强大的 Ports 系统，我能定制安装，这是我所知任何其他操作系统都做不到的。自然，我很期待即将到来的打包基本系统。

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

**Sevan：** 我想我提交的补丁达到了一定数量，足以升到下一级——经导师 Benedict Reuschling 评审并放行后，可以提交自己提出的修改。

这一切始于我在审视当前各 BSD 基本系统所附工具的源码历史与文档时。我意识到，关于这些工具的起源、首次出现在哪个操作系统版本上，存在不一致。现代 BSD 享有可追溯至 1BSD 的血脉。FreeBSD 项目托管一份 CSRG 仓库副本，可在 <https://svnweb.freebsd.org/csrg/> 检出或用浏览器浏览。如愿意，该仓库连同实际二进制可向 Kirk McKusick 购买 CD 套装，地址 <http://www.mckusick.com/csrg/index.html>。凭借 CSRG 仓库副本与网上覆盖其他 Unix 的资源，我开始审视手册页中已有的历史章节，并为缺失者补上这一节。结果是 **/bin** 与 **/sbin** 中的工具现已文档化，**/usr/bin** 与 **/usr/sbin** 中的工具是下一步。

**Ruey-Cherng：** 收集 FreeBSD 9.0 安装所需资料时，我发现繁体中文文档匮乏，能找到的也过时，多为 FreeBSD 5.X。zh\_TW 版 FreeBSD Handbook 最后更新在 2008 年。FreeBSD 官网没有指向 zh\_TW 版的链接，因为内容过时。于是我决定更新 FreeBSD Handbook 的翻译。

我给 freebsd-doc 邮件列表发了封自我介绍并求助的邮件。共同导师 lwhsu@ 联系我，帮我将旧的 BIG-5 编码转换为 UTF-8。然后我开始翻译。delphij@ 帮我解决 PDF 渲染中的乱码问题。我在树莓派 2B 上搭了台 FreeBSD 服务器，这样可以从牙科诊所 ssh 上去，有空就翻译。当时 FreeBSD ARM 软件包仓库还没建立，我安装常用程序时遇到一些问题。我在 FreeBSD 台湾用户组 Facebook 群组认识了导师 kevlo@。他耐心回答了我许多愚蠢的问题，帮我解决问题并鼓励我继续翻译。我挣扎于 XML 标签，进度很慢。幸好测试与练习 PO 翻译那晚，我遇到 PO 翻译转 UTF-8 的问题，共同导师 wblock@ 热心帮我解决。把旧翻译方式转换为 PO 翻译是劳动密集型工作，必须逐条把字符串复制粘贴到 PO 文件，需要更多人参与。为吸引新鲜血液，7 月我在台北本地 BSDDay 做了关于 FreeBSD 文档繁体中文翻译的演讲（见 <https://lists.freebsd.org/pipermail/freebsdtranslators/2016-August/000141.html>）。对无法到场的人，我也写了篇文章介绍 FreeBSD 文档繁体中文翻译。一位贡献者 cwlin 通过 Subversion 日志联系我，他把 zh\_TW 版 Handbook 转成了 PO 翻译，工作量很大！之后，kevlo@ 提议我成为提交者以方便翻译工作。如今在 kevlo@ 与 ryusuke@ 帮助下，我复兴了 zh\_TW 版 FreeBSD 网站。

**Joseph：** 像大多数提交者一样，我只是开始提交补丁。我通过潜伏在 IRC 与邮件列表、参加 BSDCan 结识 FreeBSD 人。BSDCan 的黑客休息室是结识 FreeBSD、OpenBSD 乃至一些 DragonFlyBSD 社区成员的好方式。这些联系激发了我更多贡献的动机。

我做过的 Ports 涵盖 `games/voxelands` 到 `security/wpa_supplicant`，但有一个领域我希望多提交，可以称为“科学软件”。例如 `biology/diamond`、`biology/njplot`、`biology/paml`、`cad/gmsh`、`math/R`。

**加入 FreeBSD 项目后体验如何？对想成为 FreeBSD 提交者的读者有何建议？**

**Sevan：** 我很高兴成为项目一员。入门流程很简单，队友也很乐于提供建议与提示。工作流从 Bugzilla（我们的 bug 跟踪器，请求与补丁落到这里）到 Phabricator（评审系统）。我很喜欢评审系统，有人过目你的改动令人安心。有时会有遗漏，能在改动进入源码树之前发现就好。这一流程也帮助团队相互熟悉彼此的思路，并为问题提供不同视角。

每年 BSD 社区聚首加拿大渥太华的 BSDCan 会议。每晚都有文档冲刺。在文档冲刺上，文档团队的人就文档工作的方方面面做演讲，并帮助大家开始文档工作。

可惜 BSDCan 一年一次，日常交流我们在 IRC 与邮件列表上碰头。我们所在 IRC 网络的 wiki 条目：<https://wiki.freebsd.org/IRC/Channels#EFnet>。EFnet 上 #bsddocs 是文档团队的所在，freebsddoc@ 邮件列表也是。

对想成为 FreeBSD 提交者的人，我建议加入相关领域的 IRC 频道与邮件列表，这能让你联系到能提供指导与援手的开发者。如果不确定从哪个项目入手，审视系统总是稳妥的起点，好处是让你熟悉当前状态，从而帮助厘清可作哪些新改进，减少潜在疏漏。

**Ruey-Cherng：** 你可以装上 FreeBSD 用它做日常工作。发现系统、Ports 或文档中的 bug 时，附上补丁提交 bug 报告。我在 Macbook Pro 2011 上装了 FreeBSD 加 Xfce 桌面环境，每天用它上网、处理文档、即时通讯。

第一次浏览 FreeBSD 论坛时，我觉得有点冷清。我去翻邮件列表归档，订阅了一些邮件列表。我发现多数 FreeBSD 开发者喜欢邮件列表这种老派讨论方式。订阅你感兴趣领域的邮件列表，很快你就会明白他们为何喜欢邮件列表而非网页论坛——用惯用的邮件客户端浏览与回复非常方便。既然知道开发者聚在哪里，就自我介绍并参与讨论吧。

相关 bug 报告也会发到邮件列表，你会在邮件列表看到自己的 bug 报告与补丁。开发者会认可你的贡献并提供建议。

找一找本地 FreeBSD 用户组并加入，这是获取新信息、解决所遇问题之道，也可能在本地用户组遇到一些开发者。

读 FreeBSD Handbook 及 FreeBSD 文档项目中的其他文章与书籍以更多了解 FreeBSD。发现文档中的 bug 或过时信息时，修正 bug 并贡献你的更新。

浏览你所用语言的 FreeBSD 网站，看看能为同步其内容与英文版做些什么。

如果你的硬件 FreeBSD 暂不支持，别失望。你也许有机会参与驱动测试！在相关邮件列表找驱动方案，看看是否有最新且未发布的驱动，帮开发者测试。

你的所有努力都会受到赞赏。看到别人“激烈”讨论也别怕，这只是个像现实世界一样的小社会。

**Joseph：** 我的体验相当积极。我有很棒的导师（swills 与 AMDmi3），在我跑偏时把我引回正轨。其他更资深的 Ports 开发者（尤其是 mat）也给了很多有用提示。对任何想为 Ports 树贡献的人我想说：超过 25000 个 Ports，我们需要你！《Porter’s Handbook》及 poudriere、portlint 等工具让参与变得平易，即便经验不多的人也行。•

***

**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/20161112-bian-cheng-yu-yan/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.
