> 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/20170102-quan-qiu-ke-fang-wen-de-freebsd/new-faces-of-freebsd.md).

# FreeBSD 新面孔

作者：Dru Lavigne

本专栏旨在聚焦近期获得提交权限的贡献者，并向 FreeBSD 社区介绍他们。本月聚焦的是 Johannes Dieterich（1 月成为 Ports 提交者）和 Mahdi Mokhtari（2 月成为 Ports 提交者）。

## Johannes Dieterich

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

**Johannes：** 我是训练有素的计算化学家。我们这个领域为高性能计算（HPC）装置开发模拟代码，用于研究化学过程。这些过程的相关物理规律决定了何种理论层次才合适——从牛顿力学到各种级别的量子力学方法。我的个人研究课题之一是为化学优化问题开发全局优化技术。目前我是普林斯顿大学的研究员。方法开发是我的热情所在，高效实现则是我的执念。不写代码或写文章的时候，你会在肌肉车里或探索美国户外时找到我。

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

**Johannes：** 大学时我做系统管理员（SuSE 和 Debian）赚生活费。我对这些系统有点失望，想知道是否有什么更适合我个人电脑的不同选择，于是遇到了 FreeBSD。我最终从一家零售商处订购了一张 FreeBSD 6.1 CD，一本 Greg Lehey 的《The Complete FreeBSD》和一本 Dru Lavigne 的《BSD Hacks》，这两本书都非常出色。经过一段涉及大量 Ports 重编译和 X11 故障的学习曲线之后，FreeBSD 成了我的工作主力。FreeBSD 当时乃至现在都透明易用，对开发者非常友好，并附带庞大的 Ports。手册对初学者是绝佳资源，我也发现社区非常友好，交流起来很专业。

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

**Johannes：** 我来自 HPC 领域，而 GPU 加速是几年来最重要的课题之一。FreeBSD 在这一方面仍严重落后于竞争对手。这个问题不仅关乎把 FreeBSD 作为 HPC 系统（这种可能性极低），更关乎把它用作 HPC 开发者平台，乃至让主流加速应用得以运行。我加入了试图改善这一状况的若干努力，特别是针对 AMD GPU，以为修几个 Port 是很快能搞定的事。结果它当然远比想象的工作量大，而且仍在进行中。不过，我有幸结识并合作了一批杰出的人，也学到了很多。这为我赢得了提交权限，也给了我继续推进的动力。我的目标是尽自己的一份力，确保 FreeBSD 仍然是（HPC）开发者系统的最佳选择，正如 2006 年我安装 6.1-RELEASE 时那样。

> “在 FreeBSD 中挑一个你强烈关心、认为还不够好的领域，去改进它。要做的事很多，时间很宝贵。不要羞于求助。” ——JOHANNES

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

**Johannes：** 我的体验确实非常好。我发现开发者们在私下、在关起门后以及面对面时都很专业。我受到的所有积极反馈令人受宠若惊。作为一名非常初级的成员，读者对我的建议要有所保留：我建议在 FreeBSD 中挑一个你强烈关心、认为还不够好的领域，去改进它。要做的事很多，时间很宝贵。不要羞于求助。

## Mahdi Mokhtari

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

**Mahdi：** 我是 Mahdi Mokhtari，朋友们叫我 MMokhi。我在高中的一门机器人课程中开始学习编程，那里我学了 C，约半年后又同时开始学 C++。之后我被 GNU/Linux 吸引，紧接着又对在 FreeBSD 上开发产生了兴趣。与许多人不同——而且因为我大概是屋里最年轻的人（甚至比 Beastie 还年轻）——我并不是经历过 1990 年代的老派 Unix 人。我在一家公司兼职做研发开发者时从同事那里听说了 BSD。那是在 FreeBSD 与 Linux 比较的语境下，我变得更加好奇。我开始搜索并向更多人请教，发现了 FreeBSD 这个乐于助人的社区——最早是在 IRC 上。我开始问许许多多问题，从简单的使用技巧，到内核 pf 模块中 mbuf 的特定宏功能。IRC 上的人们回答了我，我觉得有必要换掉我的笔记本操作系统。

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

**Mahdi：** 我从自己如何作为贡献者开始说起。在我与这个操作系统及其周边社区结缘之后，我想要成为它的一部分。除了使用它，我还想开发它！于是我向其他提交者请教该怎么做。当时听上去像套话，但现在我完全理解得到的回答：“做你喜欢做的、需要做的事，过段时间会有人联系你加入的。”之后我玩转所学的概念，尝试把 Linux 应用移植到 FreeBSD，定制内核并为它编写模块。有一天，我在为 FreeBSD 移植 MySQL 5.7。我对 C/C++/CMake/MySQL 已有足够了解，能按需阅读和修改代码，做这个 Port 完全出于好奇。我也看到 Ports 邮件列表上有对这个 Port 的需求，于是开了一个 PR（<https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=204607>）。在 brnrd@ 的帮助下，我成功完成了我的第一个 Port 并接过了它的维护权。这是我的起点。之后我学了更多，专注于我喜欢的内容，努力在我自称“专家”的领域或我想学习的领域为项目出力！是的，这种乌托邦确实存在！大约两年后，我仍享受着“帮助 → 学习 → 帮助”的循环。feld@ 联系到我，问我是否愿意学些别的东西并直接提交自己的改动。我热情地回答了“好耶”。

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

**Mahdi：** 从我提出第一个问题起，我的体验就一直很棒。大多数时候，人们在 PR 上随时准备帮你。请记住，他们有本职工作，这意味着有时需要稍作等待。如果你愿意学习，FreeBSD 是最好的去处之一。对感兴趣的读者，继续做你喜欢的事，它会让你和别人都受益。这只需要一些时间、耐心和兴趣。请相信大家会欣赏你的工作，终有一天你会被“惩罚”获得那个提交权限。

***

**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/20170102-quan-qiu-ke-fang-wen-de-freebsd/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.
