微软资深程序员、微软开发者博客专栏《The Old New Thing》作者 Raymond Chen 介绍了 Windows 8 早期开发中的一件趣事:ASCII 猫。
Raymond 表示,“ASCII 猫”是为了分辨导致黑屏的原因引入的。当时 Windows 8 在交互和显示上使用了“层 (layer)”的概念,每一个层堆叠于下一个层之上。“层”的分类有许多,本文主要讨论最重要的「开始层 (Start layer)」和「应用层 (Apps layer)」。如果用户正在使用应用程序,则应用层会占据全屏幕。这时候如果点击了“开始”按钮,那么开始层就会覆盖应用层。当最后一个应用程序退出,则自动进入开始层。所以始终都会存在一个占据全屏幕的全屏层 (fullscreen layer)。
但在开发阶段不可避免地会出错:既不显示开始层也没有应用层——从而导致黑屏。在 Windows 中,导致黑屏的原因有很多:
- 视频驱动崩溃
- 视频驱动正常运行,但图形合成器崩溃,所以没有内容提供给视频驱动
- 图形合成器正常运行,但 shell 崩溃,所以图形合成器没有可渲染的内容
- shell 正常运行,但忘记在屏幕显示画面
为了区分最后一种原因,Windows 8 shell 创建了一个后备层 (backstop window),它位于所有其他层之下。如果其他层都不显示,至少还有一个可以使用的后备层。开发团队非常喜欢猫,在早期的调试版本中,后备层包含使用 ASCII 绘制的猫图像。当用户看到猫时,就能知道导致黑屏的原因。
说了这么多,那么问题来了。为什么最后大家没机会在 Windows 8 看到这只隐藏款的猫呢?原因很简单,微软的祖传艺能——“砍刀部”又出手了:由于 ASCII 绘制的猫图像占用内存和耗费时间,Windows 性能团队后来要求开发团队移除了 ASCII 猫。
除了这只隐藏款的 ASCII 猫,你知道微软还在哪里使过用「猫」作为吉祥物吗?