Linux 內核項目創始人 Linus Torvalds 近日出席了在維也納舉辦的開源峯會 (Open Source Summit Europe),會上他和 Verizon 開源項目辦公室負責人、早期 Linux 內核貢獻者 Dirk Hohndel 進行了現場對話。

期間 Linus 又再次談到了 Linux 內核的“老齡化”問題——內核維護者年紀漸長,然而年輕開發者卻對加入內核團隊“望而生畏”。
Linus 坦承內核維護者正在老去,他們的頭髮顏色也變成了灰色,還有部分人因爲筋疲力盡而選擇退出。
他說,很多內核開發者參與項目上長達數十年,他本人已經有 33 年。
就 Linux 內核項目而言,目前排在 Linus 之後的維護者是穩定版內核維護者 Greg Kroah-Hartman,他的年齡其實和 Torvalds 差不多。
Linus 表示,要成爲 Linux 項目未來的負責人最主要是贏得社區的信任,至少需要在項目上工作足夠長時間,但並不需要 30 年。

事實上,這不是 Linus 第一次表達對內核維護者“後繼無人”的擔憂。
早在 4 年前他就和 Dirk Hohndel 談論過這個問題。
當時 Linus 認爲,在他們這批 Linux 內核維護者老去之後,很難再找到新的繼任者,因爲在很多年輕開發者看來 “Linux 內核項目並不那麼有趣”。


內核開發令年輕人感到無趣
在與 Dirk 的談話中,Linus 認爲 Linux 內核開發對大多數人來說是無聊的。
“我說過內核很無聊,但我的意思是從某種意義上說,許多新技術應該比內核開發更有趣。但是對我和其他內核開發者來說,沒有什麼能夠比與底層硬件交互的內核開發更有趣的了,因爲這能真正控制所有將在計算機中發生的事情。所以內核對我來說並不是很無聊,但是我想大多數人應該會認爲它們很無聊。”
該談話很快就轉到了一個令人不安的問題上:既然現在對於內核開發感興趣的人越來越少,那麼當 Linux 內核在當前一代的維護者老去之後,社區的未來該怎麼辦?
目前,Linux 內核維護者主要還是即將年滿 51 歲的 Linus 和一些 50 或 60 後的老程序員。“在某個時候,Linux 社區需要開始考慮交接變革,屆時我們該怎麼辦?” Dirk 問。
對此 Linus 本人倒是頗爲樂觀,他認爲目前整個 Linux 內核社區其實還不算老。
“很多新人還不到 50 歲,他們通常是從事真正工作(給項目貢獻代碼)的人。
而那些已經在社區裏近三十年的老人,比如我和一些早期的項目參與者,我們的主要精力已經放在了項目的維護和管理上。”
維護者難尋
“我們確實有不少編寫代碼的人,但缺少維護者。”
在 Linus 看來,Linux 內核項目未來交接的難點在於尋找一個自己的繼任者。
“事實證明,我們現在很難找到合格的新維護者。因爲成爲內核維護者,你必須一直存在,這意味着你每天都要在電腦前閱讀來自全球各地的電子郵件,對郵件做出反應,就像我這 30 年來做的一樣,從不間斷。我們現在很難找到真正看待他人代碼,並在上游嚴格把關每一個提交,判斷它們能否合併到我們的主幹代碼上的人。這是我們面臨的最主要的問題。” Linus 說。
還有一個問題是維護者必須花費很長的時間才能獲得整個社區的信任。
Linus 說:“這不僅是其他維護者的信任,也是所有代碼貢獻者的信任…… 這需要時間。30 年前,當我們剛開始做這個項目時,我們其實並不需要什麼信任。只要你出現在社區裏,就能參與進來,我們一起把這個東西做好。但現在有很多人依賴着 Linux 內核,你不能像我們曾經那樣做一些瘋狂的事情。”
“我不想被 Linus 噴”
作爲一個在世界範圍內舉足輕重的開源項目,Linux 內核項目正面臨着開發者老齡化、維護者難尋的局面。
而針對這次討論,國外的一些開發者也在論壇上表達了自己的看法。
很多人認爲,造成這一局面在一定程度上歸咎於 Linus 與外界溝通的態度。

