回覆列表
  • 1 # 使用者1710316692987

    經常藍色畫面是95/98那系列的核心,為了混合使用16和32做了很多奇怪的事情,為了能在4M記憶體的386上跑,做了更多奇怪的事情。很多有趣的老東西可以在這裡看到 The Old New Thing (當然,該作者最近開始評論他老婆看非誠勿擾的事情,忽略就是了)為了達到這一點,kernel的驗證比較少(為了低配置的效率),程式的崩潰很容易造成kernel級別的崩潰,也就是藍色畫面。再加上當時的驅動基本都是核心態的,第三方驅動的實現經常很差,驅動崩潰也藍色畫面。2k以後用了nt核心,就好得多了。nt核心原先的目標就是伺服器等需要可靠計算的地方。從創立初期就把debug能力和穩定性放入要求中,比95穩定是必然的。但2k/xp的驅動模型還是以核心態為主,後期才大量引入使用者態驅動。到了vista+的時候,驅動已經是使用者態為主,核心態就留一個和硬體打交道的小模組。並且連視訊記憶體分配之類本來應該有驅動完成的事情,都變成由windows完成,降低了不同廠商的驅動質量造成的差別。雖然一開始很痛苦,但過了這個坎之後win7+就好了很多。使用者態驅動崩潰的話,也就是程式關閉,不會藍色畫面。再加上有TDR機制,系統檢測到裝置驅動有問題,就強制重啟那個驅動,而不是由它藍色畫面。其實到現在(Win10),根據統計,98%的藍色畫面來自於第三方驅動。以後發展的目標是,儘量減少第三方驅動的影響,不管是透過把驅動模型變成windows為主第三方只負責具體和硬體打交道的介面,還是讓第三方提供驅動原始碼。以後藍色畫面會進一步減少。比如,3D印表機驅動裡面,絕大部分程式碼,包括把模型分解成voxel、模型拼接、噴點路徑之類,都是屬於windows,廠商提供的驅動也就是把一個voxelize過的路徑噴出來。(順便吐槽一下豬隊友Intel,搞的什麼驅動,sp4的顯示卡驅動和網絡卡驅動,簡直是用腳趾頭寫的,出廠不測啊)

  • 中秋節和大豐收的關聯?
  • 服務業包括哪些行業?