Windows 10藍(lán)屏死機(jī)到底是如何造成的?
譯文【51CTO.com快譯】要解決Windows 10系統(tǒng)崩潰的問(wèn)題,大家首先需要了解Windows 10藍(lán)屏死機(jī)的真正原因。
Windows 10在運(yùn)行當(dāng)中包含兩種模式,即內(nèi)核模式與用戶模式。其思路非常簡(jiǎn)單; 內(nèi)核模式負(fù)責(zé)運(yùn)行核心操作系統(tǒng)代碼與設(shè)備驅(qū)動(dòng)程序,而用戶模式則負(fù)責(zé)運(yùn)行軟件應(yīng)用與用戶驅(qū)動(dòng)。對(duì)于訪問(wèn)操作系統(tǒng)服務(wù)與硬件的應(yīng)用來(lái)說(shuō),其必須調(diào)用Windows服務(wù)并將其作為代理。因此,通過(guò)阻止用戶模式代碼直接訪問(wèn)內(nèi)核模式,操作系統(tǒng)的運(yùn)行將得到有效保護(hù)。
問(wèn)題在于內(nèi)核模式代碼有些會(huì)出現(xiàn)差錯(cuò)。在大多數(shù)情況下,這類問(wèn)題存在于內(nèi)核模式中的第三方驅(qū)動(dòng)程序處,即造成各類錯(cuò)誤調(diào)用,例如不存在的存儲(chǔ)器或者覆蓋操作系統(tǒng)代碼。而且必須承認(rèn),Windows本身很少出現(xiàn)故障。
內(nèi)核模式軟件能夠完整且不受阻礙地訪問(wèn)硬件。這一層面的軟件運(yùn)行狀態(tài)擁有***受信水平,因?yàn)槠淠軌驁?zhí)行任意指令并在系統(tǒng)中引用任何地址。內(nèi)核模式內(nèi)發(fā)生的崩潰完全屬于系統(tǒng)故障,且必須進(jìn)行重啟以實(shí)現(xiàn)恢復(fù)。總而言之,內(nèi)核模式中存放著操作系統(tǒng)內(nèi)核代碼與大部分驅(qū)動(dòng)程序。
用戶模式軟件無(wú)法直接訪問(wèn)硬件或者隨意引用任意地址。其必須通過(guò)指令——更為確切地說(shuō),利用請(qǐng)求——調(diào)用API。這種特性使得系統(tǒng)運(yùn)營(yíng)得到整體保護(hù),而不會(huì)受到應(yīng)用錯(cuò)誤調(diào)用或者訪問(wèn)不當(dāng)?shù)刂返挠绊憽S脩裟J较碌谋罎⑼ǔJ强梢曰謴?fù)的,即應(yīng)用自身需要重新啟動(dòng),但整體系統(tǒng)不受影響。總而言之,用戶模式中運(yùn)行著大部分常用軟件代碼,從微軟Word到瀏覽器再到部分驅(qū)動(dòng)程序。
因此,目前大多數(shù)軟件運(yùn)行在用戶模式當(dāng)中,因此應(yīng)用程序不太可能對(duì)系統(tǒng)級(jí)軟件造成影響。然而,內(nèi)核模式軟件并未受到其它內(nèi)核模式軟件的保護(hù)。舉例來(lái)說(shuō),如果某一視頻驅(qū)動(dòng)程序訪問(wèn)到被分配給其它程序的內(nèi)存地址部分(或者未被標(biāo)記為驅(qū)動(dòng)程序可訪問(wèn)的內(nèi)存區(qū)域),則Windows即會(huì)停止整體系統(tǒng)的運(yùn)行。
原文標(biāo)題:What causes Blue Screen of Death in Windows 10?
原文作者:Dirk A.D. Smith
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】