往事:Windows 95 硬件兼容问题

本文来自 The Old New Thing专栏,作者是Raymond Chen,他是资深的微软工程师参与多个版本的Windows开发,在他的专栏中讲述了很多关于 Windows研发的趣事。本文链接在 https://devblogs.microsoft.com/oldnewthing/20030828-00/?p=42753 。原标题是 “Hardware backwards compatibility” 。

所谓兼容性不单单只存在于软件上,硬件上同样会面临同样的问题。更糟糕的是当硬件出现问题时,人们常常会责怪软件…….

HLT 是一条让 CPU 停机的指令,CPU 执行这条指令之后会进入休眠直到被硬件中断唤醒。这条指令对于笔记本电脑很有帮助,它能够帮助降低整体功耗,测试表明能引入这条指令让笔记本电脑降低3摄氏度。

我们(微软)曾经尝试在 Win95中引入这条指令,当系统不太忙时抽空让CPU“打盹”,但是很快发现很多笔记本电脑(一些时主流笔记本厂商的型号)执行HLT 指令的时候会死机。

最终,我们只得在 Windows 95中取消这条指令。

很快,HLT指令为大众所知,很多人写道“愚蠢的微软。他们为什么不在Windows中支持这个指令”。在这种情况下,我只能默默的坐着听闻人们对于微软的各种批评声音,诸如愚蠢、懒惰和自私。

如今,我终于可以在这里为 Windows 95 辩解一番(当然,我仍然不能披露前面提到的主流生产商的名字)。

比如,我最喜欢的一个硬件产品,有着一个非常糟糕的问题:如果你将显卡插入距离电源最远的扩展槽,运行之后系统就会崩溃。很明显这是由于硬件制造商压缩成本造成的。众所周知,硬件厂商追求的 Cost Down 总会导致稀奇古怪的问题。更加不幸的是,Windows95 就是运行在这样一批稀奇古怪的硬件上的操作系统。试想如下场景就能理解为什么我们竭尽全力来适配这些硬件呢:

  • 你有一台工作正常的电脑
  • 你去商店买了一份 Windows 95
  • 你把它拿回家安装到电脑上
  • 砰的一下,你的电脑崩溃了

这样的情况下你会认为是谁的责任。毫无疑问:你不会批评硬件厂商。

========================================

作为一个BIOS工程师,在遇到问题时,不应该轻易的下结论,特别是使用:“之前工作正常,但是现在忽然不正常”这样的断言。因为很可能之前能够工作是因为刚好处于临界状态(margin)运气稍微好一些没有碰到而已。作为从业人员应该用更专业更有逻辑的证据来证明。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注