序言

“我把一个人的计算机生涯从 Unix 开始——比如从本科阶段开始——比作在东非出生。那里热得令人难以忍受,身上爬满虱子和苍蝇,营养不良,还患有多种本可以治愈的疾病。但对东非的年轻人来说,这就是自然的生活状态,他们就在其中日复一日。当他们意识到原来世界并非如此时,已经太晚了。他们已然认为编写 shell 脚本是一种天经地义的事情。”
—— Ken Pier,施乐帕洛阿尔托研究中心(Xerox PARC)
现代 是一场灾难。它是一款“非操作系统”:不可靠、反直觉、不宽容、不友好、功能薄弱。几乎没有什么比试图强迫 Unix 做一些有用又复杂的事更令人沮丧了。现代 Unix 阻碍了计算机科学的发展,浪费了数十亿美元,还摧毁了许多认真使用它的人的常识。
夸张吗?读完本书后你就不会这么想了。
设计缺陷
最初的 Unix 解决了一个问题,而且解决得很好,就像罗马数字系统、梅毒的水银治疗法和复写纸一样。同这些技术一样,Unix 也理应成为历史。它是为一台内存低、磁盘小、无图形界面、无网络、无电源的机器开发的。那时候,人们必须采取以下态度:
“小而简单比完整且正确更重要。”
“只需解决问题的 90%。”
“一切皆为字节流。”
上述态度对于承载复杂且重要应用的操作系统来说,已不再适用。当 Unix 被未经培训的操作员用于关键安全任务时,这些态度甚至可能致命。
具有讽刺意味的是,正是那些让 Unix 在计算机更小、功能更少时取得成功的特质和设计目标,现在却阻碍了它的实用性和易用性。每次在底层核心上添加新的子系统,都导致了要么被拒绝,要么出现“移植与宿主病”,伴随着大量使系统瘫痪的瘢痕组织的增生。Unix 的网络模型是一场杂乱无章的不可靠巴别塔,使 Unix 那个著名的小巧内核体积增加了四倍。它的窗口系统继承了字符界面的晦涩且不友好的特性,同时又创造了新的方式,使高速计算机变得缓慢。新的系统管理工具花费的时间比节省的还多。它的邮件系统让美国邮政服务看起来异常出色。
随着时间推移,这些缺陷只会愈加明显。使用 Unix 对初学者和专家来说依然是令人不愉快的体验。尽管有大量优秀的相关书籍,Unix 的安全性依然是难以捉摸的目标。尽管外设越来越快、越来越智能,高性能异步输入/输出仍然是幻想。即使厂商投入数百万开发“易用”的图形用户界面,绝大多数 Unix 版本仍然只能通过 1970 年代风格的电传打字机界面完成琐碎的系统管理工作。事实上,随着 Unix 功能的不断扩展,它反而变得越来越垃圾。Unix 无法从内部修复,必须被抛弃。
最后更新于