微軟資深程式設計師、微軟開發者部落格專欄《The Old New Thing》作者 Raymond Chen 介紹了 Windows 8 早期開發中的一件趣事:。
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 貓,你知道微軟還在哪裡使過用「貓」作為吉祥物嗎?