概念
藍屏當機(英語:Blue Screen of Death,縮寫為: BSoD)指的是微軟Windows作業系統在無法從一個系統錯誤中恢復過來時所顯示的螢幕圖像。Windows中有兩個圖像都被稱為藍屏當機,其中一個藍屏原因是WINDOWS NT 核心出現無法修復的巨大錯誤或者WINDOWSX9作業系統的小錯誤需要報錯
一個“真正的”當機畫面只在Windows NT的系統核心無法修復錯誤時出現,此時用戶所能做的唯一一件事就是重新啟動作業系統,這將丟失所有未儲存的工作,還有可能破壞檔案系統的穩定性。藍屏當機的畫面上所顯示的信息會有調試碼,例如STOP: 0x0000004e,以及其簡短的錯誤信息,用戶可以在微軟的技術支持網站搜尋此調試碼出現時可能是什麼原因。但有時錯誤碼並不能讓用戶很快的找到導致藍屏當機的原因,反而會誤導用戶,因此可能要以試誤法(trial and error)才能找出原因。藍屏當機一般只在Windows遇到一個很嚴重的錯誤時才出現。該版本的藍屏當機出現在Windows NT以及基於Windows NT的後續版本,例如Windows 2000與Windows XP中。
Windows 9x/ME發生之藍屏當機允許用戶選擇繼續或者重新啟動。但是,VxD一般不隨便顯示藍屏當機──它們一般只在一個不通過重新啟動就無法修復的錯誤發生時才顯示藍屏當機,因此當藍屏當機顯示時,系統已經不穩定或當機。
藍屏當機出現的最常見原因是DLL地獄,意即同一個DLL的多個版本造成的不兼容。當應用程式需要使用這些DLL時,Windows將它們載入記憶體;如果替換了DLL,下一次應用程式載入DLL時它可能不是該應用程式所希望的版本。這種不兼容性隨著安裝更多的新軟體而增加,這也是為什麼一個新安裝的Windows往往比安裝運行一段時期後的Windows更加穩定之主要原因。另一個重要的原因就是硬體問題,例如硬體過熱、超頻使用、硬體的電子零件損壞(例如電容器的電解液流出損壞)及BIOS設定錯誤或其代碼有錯誤等都可能導致藍屏當機。
不同版本狀況
不同版本Windows發生之藍屏
在Windows XP中,程式發生較小問題時不會出現藍屏當機,而只會出現“程式發生錯誤”螢幕。圖為在香港維多利亞公園的一個LED螢幕上顯示的錯誤信息
默認情況下,藍屏當機的顯示是藍(0x01或#0000AA)底白(0x0F或#FFFFFF)字。顯示的信息包括了當前的記憶體值以及暫存器值。微軟公司還很有幽默感地加入了一個可以讓用戶自行修改藍屏當機的設定的工具system.ini。
藍屏當機已經極少出現在Windows NT,2000和XP。當在較輕微的軟體錯誤出現時,雖然程式依然可能崩潰,但由於新系統中更好的記憶體管理,類似錯誤並不會損害到整個作業系統。在這些系統中,“真正的”藍屏當機只在整個作業系統崩潰時才會出現。
藍屏當機最早出現在Windows 2.0中。另外,在微軟遊戲主機 XBOX 出現的畫面不是藍色,而是綠色。而在XP/Vista/7中,存在一種比藍屏更嚴重的紅屏當機,常見於驅動程式故障。