一封咆哮的郵件,揭露了Linux隱藏的最大問題!
1.一封咆哮的郵件
2012年,Mauro收到了一封來自Linus的這封郵件,開篇就是一頓劈頭蓋臉的臭罵:
Mauro,閉上你他媽的嘴!
這就是個內核的Bug好吧?你做維護者多久了,到現在還沒學會內核維護的第一條原則?!
如果一個(內核)的更改導致用戶程序出錯,那就是內核的 bug。我們絕對不去責怪用戶空間的程序。這有多難理解?
更糟的是,就算它沒導致應用程序崩潰,提交 f0ed2ce840b3 也是徹頭徹尾的狗屎。
......
閉嘴,Mauro。永遠不要再試圖把內核空間的 bug 歸咎于用戶空間。
......
這個提交本來是爛得可以直接回滾的,根本不值得我跟你廢話,但它影響太大了,讓KDE上的所有媒體應用都掛了,我不能回滾了事,必須搞清楚到底發生了什么....
......
我們絕不破壞用戶空間!
說真的,這條規則有那么難懂嗎?
......
把你他媽的“合規工具”修好,因為它明顯是壞的。還有,把你寫內核代碼的方式也改改吧!
以“Shut up”開頭,以“Fucking”結尾,真是典型的Linus風格。
2.誰是 Mauro?
如果我收到這封信,恐怕我的頭都要炸了!
挨了一頓臭罵的Mauro Chehab是何許人也?
讓我們從Linux內核的開發方式說起。
Linux內核極其龐大,分布在全球的程序員都可以提交代碼,Linus一個人根本應付不過來。
很自然地就形成了一個分層的代碼維護和提交的體系:
圖片
開發的流程大概是這樣的:
- 開源社區貢獻者(來自全球的開發者)提交補丁(patch)。
- 模塊維護者審核代碼,管理特定模塊
- 高級維護者將子模塊的代碼集成并整理為更大的子系統。
- Linus Torvalds 最終審核關鍵改動,并在 merge window 內合并到主線(mainline)內核中
這種模式被稱為:“Benevolent Dictator for Life”(仁慈獨裁者終身制) + 模塊化維護者制
Linus Torvalds位于金字塔尖,距離Linus最近的那一層的維護人員被稱為Lieutenants(副手/副官/副將),他們包括:
圖片
Mauro就是“副官”之一!
圖片
他是一位資深的 Linux 內核開發者和維護者,尤其長期負責 Linux 媒體子系統(media subsystem),該子系統涵蓋的內容廣泛:攝像頭、遙控器、TV 卡、音視頻采集卡、數字廣播(DVB)等。
他維護了包括 V4L2(Video for Linux 2)和 DVB(Digital Video Broadcasting) 在內的大量驅動和中間層代碼。
Mauro從2000年代中期開始向內核提交代碼,在Linux內核郵件列表上非常活躍,不僅自己寫代碼,還經常評審別人提交的補丁。
毫不夸張地說,Mauro是Linus手下最得力的干將之一,但也是在一個極高標準下被嚴格要求的干將。
Linus咆哮他,不是因為他不行,而是因為他太重要,不容許犯錯。
Linus是針對Mauro一個人的嗎?
不是的,除了Mauro之外,Linus 曾多次罵過包括 Andrew Morton、Kay Sievers、Ingo Molnar 等知名內核開發者,但這些人依然是核心團隊的重要成員。
這是因為,Linus多次表示,他對代碼質量和開發流程的要求高于“人際和諧”!
3.Linux內核社區的大問題
我自己在過去的20多年也見過很多項目,有些項目還非常龐大,我發現很多項目在設計之初架構都非常漂亮,代碼都非常整潔,但是隨著時間的發展,人員來來往往,只要項目能活過5年,基本上都會出現代碼腐化的情況。
原因就是在瘋狂的需求沖擊下,當初的架構設計很難守住,該重構的不重構,走捷徑,加Flag.....很快就把系統拖垮,變成屎山。
但是像Linux這樣的世界上最大的開源協作項目,每年的活躍貢獻者都好幾千,提交的補丁數有好幾萬,歷經30余年,架構一直完好,代碼質量在軟件業一直處于頂尖水平,這不能不說是一個奇跡。
Linus這種極其嚴格,毫不留情的管理風格應該是起了很大的作用。
想想看,無數的開發者親眼目睹Mauro和其他“副官”受到的羞辱以后,肯定會想:我靠,這些大佬都被罵了狗血噴頭,Linus對內核代碼質量和穩定性要求真高,以后編寫代碼、提交代碼一定得小心,萬一我被他揪住了就慘了.....
實際上,Linus只會對他的“副官”和核心維護者發出類似的咆哮,對于普通開發者和新手,Linus的態度還是溫和的,很多時候會耐心指出問題所在,他自己在多個場合也承認:“我對維護者嚴厲,是因為我對他們有更高的期待。”
但是,Linus的技術觀點可能絕對、完全正確,但他這種傳達觀點的方式是非常糟糕的。
這種羞辱的風格,一次兩次還行,長期以往肯定會給Linux內核維護社區帶來巨大的問題。
1)人才流失
例如Sarah Sharp,Intel開發者,USB 3.0子系統的重要維護者,多次公開反對Linus在郵件列表上的辱罵式發言,認為這種文化“有毒”。
2015年退出內核開發時說:“我不再愿意為了技術忍受語言暴力。” “說話直率不是借口,社區需要尊重。”
Linus的回應是: “我不是一個友善的人,我不在乎你,我關心的是技術和內核。”
2)精英主義蔓延
老大如此,手下人耳濡目染,就會效仿。
“頂級 Linux 內核開發人員經常會互相吼叫,以糾正彼此的行為。”
這就逐漸形成了一種以技術能力為核心、語氣直白甚至尖刻的溝通文化。
更進一步,形成了一種“精英主義的鄙視鏈”,即越核心、越資深的開發者,對“菜鳥”、“文檔不看型用戶”、“不寫測試就提交PR的人”有更少的耐心。
3)企業貢獻者小心翼翼
Linus的這種粗魯的風格,會讓不少企業在和Linux社區互動時,不得不小心翼翼。
因為企業不是個人,需要維持形象穩定,避免企業品牌與公開“吵架”事件掛鉤。
有些公司甚至還設計了內部的流程,確保代碼質量在送出前已經達到主線風格要求,然后由資深的內核開發者代為提交。
就是“不希望第一封郵件就被 Linus 爆噴。”
4.Linus 的“咆哮風格”是怎么煉成的?
Linus Torvalds 這種直率、尖銳甚至粗魯的“罵人風格”,并不是一開始就有的。
在1991~1996年期間,Linus 更多是一個謙遜的年輕黑客,他會感謝大家的建議,也會在郵件列表中耐心回應,語氣還比較溫和。
記得他最初發布 Linux 內核時說自己是個“業余愛好者”,邀請大家來“玩一玩”。
圖片
1997 ~2001年是Linux的飛速成長期,各大巨頭開始用戶Linux。
Linux 項目規模迅速擴大,開發者增多,郵件列表活躍。
Linus強勢展露,開始“毒舌”,不過主要是直接攻擊技術缺陷,但還未完全“爆粗”,比如說“C++ is a horrible language...”。

