# 序言

![](/files/wLOaEatOQqVRHyKQL54w)

> “我把一个人的计算机生涯从 Unix 开始——比如从本科阶段开始——比作在东非出生。那里热得令人难以忍受，身上爬满虱子和苍蝇，营养不良，还患有多种本可以治愈的疾病。但对东非的年轻人来说，这就是自然的生活状态，他们就在其中日复一日。当他们意识到原来世界并非如此时，已经太晚了。他们已然认为编写 shell 脚本是一种天经地义的事情。”
>
> —— Ken Pier，施乐帕洛阿尔托研究中心（Xerox PARC）

现代 Unix[^1] 是一场灾难。它是一款“非操作系统”：不可靠、反直觉、不宽容、不友好、功能薄弱。几乎没有什么比试图强迫 Unix 做一些有用又复杂的事更令人沮丧了。现代 Unix 阻碍了计算机科学的发展，浪费了数十亿美元，还摧毁了许多认真使用它的人的常识。

夸张吗？读完本书后你就不会这么想了。

## 设计缺陷

最初的 Unix 解决了一个问题，而且解决得很好，就像罗马数字系统、梅毒的水银治疗法和复写纸一样。同这些技术一样，Unix 也理应成为历史。它是为一台内存低、磁盘小、无图形界面、无网络、无电源的机器开发的。那时候，人们必须采取以下态度：

* “小而简单比完整且正确更重要。”
* “只需解决问题的 90%。”
* “一切皆为字节流。”

上述态度对于承载复杂且重要应用的操作系统来说，已不再适用。当 Unix 被未经培训的操作员用于关键安全任务时，这些态度甚至可能致命。

具有讽刺意味的是，正是那些让 Unix 在计算机更小、功能更少时取得成功的特质和设计目标，现在却阻碍了它的实用性和易用性。每次在底层核心上添加新的子系统，都导致了要么被拒绝，要么出现“移植与宿主病”，伴随着大量使系统瘫痪的瘢痕组织的增生。Unix 的网络模型是一场杂乱无章的不可靠巴别塔，使 Unix 那个著名的小巧内核体积增加了四倍。它的窗口系统继承了字符界面的晦涩且不友好的特性，同时又创造了新的方式，使高速计算机变得缓慢。新的系统管理工具花费的时间比节省的还多。它的邮件系统让美国邮政服务看起来异常出色。

随着时间推移，这些缺陷只会愈加明显。使用 Unix 对初学者和专家来说依然是令人不愉快的体验。尽管有大量优秀的相关书籍，Unix 的安全性依然是难以捉摸的目标。尽管外设越来越快、越来越智能，高性能异步输入/输出仍然是幻想。即使厂商投入数百万开发“易用”的图形用户界面，绝大多数 Unix 版本仍然只能通过 1970 年代风格的电传打字机界面完成琐碎的系统管理工作。事实上，随着 Unix 功能的不断扩展，它反而变得越来越垃圾。Unix 无法从内部修复，必须被抛弃。

[^1]: 从前，Unix 是 AT\&T 的商标。后来是 Unix 系统实验室的商标。随后又成为 Novell 的商标。据我们所知，Novell 曾考虑将该商标转交给 X/Open，但由于最近各种交易的频繁变动，很难确定目前商标的具体归属。


---

# Agent Instructions: 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:

```
GET https://book.bsdcn.org/unix-tong-hen-zhe-shou-ce/xu-yan.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
