本文轉自:
自由軟體技術交流網發表人 ols3 於 2007/8/8 12:21:08
七月中旬到八月初期間,Linux 核心開發社群裡頭,出現了一點爭論話題。
從 Linux 2.6.23 開始,Linux 核心將把使用多時的 O/1 行程排班器換掉,新採用的 scheduler 稱為完全公平排班器(CFS: Completely Fair Scheduler),這個排班器是由目前在 RedHat 任職的開發人員 Ingo Molnar 在今年 4 月 11 日開始發展的,CFS 在 62 個小時內就被設計出來。在此之前,Linux 核心開發社群中,早有一群人長期擁護的另一個 SD 排班器,卻始終不被 Linus 接受,CFS 的開發時間最短,但卻能立即出線,這讓 SD 的擁護者十分不能接受,因此對於 CFS vs SD 孰優孰劣的爭論,成為最近核心開發社群中的一個熱門話題。
在 Linus 選擇 CFS 成為新的 Linux 行程排班器之後,長期以來專注於提升 Linux 桌面應用效能的業餘核心開發者 Con Kolivas (本職是墨爾本一家醫院的麻醉師,核心開發是他業餘的興趣)宣佈他將不再維護 SD 行程排班器的 ck- 修補程式碼,並且宣佈退出 Linux 核心的開發行列。ck- patch 最早可追溯到 2002 年 Linux 2.4 系列的核心。不過,多年來 Con Kolivas 的修補程式一直無法被核心主力開發群所接受,因此從未進入 Linux 核心主流程式碼中。Con Kolivas 並發表了一些對 Linux 核心開發群始終不重視桌面應用的言論,他在接受 APCMag 專訪時,詳細地解釋他為何要離開。
對於這篇專訪,Linus 在郵件論壇中罕見地帶著生氣的口吻反駁,Linus 表示大部份核心開發人員都是 Linux 桌面的使用者,不但不可能忽視 Linux 核心在桌面應用的效能關注,相反地 Linus 認為 Linux 桌面應用一直是核心開發範圍中最重要的一部份。
CFS vs SD 的爭論在核心郵遞論壇中漫延一陣子之後,Linus 最後出面說明他為什麼捨棄 SD 而選擇 CFS 的緣由(http://kerneltrap.org/node/14008)。
Linus 說道: "那些認為 SD 排班器是完美的人,根本忽略了現實問題,很遺憾地,包括 Con Kolivas 自己都是如此,這也是為什麼長期以來我從不接受 SD 程式碼進入 Linux 核心的主要原因之一;Con 始終無法面對使用者回報的問題,採取的態度是爭論對抗,而不是願意用心和使用者一起解決問題。", Linus 強調朝向一個對所有層面都好的解決方案的重要性。" SD 一直沒有一個可以讓人信任的維護者,除了能專注自己的主題之外,也能關注其它層面,這便是 SD 為何會被判出局的原因。"
Linus 推崇 CFS 的開發者 Ingo Molnar 道: "相信我! 做為一個長期的核心開發者,我最清楚什麼才是最重要的,任何能夠不怕麻煩地接受問題回報,並且持續改進的人,絕對比採取對抗問題心態者更為重要"。
Linus 也提到,我知道已有一群人正在測試 CFS 和 SD 在各種狀況下的效能比較,大部份的人應該都會同意 CFS 和 SD 會比原來使用的 O/1 排班器優秀,但 CFS 和 SD 之間卻不會有什麼重大的效能差異。
至此,情況已經很清楚了,由 Linus 的表態,我們可以了解為何 Linus 選擇 CFS 而不是 SD 的原因;Linus 希望任何一個核心開發方案,都能夠注意到其它層面,而不是只顧專注自己的主題,卻排除其它人對各核心領域可能產生影響的考量,最重要的是,開發者要能夠接受問題回報,並且持續改進它。
不管如何,這個爭論應該算是塵埃落定了,近日推出的 Linux 2.6.23-rc2 中已改用 CFS 程式碼(馬上就有人對它進行效能測試:http://www.phoronix.com/scan.php?page=article&item=797&num=1 ),這個事實說明了 Linus 的堅持,許多人應該願意相信 Linus 最終的決定應該是對的。
人家在吵怎樣的作業系統核心維護者才能對世界有幫助
我們在吵軟體自不自由,開不開源
Linux也用了一陣子了,架架小Server設定一般桌面系統
其實說穿了還不是去抓原始碼來編一編裝一裝
偏偏還自以為像做了些什麼別人不會的事情而沾沾自喜
做事的格局,心理的格局什麼時候才能大一點
0 意見:
張貼留言