> 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/20230506-freebsd-san-shi-zhou-nian-ji-nian-te-kan/we-get-letters.md).

# 读者来信

* 原文：[We Get Letters](https://freebsdfoundation.org/wp-content/uploads/2023/06/lucas_letters.pdf)
* 作者：**Michael W Lucas**

Lucas 先生：

你对 FreeBSD 的热爱显而易见，且相伴一生。这期《FreeBSD 期刊》已经变成了怀旧之旅，所以编辑委员会让我写信问问你是怎么起步的。你为什么一直待在我们这群人中间？你为什么要写这么多书？

——John Baldwin，《FreeBSD 期刊》编辑委员会主席

亲爱的 John：

我就是在那儿学会了 Perl 编程。事实核查员也会指出，当时 Perl 还不算一门语言，但关于算法我所知道的一切都来自 ZX80 BASIC 解释器，所以我觉得 Clive 爵士欠这个世界一个郑重道歉。我的 C 和 shell 知识也是这么来的，而 ZX80 那 1K 内存让我对内存耗尽有了深刻认识。再加上 ZX80 那些古怪的 `peek()` 和 `poke()` 操作符，我所需的人际关系学就齐活了。

我从没想过自己会写一封“Dear John”信，但生活就是个无底的失望源泉。你意识到没有，这是我给贵刊写的第三十篇专栏？五年里三十封这样字斟句酌、目光如炬的来信。虐猫的人判得都比这短。你的问题充分证明，这三十篇你一篇都没看过。好在你这一届编辑主席的职责是把版面填上技术准确的内容，而不是确保编辑胡扯的质量。“读者来信”专栏多有学问并不重要，只要有就行。

与此同时，我学会了写作。文法学校教的是语法和拼写这类琐事。

你知不知道，这个问题之前已经有无数组织和出版物问过我？包括你自己的基金会——那至少是不直接与国际执法机构挂钩的组织。人们不停地问。大概是因为没人读答案，每次都纵我提供薄如蝉翼的谎言，乃至赤裸裸的诽谤。我接受 Lawrence Technologies 的采访，是为了挑战自己板着脸胡诌的能力。Wonderland Press 多次采访我，但那只是为了营销。大家都明白，实话会妨碍卖书。那个关于猴子的故事？纯属捏造。然而这一次，面对整个声望与操守无可挑剔、行使其一贯无瑕监督权的编辑委员会，我感到不得不至少此刻说出真相。

没错，真相！拉钩发誓。我与 FreeBSD 终生不渝的爱恋，显然始于出生。事实核查员或许会指出，那比 Dennis Ritchie 和 Ken Thompson 下山传扬 Unix 神圣福音早了好几年，但二人脑海中已经翻涌的强烈概念，把我那空空如也、未格式化的大脑引到了他们的光辉之中。然而，关于更简单的多任务操作系统的种种思考很快被生活那恶心的必要琐事挤到一边，直到我那双脏爪子摸到一台二手 Sinclair ZX80，我才得以把心思转向计算。不，不是 ZX81，也不是那些花哨的 Timex。是 ZX80。

这些与真正的写作扯不上关系。我的老师徒劳地盯着我，让我把 Z 和 S 朝正确的方向写，而我只在乎学会表达我的内在自我。自学中，我在五年级就把“内在自我”那一套搞明白了，然后立刻着手把那堆烂摊子重新封上。然而我的名声早已污损，注定我要么当作家，要么当电视宣传员。幸好，我长着一张适合广播的脸、一副适合纸张的嗓子，所以躲过了广播电视的羞辱。

之后就是练习，和任何愚蠢的职业一样。大学同学会说：“嘿，我周五晚上在自家后院办烧烤，邀请了一堆你觉得有吸引力那种性别和取向的人，他们品味都不高、底线又低，你应该来。”我会说：“谢了，不去了，我正在写一篇东西，它会被 136 家市场拒之门外，然后埋进我的失败之箱。每次被拒的邮费我当然自己掏。对了，炉子那个木箱已经快满了，我需要新的失败之箱，你买冰箱的时候告诉我一声。”

把失败之箱塞到溢出来，本身就是回报。你拿不到钱的。

我得找份工作。1995 年，我的一个“朋友”是一家全新互联网骨干网的 DNS 管理员。他们需要一次性劳动力来接电话、冲电话公司咆哮、用 root 跑一些文档极差的命令。薪水少得可怜，但我的经验也就是跑过 `trn` 和 `elm`，外加偶尔 FTP 失败一次，所以还算公道。还是夜班，这意味着我不用额外花精力调试为什么我的 `peek()` 和 `poke()` 操作没能正确地刺激到人。人是有 bug 的，而且没有接口可以冷静地接收 bug 报告。不过我确实学会了从让来电者 core dump 中找到乐趣。

在我拿到 root 密码之前，没人向我解释过它的危险性——具体说就是，你弄坏了什么，就得自己修。替他们说句公道话，警告我会毁了他们的乐趣。我得赶在又一次把服务器搞挂、重装 2.0.5 之前，真正学一学 FreeBSD 这东西。Walnut Creek CDROM——FreeBSD 最早的商业支持者——出版了 Greg Lehey 的《Complete FreeBSD》。我搞到一本，开始啃。

需求蔓延不只发生在项目里，也发生在初级系统管理员身上。把我弄进来的那个“朋友”教我做她的工作，然后立刻跳槽去了还有希望的公司，这展现了她的智慧，直到她发邮件求我帮她再找一份工作，我愉快地报了一箭之仇。那时我已经学会了 NNTP 和 **ldd(1)**，意识到系统管理是我们这个社会最接近黑魔法的东西，只要我搞懂库版本管理，就能成为现代的 Aleister Crowley。不是说我想要那些没完没了的疯狂派对，也不是想借走大笔无需考虑偿还的款项，而是吸收那么多公众的恶骂让我相信自己能让别人的人生有所不同。幸运的是，时间已经把那份年轻愚蠢从我心脏里揍了出去，留下我如今快乐健康的自我，完美适应网络与系统管理这种轻松无忧的工作。

回到互联网早期那段激动人心的岁月，那时我们有“印刷杂志”这种东西。它们就像打印出来的博客，用一张光鲜的封面粘在一起。其中一本叫《Sys Admin》——可见拼写是一种可选的社交约定。我为了搞懂自己无知地挖下的那个坑，订了一份。订杂志就像 RSS，只不过它每个月都自己上门，哪怕你忘了看 feed。我记得读过一篇确实有点用的文章，前提是你得先破译那糟糕透顶的文笔。我的直觉反应是：我做结肠镜检查时都写得比这好。我翻到下一页，看到“欢迎投稿！”的方框。我一肚子气：我那第三个失败之箱还塞得满满当当，而某个连动词钉不住名词的笨蛋却已经登出来了。我气鼓鼓地喷了一篇关于 CVS、CVSup 和 build world 的稿子，寄给了编辑。

赌气本身就是回报，是的，但有时它还附赠特别奖励。他们寄来一份合同、一张够付当月房贷的支票，以及“请允许我们继续给你寄支票”的请求。他们甚至把那篇文章登在 1999 年 9 月号上，把我的名字印到了封面上。从那以后每隔几个月，我就会纵容自己就某个让我心烦的话题喷上两千来字，打磨成正式的杂志稿件，让编辑给我寄钱。

如果你写得没别人那么糟，陌生人会从天而降，让你多写点。

1990 年代末，技术出版社 O’Reilly 决定进军网络出版。他们说服了一位 Chris Coleman 为全新的在线 BSD DevCenter 组稿。他们提议他接这活儿时，听起来一定很简单，但 Chris 很快就发现，全世界大约只有两位 FreeBSD 作者，而 Greg Lehey 已经学聪明了。Chris 自我介绍了一番，提出以字换钱。幸好 Chris 还说服了 Dru Lavigne 加盟，否则 BSD DevCenter 就会改名叫《Lucas 像个受挫幼儿般抱怨》，没人会点进去看。

“Big Scary Daemons”专栏基本上就是“本周哪个程序在烦 Lucas，怎么把它揍到服帖”。因为专栏在网上，我的文章不算真正发表。这让我可以随便写一些乱七八糟的东西，包括“在多系统启动里让 Linux 和 FreeBSD 共享 swap 空间”那种傻乎乎的专栏——尽管多启动早已和 5.25 英寸软盘一起进了历史垃圾堆，仍有人想和我讨论它。

我刚在 O’Reilly 开专栏，《Sys Admin》杂志就倒闭了。给我寄那些支票把出版社寄垮了。唉。

2001 年初，Bill Pollock 问 Chris，认不认识想给 No Starch Press 写 FreeBSD 书的人。Chris 抛出了我的名字，赶在 Bill 把他拉下水之前逃走了。

我刚签下《Absolute BSD》的合同，O’Reilly 的 BSD DevCenter 就倒闭了。我不是说我经常从着火的出版社里逃出来，但这种事也不算少见。

《Absolute BSD》之后是《Absolute OpenBSD》，然后是《Absolute FreeBSD》《Cisco Routers for the Desperate》《Network Flow Analysis》等等。我有无数其他书的主意，但我写《PGP & GPG》的经历让我看到不畅销的书堆在仓库里无人问津的下场，而关于 PAM、`sudo` 或 **ed(1)** 的书市场小得可怜。我的笔记在剪贴本里积灰，周围都是电话会议时涂鸦的玩意儿：下流的神秘符号、一个人玩的井字棋、求死的呓语。你懂的，老样子。等到自助出版成本变得可行，我就能把《SSH Mastery》和《FreeBSD Mastery: Jails》这类不太商业的书推出来。没有任何商业出版社会碰《$ git commit murder》和《$ git sync murder》这种小众小说，但如今我手里有工具，谁也拦不住我把这些 BSD 主题作品用投石机砸进公众视野。本期面世时，我的第 52 本书就要逃出牢笼。幸好这还不足以让维基百科收录。我不在乎有没有条目，但要是那词条里哪怕掺了一丁点那珍贵的真相，我就要抗议。

你为什么一直待在我们这群人中间？你为什么要写这么多书？我想不出比这更明显的伪装来问“我们怎么才能让你走人”。在这方面，我恐怕又要让你失望了。我不但知道沉没成本谬误，我还拥抱它。况且，已经有人向 Linux 那帮人警告过我了。我完全打算一直待在这儿，直到这本令人景仰的《期刊》还清它在第一期专栏里欠我的冰淇淋债务。然后它倒闭。

就在这儿。真相。给你了。我认为我对编辑委员会的义务已经履行完毕。然而，前文所谓的“真实”让我不得不提一句：我确实注意到了藏在你来信里的那个问题。

能帮你的书。

或者不能。

> “虽然我们欣赏 Lucas 先生对本刊的独特贡献，但我们也觉得他的具体才能并未得到充分利用。请买他的书、买他的时间、买他的签名照什么的，让他去忙别的吧。”

——John Baldwin，《FreeBSD 期刊》编辑委员会主席

<https://mwl.io>

有问题想问 Michael？请发送至 <letters@freebsdjournal.org>

MICHAEL W LUCAS（<https://mwl.io>）写这个专栏已经五年了。他目前在一本关于自建邮件服务器的书上奋笔疾书，并拿门框蹭背。《Letters to **ed(1)**》收录了前三年这些胡言乱语。


---

# 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/20230506-freebsd-san-shi-zhou-nian-ji-nian-te-kan/we-get-letters.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.
