揭秘:你的Windows 7為什么會(huì)崩潰
原創(chuàng)【51CTO精選譯文】一切都很完美;你已升級(jí)到了Windows 7。系統(tǒng)打上了全部的補(bǔ)丁,所有驅(qū)動(dòng)程序都更新了,安全很到位,說不定你甚至還有新硬件……可是同樣的藍(lán)屏死機(jī)(BSOD)還是在新的高清屏幕上奚落你。
好消息是,你在大多數(shù)情況下可以迅速解決這個(gè)問題,只要使用Windows調(diào)試工具。這個(gè)工具簡單又免費(fèi)。
早在Window XP盛行的年代(2005年),我們寫了一份教程,介紹如何解決Windows崩潰(《如何在數(shù)分鐘內(nèi)解決Windows系統(tǒng)崩潰》)。這篇是最新版,幫助你成為家里或辦公室解決系統(tǒng)崩潰的高手。
針對(duì)不一樣的Windows版本,解決崩潰的方法是否也不一樣?
微軟公司的主要開發(fā)負(fù)責(zé)人Andre Vachon表示,解決系統(tǒng)崩潰的同一種方法適用于許多的Windows版本。“微軟Windows的最新版本使用同樣的操作系統(tǒng)內(nèi)核,同樣的主界面,驅(qū)動(dòng)程序在服務(wù)器和客戶機(jī)上工作,調(diào)試器使用同樣的調(diào)試文件。此外,我們都使用同樣的代碼庫和源代碼樹來編譯32 版本和64位版本。”
考慮到這一點(diǎn),為了簡單起見,我會(huì)以Windows 7為例。然而,這些要點(diǎn)不僅適用于其他當(dāng)前的版本,大部分還適用于像Windows 2000這么久遠(yuǎn)的老版本。
Windows 7為什么會(huì)崩潰?
Windows在不斷成熟,隨之變得更穩(wěn)定。而且,在這款操作系統(tǒng)從16位變成32位,再變成現(xiàn)在64位的過程中,功能特性也變得更豐富,占用的資源也要多得多——它實(shí)際上更難崩潰。
盡管如此,它的確會(huì)崩潰。然而,這類系統(tǒng)故障的原因自XP時(shí)代以來就沒有發(fā)生化變化。
Windows采用了一種保護(hù)機(jī)制,讓多個(gè)應(yīng)用程序可以同時(shí)運(yùn)行,又不會(huì)互相干擾。這種機(jī)制名為用戶模式(User Mode)或內(nèi)核模式(Kernel Mode),最初名叫環(huán)保護(hù)(Ring Protection)方案。
內(nèi)核模式
內(nèi)核模式(環(huán)0)軟件可以不受限制地全面訪問硬件。這種模式下運(yùn)行的軟件通常最值得信賴,因?yàn)樗梢詧?zhí)行任何指令,訪問系統(tǒng)中的任何地址。內(nèi)核模式下的崩潰是徹底的系統(tǒng)故障,需要重新啟動(dòng)。你在這里可以找到操作系統(tǒng)的內(nèi)核代碼和大多數(shù)驅(qū)動(dòng)程序。
用戶模式
用戶模式(環(huán)3)軟件無法直接訪問硬件,也無法隨意訪問任何地址。它必須通過調(diào)用應(yīng)用編程接口(API),來傳送指令(可能更準(zhǔn)確的說法是請(qǐng)求)。這項(xiàng)特性能夠保護(hù)系統(tǒng)的整體運(yùn)行,不管應(yīng)用程序是進(jìn)行錯(cuò)誤的調(diào)用,還是訪問不合適的地址。用戶模式下的崩潰通常是可以恢復(fù)的,需要重新啟動(dòng)應(yīng)用程序,但不需要重新啟動(dòng)整個(gè)系統(tǒng)。你在這里可以找到在電腦上運(yùn)行的大多數(shù)代碼,包括Word、單人紙牌戲和一些驅(qū)動(dòng)程序等。
由于如今大多數(shù)軟件在用戶模式下運(yùn)行,應(yīng)用程序破壞系統(tǒng)級(jí)軟件,以及破壞其他應(yīng)用程序的機(jī)會(huì)完全變少了??墒?,并不保護(hù)內(nèi)核模式軟件不受其他內(nèi)核模式軟件的影響。比如說,如果某個(gè)視頻驅(qū)動(dòng)程序錯(cuò)誤地訪問了分配給另一個(gè)程序的某部分內(nèi)存(或者沒有標(biāo)為驅(qū)動(dòng)程序可以訪問的內(nèi)存),Windows就會(huì)終止整個(gè)系統(tǒng)。這種機(jī)制叫作錯(cuò)誤檢查(Bug Check),眾所周知的藍(lán)屏死機(jī)就會(huì)顯示。
透過數(shù)字看崩潰原因
雖說數(shù)字不一樣,但相差不大。如果匯總幾個(gè)來源報(bào)告的數(shù)據(jù)(包括本人自己20年來在預(yù)防和解決崩潰方面的經(jīng)驗(yàn)數(shù)據(jù)),一個(gè)趨勢(shì)浮出水面:大約70%的Windows系統(tǒng)崩潰是由內(nèi)核模式下運(yùn)行的第三方驅(qū)動(dòng)程序引起的;15%是由未知因素引起的;10%是由有缺陷的硬件(其中一半多歸咎于不良內(nèi)存)引起的,只有約5%是由有缺陷的微軟代碼引起的。
并不廣為人知的重要一點(diǎn)是,大多數(shù)崩潰是重復(fù)性崩潰。之所以這樣,是因?yàn)榇蠖鄶?shù)管理員都無法立即解決系統(tǒng)崩潰。因而遺憾的是,那些崩潰往往一再發(fā)生。這些事件在得到解決之前,多半會(huì)在幾星期內(nèi)、許多情況下會(huì)在幾個(gè)月內(nèi)重復(fù)發(fā)生。當(dāng)崩潰首次出現(xiàn)時(shí),如果使用我在下一篇文章中介紹的方法來解決,就能防止崩潰以后多次出現(xiàn)。
請(qǐng)參考:Windows 7崩潰之后的解決辦法
原文:How to Solve Windows 7 Crashes in Minutes
【51CTO精選譯文 轉(zhuǎn)載請(qǐng)標(biāo)明出處與作者】
【編輯推薦】