Windows、Bug 與複雜性:Andrew Tanenbaum 的批評

  • 塔南鮑姆認為,Windows 由於其複雜性和單一設計而受到缺陷的困擾。
  • 頻繁的修補程式可以緩解問題,但可能會帶來新的漏洞。
  • 保護 MINIX 的模組化,避免 Windows 和 Linux 的相互依賴。
  • 警告商業軟體的不透明性和其安全風險。

Windows 作業系統和錯誤

如果更新失敗或系統崩潰曾經毀了你的下午,你並不孤單:安德魯·S·塔嫩鮑姆聲稱,Windows 存在如此多的漏洞,是因為其技術框架過於龐大,以至於連其製造商都無法完全控制它。

作為學術計算領域的關鍵人物,《操作系統:設計與實現》的作者和 MINIX 的創建者,Tanenbaum 為我們日常使用的系統的穩定性以及它們的構建方式的辯論帶來了背景和標準。

系統如此之大,無人能完全控制

Windows 的複雜性與錯誤

這位學者指出,Windows系統龐大且依賴關係錯綜複雜,任何改變都可能引發意想不到的副作用。因此,每週都會發布一系列補丁,修復一個漏洞也可能帶來新的漏洞。

他認為,許多關鍵系統(包括Windows)都被建構成龐大的整體式系統,所有元件都相互連結。這種組件間缺乏隔離的做法,不僅增加了維護難度,也提高了系統不穩定和安全漏洞的風險。

塔嫩鮑姆甚至指出,在如此龐大的組織中,沒有一個工程師能夠理解全部程式碼的哪怕一小部分。一旦某個環節出現問題,幾乎不可能預測其他環節還會出現什麼問題。他的這番言論源自於與阿根廷《號角報》 (Clarín)的深入對話。

單晶片系統 vs. 模組化:MINIX、Linux 和 Windows 的經驗教訓

單片式與模組化

教授將這種方法與MINIX的模組化設計以及Anduinos等替代方案進行了對比:如果音訊控制器出現故障,損害僅限於聲音部分。它不應該擁有存取磁碟或網路的權限,因此實際影響範圍有限,恢復也更加簡單​​。

在像 Windows 或 Linux 本身(例如LinuxFX)這樣的單體系統中,各個元件之間的連結更加緊密。一個模組的故障可能會蔓延並引發一系列連鎖問題:崩潰、持續性錯誤以及需要進一步修復的漏洞。

這場爭論由來已久。微核心和模組化方法的支持者 Tanenbaum 與單核心的擁護者 Li​​nus Torvalds 之間就曾發生過激烈的衝突。這場爭論體現了一個經典的兩難:效能和實現的簡易性與隔離性和安全性之間的權衡。

市場現實偏好整體式設計,但塔嫩鮑姆質疑,考慮到穩定性、攻擊面和長期維護成本等因素,這種「勝利」是否值得。他的論點是:速度稍慢但結構分明的系統可能更具韌性。

封閉的軟體和不透明性:我們看不到的東西

除了 Windows 之外,這位電腦科學家還警告說,許多商業軟體就像黑盒子一樣運行,即使對自己的團隊來說也是不透明的;然而,像微軟開放部分 WSL 程式碼這樣的舉措表明,透明度可以改善內部審計和理解。

對使用者和組織而言,這意味著只能被動地接受補丁更新,盲目地信任更新,而依賴關係和副作用卻會倍增。更模組化的工程設計、權限審查和獨立審計有助於降低風險,同時又不扼殺創新。

Tanenbaum 的觀點描繪了一幅令人不安的景象:未加劃分的複雜性使 Windows 成為錯誤的溫床,使團隊忙於不斷修復,並增加了安全漏洞的風險;重新思考架構,採用隔離良好的模組似乎是獲得穩定性的最可靠方法。

溫博特
相關文章:
WinBoat,以最佳方式在 Linux 上整合和運行 Windows 應用程式的工具

在 Google 中將其新增為首選來源