圖片來源: 

Linux基金會

上周日釋出的Linux核心 4.8版出現可能「殺死核心」的重大瑕疵,Linux之父Linus Torvalds 周三為此道歉。

本周日Torvalds在Linux的論壇上公佈Linux 4.8版核心時,曾指出有個「很小的問題」從第8個RC版也帶進了最終版。當時他鼓勵大家下載來玩一下。

Linux 核心4.8版新增功能支援微軟Surface 3及Raspberry Pi 3的單晶片系統,以及支援HDMI CEC標準,使Linux設備可以單一遙控器控制數台串接的HDMI裝置。

但是周二Torvalds再度於論壇上留言表示,其實出了個大問題,點名Linux主要開發人員,也是Google員工的Andrew Morton在4.8版第8個RC版本後送了一段包含會對核心造成不可回復的災難的程式碼給他,他在未充份測試情況下就用於最終版本。

原來是Morton為了修補另一個臭蟲而寫的程式碼出了重大問題。Torvalds指出,這段Linux 程式碼位於./include/linux/swap.h:276中,結果會造成Linux核心不可回復的毁損(dead kernel),「比它要修補的Bug還要嚴重。」

Torvalds同時降罪自己說,理應到了RC版本後的程式碼內,不應該還要出現測試用的BUG_ON()函數,他應該要對Morton增加的那幾行BUG_ON()函數程式碼有所反應。由於RC版程式碼來得太晚,他也對來自Morton的東西有很高的期待,因此並沒有做過足夠的檢查和測試就發布到下一版。但他表示這些都不成理由。如今他恐怕得移除掉這一段BUG_ON()函數所在的可笑程式碼,因為「殺死核心不可原諒」。 

Torvalds在2002年就曾經警告開發人員不得以BUG_ON()來除錯。在論壇中Torvalds也完整公布讓他出錯的程式碼以供參考。

熱門新聞

Advertisement