揭秘:你的Windows 7為什麼會崩潰
時間:2015-12-04 來源:互聯網 瀏覽量:
一切都很完美;你已升級到了Windows 7。係統打上了全部的補丁,所有驅動程序都更新了,安全很到位,說不定你甚至還有新硬件……可是同樣的藍屏死機(BSOD)還是在新的高清屏幕上奚落你。
好消息是,你在大多數情況下可以迅速解決這個問題,隻要使用Windows調試工具。這個工具簡單又免費。 win7係統免費下載
針對不一樣的Windows版本,解決崩潰的方法是否也不一樣?
微軟公司的主要開發負責人Andre Vachon表示,解決係統崩潰的同一種方法適用於許多的Windows版本。“微軟Windows的最新版本使用同樣的操作係統內核,同樣的主界麵,驅動程序在服務器和客戶機上工作,調試器使用同樣的調試文件。此外,我們都使用同樣的代碼庫和源代碼樹來編譯32 版本和64位版本。”
考慮到這一點,為了簡單起見,我會以Windows 7為例。然而,這些要點不僅適用於其他當前的版本,大部分還適用於像Windows 2000這麼久遠的老版本。
Windows 7為什麼會崩潰?
Windows在不斷成熟,隨之變得更穩定。而且,在這款操作係統從16位變成32位,再變成現在64位的過程中,功能特性也變得更豐富,占用的資源也要多得多——它實際上更難崩潰。
盡管如此,它的確會崩潰。然而,這類係統故障的原因自XP時代以來就沒有發生化變化。
Windows采用了一種保護機製,讓多個應用程序可以同時運行,又不會互相幹擾。這種機製名為用戶模式(User Mode)或內核模式(Kernel Mode),最初名叫環保護(Ring Protection)方案。
內核模式
內核模式(環0)軟件可以不受限製地全麵訪問硬件。這種模式下運行的軟件通常最值得信賴,因為它可以執行任何指令,訪問係統中的任何地址。內核模式下的崩潰是徹底的係統故障,需要重新啟動。你在這裏可以找到操作係統的內核代碼和大多數驅動程序。
用戶模式
用戶模式(環3)軟件無法直接訪問硬件,也無法隨意訪問任何地址。它必須通過調用應用編程接口(API),來傳送指令(可能更準確的說法是請求)。這項特性能夠保護係統的整體運行,不管應用程序是進行錯誤的調用,還是訪問不合適的地址。用戶模式下的崩潰通常是可以恢複的,需要重新啟動應用程序,但不需要重新啟動整個係統。你在這裏可以找到在電腦上運行的大多數代碼,包括Word、單人紙牌戲和一些驅動程序等。
由於如今大多數軟件在用戶模式下運行,應用程序破壞係統級軟件,以及破壞其他應用程序的機會完全變少了。可是,並不保護內核模式軟件不受其他內核模式軟件的影響。比如說,如果某個視頻驅動程序錯誤地訪問了分配給另一個程序的某部分內存(或者沒有標為驅動程序可以訪問的內存),Windows就會終止整個係統。這種機製叫作錯誤檢查(Bug Check),眾所周知的藍屏死機就會顯示。
透過數字看崩潰原因
雖說數字不一樣,但相差不大。如果彙總幾個來源報告的數據(包括本人自己20年來在預防和解決崩潰方麵的經驗數據),一個趨勢浮出水麵:大約70%的Windows係統崩潰是由內核模式下運行的第三方驅動程序引起的;15%是由未知因素引起的;10%是由有缺陷的硬件(其中一半多歸咎於不良內存)引起的,隻有約5%是由有缺陷的微軟代碼引起的。
並不廣為人知的重要一點是,大多數崩潰是重複性崩潰。之所以這樣,是因為大多數管理員都無法立即解決係統崩潰。因而遺憾的是,那些崩潰往往一再發生。這些事件在得到解決之前,多半會在幾星期內、許多情況下會在幾個月內重複發生。