文档介绍:UNIX 痛恨者手册 UNIX 痛恨者手册一本很有趣的书, 是那些用惯 UNIX 的人对 UNIX 的各种指责, 诋毁, 谩骂和嘲笑. 是由爱而生的恨. 即使当成一本高级笑话书, 也是很有价值的. By Simson Garfinkel, Daniel Weise, Steven Strassmann 第一章 UNIX 世界上第一个电脑病毒“伯克利的两项最著名的产品是 UNIX 和 LSD ( 一种毒品) ,我想这不是巧合”病毒依赖于微小的个体和强大的适应性得以生存。它们并不复杂:它们没有为呼吸,新陈代谢,肌体活动等功能提供什么,只有足够的 DNA 或 RNA 以供繁衍。比如, 肺炎病毒比起它们入侵的细胞要小得多, 但它们在每个肺炎流行季节都能够产生新的变种,造成无数人死亡。一个好病毒的特点是: * 个头小病毒做的事情不多, 所以不需要很大。有人认为病毒不是生物, 只是一些有破坏性的酸和蛋白质。* 可移植性病毒经常变异,以便以不同的方式攻击不同的细胞。据说 AIDS 就是由猴子身上的病毒变异而成的。* 耗尽寄主的资源* 快速变异 UNIX 具有以上所有优点。在它刚诞生时,很小,功能不多,缺乏真正操作系统所需要的功能( 如文件映射, 告诉 IO, 健壮的文件系统, 设备锁,合理的进程间通讯),它的移植性很好。 UNIX 耗尽主机的资源, 没有系统管理员的时时呵护, UNIX 会不断恐慌(panic) , core dump ,挂起。 UNIX 不断变异:同一个补丁在一个版本上工作,在另一个版本上就不行。 UNIX 是有用户界面的计算机病毒。标准化那些不一致的----------------------------------------------------------- --------------------- “标准的伟大之处在于它可以有很多”--- Grace Murray Hopper 自从 UNIX 80 年代开始流行以来, UNIX 厂商一直在努力进行 UNIX 标准化工作。 SUN, IBM , HP和 DEC 在这个他们自己制造的难题上倾注了数百万美元。为什么 UNIX 厂商不喜欢 UNIX 标准化? 许多用户受够了复杂繁多的 UNIX , 最终只好使用 Windows , 因为他们的这个 UNIX 无法支持那个 UNIX 上的应用程序。如果 UNIX 标准化了,谁还会买 SUN 的机器呢标题: 第二章欢迎新用户欢迎新用户如同用一把上了六颗子弹的左轮枪玩俄罗斯轮盘赌 Ken Thompson 自己设计过一辆汽车。和其他车不同,它没有速度计、汽油计, 也没有那些愚蠢的指示灯讨司机的厌。如果司机犯了什么错误, 仪表盘上就会出现一个大大的“?”。“有经验的司机,” Thompso n 说, “应该知道哪儿搞错了。”计算机系统的新手需要一个友好的系统。至少, 一个得体的系统会这样招待自己的客人: 与功能有逻辑关系的命令名对危险命令的小心处理一致的命令行为和命令行参数解析易得和易读的在线文档当命令失败时,给出可理解和有用的错误反馈在建造 UNIX 的过程中,从没邀请过住户。来访的都是些戴着安全帽的建筑工人, 被安插在这个破木板房子的各个角落。不幸的是, 不仅没有人性因素( human factors )工程师的参与,而且住户的需要就从来没有被考虑过。所以抽水马桶、中央供暖、窗户等这些方便设施在后期就很难再添加了。但是建筑师们仍然为 UNIX 的设计而骄傲, 似乎他们并不介意在一个没有烟火探测器的屋子里睡觉。在其发展的大部分历史中, UNIX 只是大学和工业研究人员的研究工具。随着大批便宜工作站的出现, UNIX 作为平台软件进入了新时代。这一变化大约发生在 1990 年,其标志就是工作站厂商把 C 编译器从 UNIX 发布中剔除出去,以降低成本满足非开发用户的需求。可见, 只是最近几年中 UNIX 厂商才开始考虑非程序员用户的需要,开始为他们提供 shell 以外的图形界面。含糊的命令名 UNIX 新手总是对 UNIX 对命令的命名表示惊讶。在 DOS 和 Mac 上受的教育不足以让他们体会到 cp、 rm、 ls 这类两字母命令的简洁和优美。像我们这样用过 70 年代早期的 IO 设备的人都能理解, ASR-33 Teletype 这类设备的速度、可靠性,以及它的键盘是万恶之源。和今天这种基于反馈原理、只需要关闭一个微开关的键盘不同, 你必须用足力气揿下 Teletype 的键至少半英寸,以发动一个类似自行车上用的小型发电机,在上面操作要冒指骨骨折的危险。如果当时 Dennis 和 Ken 用的是 Selectric 而不是 Teletype , 可能今天我们敲的将不是” cp”和” rm”而是” copy ”和”