進入2000年代,Linus養成了嘲諷式批評的風格,經常點名批評開發者,公開羞辱,粗口頻出,動不動就是“腦殘”,“狗屎”,“Please just kill yourself now.”,名場面就是:“NVIDIA, fuck you.”

2018年,Linus終于意識到自己的問題,他發了一封公開道歉的郵件,承認自己對一些人的粗魯言辭和不尊重行為,對社區氛圍造成了傷害。
他宣布“短暫休假”,開始自我反省。
圖片
一個月后,Linus就宣布回歸,并且帶回了新的行為準則。
在技術上他依然堅持嚴苛的標準,但他在郵件中的語氣變得更加克制和禮貌,多次使用Thanks,Sorry之類字眼,幾乎看不到臟話。
5.Linus還能撐多久?
在技術面前,沒有人是完美的。
Linus 的咆哮式管理風格曾為 Linux 奠定了堅不可摧的技術基礎,也帶來了爭議與反思。在效率與尊重之間,開源社區正在學會更成熟地前行。
技術可以強硬,態度也可以堅定,但尊重與體面,是人與人之間最起碼的底線。
Linus已經改變,但是他今年已經55 歲了。
他能繼續審閱成千上萬的補丁到什么時候?他的接班人會是誰?這個龐大的開源帝國能否繼續健康運轉?
這些問題,將是 Linux 社區未來10年的最大挑戰之一。





