“維護者難尋?提這問題是認真的嗎,我想不會有人願意收到這樣的答覆 —— ‘這也算是一個 BUG?你已經成爲內核維護者多長時間了?還沒有學會內核維護的第一條規則?我再也不想收到這種明顯的垃圾,像白癡一樣的提交…… ’ —— 當時看到這樣的回覆真的讓我很震驚。”
一位網友引用了此前 Linus 在郵件列表中公開的一段回覆,指出 Linus 在人際溝通中的惡劣態度是很多人對這項工作望而卻步的關鍵因素。
跟帖的網友認爲,在一段正常的工作關係中,上級領導對員工的支持往往比責備更有利於項目的進展。
“我承認 Linus 至今爲止所取得的一切成就,但如果有人按照上述的溝通方式與我的團隊溝通,那我一定會糾正這個人的態度再開始工作。儘管 Linus 有着比絕大多數老闆都聰明的大腦,但他的態度和那些狗屎老闆一樣的爛。”
更何況 Linus 還不是任何人的領導,沒有人願意被一個從未見過面的人劈頭蓋臉地公開數落。

也有理性的開發者表示,儘管 Linus 的嘴巴 “很笨拙”,但不可否認要做好這項工作真的很難。
這名開發者認爲 Linux 內核項目目前存在的問題是學習門檻太高,缺乏曲線平滑的學習資料。
“雖然我同意大多數人會因爲害怕像狗屎一樣被 Linus 拒之門外,但這對於我們中一些臉皮比較厚的人來說,這其實倒也無所謂。
我自己作爲一個年齡比較大的技術人員,我可以理解 Linus 的憤怒來自何處,他需要保護成千上萬的 Linux 用戶;也能理解爲什麼年輕的技術人員可能將其視爲純粹的侵略性。
我喜歡能夠在內核級別進行開發,但是相關的學習資源卻是稀缺且通常難以理解的。我已經用各種不同的語言編寫了 20 多年的代碼,但現在我仍然不知道 Linux 內核開發該從哪裏開始才能對項目做出有用的貢獻。”
僅有文檔還不夠
建立由淺及深、完善的學習文檔和示例是一個項目吸引新人才加入所必需的,Linux 內核項目也是如此。
但是以 Linux 內核項目如今的體量,要做出一份完美的文檔將是一個非常艱難的工作。
一位已經退休的開發者認爲,如今的 Linux 內核項目的上手難度和幾十年前相比已經呈指數倍增長。
“當我退休時,我爲我的項目留下了詳細的文檔和示例僞代碼,據我估計,這些代碼,文檔和示例僞代碼將使開發團隊足足工作 8 個月才能完全接手項目。
顯然,Linux 內核的文檔和示例代碼帶來的工作量將遠超這一數字。
而我剛開始編程那會,在佔用 2kW 以下功率的 16 位微處理器上處理機器代碼程序,我可以理解最少的文檔並瞭解整個過程。
但現在,考慮在程序中使用 C 語言進行極其複雜的處理並帶有各種引用和與其他事物的關係協同工作,我甚至完全不知道該從哪裏開始思考。
對一個新人開發者來說,要完全掌握 Linux 內核的全貌是一個巨大的、艱難的過程。”
也就是說,Linux 內核項目要吸引更多年輕開發者的加入,所需要解決的問題已經不僅僅是文檔,管理一切事務的組織機構是必須的。
“問題必須是 Linus 是否創建了一個自我維持和管理的成熟體系來將整個事情整合在一起。” 由淺及深的教程資料,年輕人才的招募等等,這些工作將需要社區裏具有出色的組織和人際交往能力的人才能實現,而不是光靠代碼可以解決的問題。
