Kernel

硬體是否有助於減少 OS X 的崩潰?

  • December 2, 2014

這學期我正在學習作業系統課程,我們提到設備驅動程序可能導致大約 85% 的崩潰(對於 Windows)。

我的理解是:由於許多個人電腦都配置了各種硬體,並且大多數設備驅動程序在發生故障時都不是很健壯。因此 Windows 經常崩潰,Linux 的驅動程式碼也有很多錯誤。

但是,Mac 可能是另一回事。由於所有 OS X 都只能在 Mac 上使用,而且 Mac 的硬體組件與其他 PC 相比是相對不變的。因此,Apple 的驅動程式碼質量可能比其他作業系統高得多。這就是為什麼 Mac OS X 似乎比其他作業系統更穩定的原因。我想知道我對這個論點是否正確。

我對 Mac 了解不多,也沒有找到關於 Mac OS X 崩潰的期刊/會議論文。如果硬體的奇異性不是 OS X 似乎更穩定的原因,請更正我的說法比其他作業系統。

前提是無法證明的。科學需要一個可證偽的假設;沒有辦法測試任何可能的反假設,例如如果 Apple 編寫所有驅動程序,Windows 會更少崩潰,或者如果 Microsoft 以某種方式切斷對現有支持的大量硬體的支持,Windows 會更穩定空間。您基本上必須重新啟動個人計算的歷史,並擁有一隻無所不能的手來重新排列事實以推動您想要測試的結論。

儘管如此,我相信這個論點是有道理的。

我個人的經驗是,Linux、FreeBSD 和 OS X 的核心恐慌程度都差不多,也就是說“很少”。我能夠診斷出崩潰原因的絕大多數情況是由設備驅動程序引起的,但這反過來是由於硬體故障引起的。當硬體發生故障時,它會導致設備驅動程序發生故障,而當核心空間發生故障時,核心通常會崩潰、鎖定或通過一些恐慌/ oops / BSOD情況進行自我診斷。

至於這如何適用於 Windows,我認為情況很簡單,Windows 盒子往往被建構成行銷部門選擇的任意價格。市場競爭如此激烈,以至於被偷工減料,因此低端 Windows 硬體比我們昂貴的 Mac 和 *ix 伺服器更頻繁地出現故障。

您在 *ix 世界中經常看到這一點。有人會抱怨網路問題,然後提到他們正在使用一些不可靠的板載 MAC 晶片(RealTek、Broadcom 等),然後馬上有人會告訴他們去買一張英特爾卡。

同樣,Windows 市場這種極端的價格敏感性意味著可供軟體開發人才使用的資金較少,因此驅動程序可能不是由周圍最有能力的人編寫的。即使在項目中投入了優秀人才,他們也會在獲得行銷部門認為足夠實用的東西後立即發貨。該團隊將全部被解僱,或者將繼續進行另一個項目,因此當 1.0 驅動程序進入現實世界並出現意料之外的問題時,並沒有一個配備齊全的勝任開發團隊來解決這些問題。

我提到 OS X、FreeBSD 和 Linux 在每年的核心恐慌方面都大致相當,因為它表明驅動程序的數量並不能解釋這裡的一切。Linux 擁有比 FreeBSD 或 OS X 更多的驅動程序,但它大致一樣穩定,只要您遠離真正的低端硬體。Linux 通常不會在 $ 500 repurposed Windows PC as on a $ 1,500 台專用 Linux 伺服器。您正在為質量更好的組件付費,這些組件會給驅動程序帶來更少的問題,從而降低崩潰的可能性。

如果您在同一台 1,500 美元的伺服器上執行 Windows,我預測它會非常可靠地執行。Windows 在幾乎所有硬體上都不可靠的日子開始隨著 Windows 2000 消失。問題不再在於 Windows,問題在於推動 Windows 市場的小人物*。*這也是許多其他弊病的根源,例如“免費軟體”偷偷安裝掠奪性軟體以將資金匯回創作者。

關於您的 85% 數字的另一點:這並不奇怪,因為核心所做的大量工作是執行驅動程序,而它所做的其餘部分大多是通用的,因此調試得非常好。當您有 1,000 個不同的 NIC 晶片要支持時,您不能期望它們像只支持 20 個 NIC 晶片時那樣調試好。而且,您受限的 20 個 NIC 晶片驅動程序集仍然不會像核心的消息傳遞程式碼那樣調試好。

引用自:https://unix.stackexchange.com/questions/170707