> 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/20170304-pei-zhi-guan-li/new-faces-of-freebsd.md).

# FreeBSD 新面孔

作者：Dru Lavigne

本专栏旨在聚焦近期获得提交权限的贡献者，并向 FreeBSD 社区介绍他们。本月聚焦的是 Johannes Dieterich 和 Mahdi Mokhtari，他们分别于 1 月和 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 的部分，原以为修几个 Ports 是件快事。当然，最终工作量比预想大得多，且仍在推进。不过我有幸结识并与一群杰出的人合作，学到了很多。这让我获得了提交权限，也激励我更进一步。我的目标是尽自己的一份力，确保 FreeBSD 仍是最佳的（HPC）开发系统，正如 2006 年我安装 6.1-RELEASE 时那样。

> “选一个你在意、认为尚有不足的 FreeBSD 领域，去改进它。要做的事很多，时间却很少。不要羞于求助。” ——JOHANNES

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

**Johannes：** 我的体验确实非常好。我发现开发者们在私下、内部和面对面时都表现得专业。迎接我的种种积极反馈令我受宠若惊。作为一个非常初级的成员，读者对我的建议要有所保留地看待：我会说，选一个你在意、认为尚有不足的 FreeBSD 领域，去改进它。要做的事很多，时间却很少。不要羞于求助。

## Mahdi Mokhtari

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

**Mahdi：** 我是 Mahdi Mokhtari，朋友们叫我 MMokhi。我在高中的一门机器人课上开始接触编程，学了 C；大约半年后，又同时开始学 C++。之后我被 GNU/Linux 吸引，紧接着就对在 FreeBSD 上开发产生了兴趣。

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

**Mahdi：** 与许多人不同，我大概是在场最年轻的人（甚至比 Beastie 还年轻），我不是经历过 20 世纪 90 年代的老派 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/20170304-pei-zhi-guan-li/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.
