> 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/20180102-cun-chu/book-review.md).

# 书评：FreeBSD Mastery: Specialty Filesystems

作者：**MATT JORAS**

*FreeBSD Mastery: Specialty Filesystems*

* 作者：Michael W Lucas
* 出版社：Tilting Windmill Press（2016）
* 纸质书定价：$24.99
* 电子书定价：$9.99
* ISBN：9780692610442
* 页数：238

为开源软件寻找实用且有用的示例常常很困难。手册页固然好，但通常在你理解软件基础后才最有用。手册页中缺少的，正是“这里有一个该软件解决的问题示例，以及如何配置它来完成”这样的基础内容。Michael W Lucas 的 Specialty Filesystems 为 FreeBSD 中某些文件系统填补了这一空白。

本书既是基础参考，也可视为展示 FreeBSD 一些鲜为人知特性的著作。开篇用简短、易懂的示例介绍如何访问各种“外来”介质。这一节穿插了一些有趣的历史笔记。

下一节聚焦 **devfs(8)** 和 **devd(8)**，这两者我此前只是模糊了解。除揭示 **devfs(8)** 和 **devd(8)** 的用途和功能外，Lucas 还提供了实用的建议和示例，FreeBSD 桌面用户会从中受益。另外提到了 **procfs(5)** 和 **fdescfs(5)**；不过，这些部分不如 **devfs(8)** 和 **devd(8)** 的章节精彩。

接下来涵盖的文件系统有 POSIX 消息队列文件系统、union mounts、null mounts 和内存文件系统。**mqueuefs(5)** 这个特性我甚至不知道是 POSIX 的一部分。作为一种进程间通信方式，它似乎失宠（或从未受宠），或许并无充分理由。书中对它的介绍读起来很有趣，但这种处理方式更适合专注于编程而非系统管理的书。union mounts 和 null mounts 部分对那些从未想过文件系统特性可以解决某类问题的人很有用。对两种内存文件系统 **md(4)** 和 **tmpfs(5)** 的介绍，为需要理解二者差异的人提供了概览。

书中接着对老牌的 Network File System（NFS）做了全面概述。觉得各种区别令人困惑的系统管理员会从这一节受益，因为作者澄清状况的能力比谷歌引导你在 Serverfault 或 Stackoverflow 上找到的问答更强。对 Microsoft CIFS 的处理也是如此。

书中对如何使用 iSCSI 和 HAST 特性构建冗余存储网络做了有趣而深入的探讨。这一节几乎可作为想在 FreeBSD 上部署类似特性者的配置指南直接使用。我从中学到不少 FreeBSD“内置”的故障转移和冗余特性。尽管与其他章节相比相对专深，我认为它仍有价值，因为它用到了各种“特殊”特性。

对 FUSE 的处理还行，但相比网上关于 fusefs 的现成资料，并未增加什么出彩的内容。FreeBSD 的 FUSE 实现有一些细节确实有用，但我认为 FreeBSD 实现还有更多需要注意的地方未涵盖，本应涉及。

就个人而言，**automountd(8)** 这一节让我受益匪浅。当初我刚开始把 FreeBSD 当桌面用时，到处看到过这个特性的提及，但始终不太明白它在做什么。坦白说，我以为它只是个“看到外部介质就挂载”的工具。本书很好地展示了它能做的不止于此。这绝对是 FreeBSD 中被低估的特性，而本书比我在官方文档和指南中看到的都讲得更到位。

NFSv4 ACL 一节对全书贡献不大。这个话题似乎更适合单独成书，而不是附加到一本本应易读的技术书里。

总体而言，本书读来轻松愉快。作为软件开发者和业余系统管理员，我对 FreeBSD 的文件系统有了不少了解，也理清了原本就熟悉的许多内容。我认为任何想拓宽 FreeBSD 工具箱、纳入各种文件系统组件的人都会从本书中受益。

***

**MATT JORAS** 是 FreeBSD 提交者，关注内核可扩展性、网络和 FreeBSD 桌面/笔记本可用性。他目前供职于 Dell EMC，为基于 FreeBSD 的 Isilon 产品做开发。在家里，他在个人机器上运行 FreeBSD，并作为业余系统管理员用 FreeBSD/ZFS 囤积数十 TB 的个人数据。


---

# 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/20180102-cun-chu/book-review.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.
