01
一封咆哮的郵件
2012年,Mauro收到了一封來自Linus的這封郵件,開篇就是一頓劈頭蓋臉的臭罵:
Mauro,閉上你他媽的嘴!
這就是個內(nèi)核的Bug好吧?
你做維護(hù)者多久了,到現(xiàn)在還沒學(xué)會內(nèi)核維護(hù)的第一條原則?!
如果一個(內(nèi)核)的更改導(dǎo)致用戶程序出錯,那就是內(nèi)核的 bug。我們絕對不去責(zé)怪用戶空間的程序。這有多難理解?
更糟的是,就算它沒導(dǎo)致應(yīng)用程序崩潰,提交 f0ed2ce840b3 也是徹頭徹尾的狗屎。
閉嘴,Mauro
。永遠(yuǎn)不要再試圖把內(nèi)核空間的 bug 歸咎于用戶空間。
這個提交本來是爛得可以直接回滾的,根本不值得我跟你廢話,但它影響太大了,讓KDE上的所有媒體應(yīng)用都掛了,我不能回滾了事,必須搞清楚到底發(fā)生了什么....
我們絕不破壞用戶空間!
說真的,這條規(guī)則有那么難懂嗎?
把你他媽的“合規(guī)工具”修好
,因為它明顯是壞的。還有,把你寫內(nèi)核代碼的方式也改改吧!
以“Shut up”開頭,以“Fucking”結(jié)尾,真是典型的Linus風(fēng)格。
02
誰是 Mauro?
如果我收到這封信,恐怕我的頭都要炸了!
挨了一頓臭罵的Mauro Chehab是何許人也?
讓我們從Linux內(nèi)核的開發(fā)方式說起。
Linux內(nèi)核極其龐大,分布在全球的程序員都可以提交代碼,Linus一個人根本應(yīng)付不過來。
很自然地就形成了一個分層的代碼維護(hù)和提交的體系:
開發(fā)的流程大概是這樣的:
1.開源社區(qū)貢獻(xiàn)者(來自全球的開發(fā)者)提交補(bǔ)丁(patch)。
2.模塊維護(hù)者審核代碼,管理特定模塊
3.高級維護(hù)者將子模塊的代碼集成并整理為更大的子系統(tǒng)。
4.Linus Torvalds 最終審核關(guān)鍵改動,并在 merge window 內(nèi)合并到主線(mainline)內(nèi)核中
這種模式被稱為:“Benevolent Dictator for Life”(仁慈獨裁者終身制) + 模塊化維護(hù)者制
Linus Torvalds位于金字塔尖,距離Linus最近的那一層的維護(hù)人員被稱為Lieutenants(副手/副官/副將),他們包括:
Mauro就是“副官”之一!
他是一位資深的 Linux 內(nèi)核開發(fā)者和維護(hù)者,尤其長期負(fù)責(zé) Linux 媒體子系統(tǒng)(media subsystem),該子系統(tǒng)涵蓋的內(nèi)容廣泛:攝像頭、遙控器、TV 卡、音視頻采集卡、數(shù)字廣播(DVB)等。
他維護(hù)了包括 V4L2(Video for Linux 2)和 DVB(Digital Video Broadcasting) 在內(nèi)的大量驅(qū)動和中間層代碼。
Mauro從2000年代中期開始向內(nèi)核提交代碼,在Linux內(nèi)核郵件列表上非?;钴S,不僅自己寫代碼,還經(jīng)常評審別人提交的補(bǔ)丁。
毫不夸張地說,Mauro是Linus手下最得力的干將之一,但也是在一個極高標(biāo)準(zhǔn)下被嚴(yán)格要求的干將。
Linus咆哮他,不是因為他不行,而是因為他太重要,不容許犯錯。
Linus是針對Mauro一個人的嗎?
不是的,除了Mauro之外,Linus 曾多次罵過包括 Andrew Morton、Kay Sievers、Ingo Molnar 等知名內(nèi)核開發(fā)者,但這些人依然是核心團(tuán)隊的重要成員。
這是因為,Linus多次表示,他對代碼質(zhì)量和開發(fā)流程的要求高于“人際和諧”!
03
Linux內(nèi)核社區(qū)的大問題
我自己在過去的20多年也見過很多項目,有些項目還非常龐大,我發(fā)現(xiàn)很多項目在設(shè)計之初架構(gòu)都非常漂亮,代碼都非常整潔,但是隨著時間的發(fā)展,人員來來往往,只要項目能活過5年,基本上都會出現(xiàn)代碼腐化的情況。
原因就是在瘋狂的需求沖擊下,當(dāng)初的架構(gòu)設(shè)計很難守住,該重構(gòu)的不重構(gòu),走捷徑,加Flag.....很快就把系統(tǒng)拖垮,變成屎山。
但是像Linux這樣的世界上最大的開源協(xié)作項目,每年的活躍貢獻(xiàn)者都好幾千,提交的補(bǔ)丁數(shù)有好幾萬,歷經(jīng)30余年,架構(gòu)一直完好,代碼質(zhì)量在軟件業(yè)一直處于頂尖水平,這不能不說是一個奇跡。
Linus這種極其嚴(yán)格,毫不留情的管理風(fēng)格應(yīng)該是起了很大的作用。
想想看,無數(shù)的開發(fā)者親眼目睹Mauro和其他“副官”受到的羞辱以后,肯定會想:我靠,這些大佬都被罵了狗血噴頭,Linus對內(nèi)核代碼質(zhì)量和穩(wěn)定性要求真高,以后編寫代碼、提交代碼一定得小心,萬一我被他揪住了就慘了.....
實際上,Linus只會對他的“副官”和核心維護(hù)者發(fā)出類似的咆哮,對于普通開發(fā)者和新手,Linus的態(tài)度還是溫和的,很多時候會耐心指出問題所在,他自己在多個場合也承認(rèn):“我對維護(hù)者嚴(yán)厲,是因為我對他們有更高的期待?!?/p>
但是,Linus的技術(shù)觀點可能絕對、完全正確,但他這種傳達(dá)觀點的方式是非常糟糕的。
這種羞辱的風(fēng)格,一次兩次還行,長期以往肯定會給Linux內(nèi)核維護(hù)社區(qū)帶來巨大的問題。
1. 人才流失
例如Sarah Sharp,Intel開發(fā)者,USB 3.0子系統(tǒng)的重要維護(hù)者,多次公開反對Linus在郵件列表上的辱罵式發(fā)言,認(rèn)為這種文化“有毒”。
2015年退出內(nèi)核開發(fā)時說:“我不再愿意為了技術(shù)忍受語言暴力。” “說話直率不是借口,社區(qū)需要尊重?!?/p>
Linus的回應(yīng)是: “我不是一個友善的人,我不在乎你,我關(guān)心的是技術(shù)和內(nèi)核?!?/p>
2.精英主義蔓延
老大如此,手下人耳濡目染,就會效仿。
“頂級 Linux 內(nèi)核開發(fā)人員經(jīng)常會互相吼叫,以糾正彼此的行為。”
這就逐漸形成了一種以技術(shù)能力為核心、語氣直白甚至尖刻的溝通文化。
更進(jìn)一步,形成了一種“精英主義的鄙視鏈”,即越核心、越資深的開發(fā)者,對“菜鳥”、“文檔不看型用戶”、“不寫測試就提交PR的人”有更少的耐心。
3.企業(yè)貢獻(xiàn)者小心翼翼
Linus的這種粗魯?shù)娘L(fēng)格,會讓不少企業(yè)在和Linux社區(qū)互動時,不得不小心翼翼。
因為企業(yè)不是個人,需要維持形象穩(wěn)定,避免企業(yè)品牌與公開“吵架”事件掛鉤。
有些公司甚至還設(shè)計了內(nèi)部的流程,確保代碼質(zhì)量在送出前已經(jīng)達(dá)到主線風(fēng)格要求,然后由資深的內(nèi)核開發(fā)者代為提交。
就是“不希望第一封郵件就被 Linus 爆噴。”
04
Linus 的“咆哮風(fēng)格”是怎么煉成的?
Linus Torvalds 這種直率、尖銳甚至粗魯?shù)摹傲R人風(fēng)格”,并不是一開始就有的。
在1991~1996年期間,Linus 更多是一個謙遜的年輕黑客,他會感謝大家的建議,也會在郵件列表中耐心回應(yīng),語氣還比較溫和。
記得他最初發(fā)布 Linux 內(nèi)核時說自己是個“業(yè)余愛好者”,邀請大家來“玩一玩”。
1997 ~2001年是Linux的飛速成長期,各大巨頭開始用戶Linux。
Linux 項目規(guī)模迅速擴(kuò)大,開發(fā)者增多,郵件列表活躍。
Linus強(qiáng)勢展露,開始“毒舌”,不過主要是直接攻擊技術(shù)缺陷,但還未完全“爆粗”,比如說“C++ is a horrible language...”。
進(jìn)入2000年代,Linus養(yǎng)成了嘲諷式批評的風(fēng)格,經(jīng)常點名批評開發(fā)者,公開羞辱,粗口頻出,動不動就是“腦殘”,“狗屎”,“Please just kill yourself now.”,名場面就是:“NVIDIA, fuck you.”
2018年,Linus終于意識到自己的問題,他發(fā)了一封公開道歉的郵件,承認(rèn)自己對一些人的粗魯言辭和不尊重行為,對社區(qū)氛圍造成了傷害。
他宣布“短暫休假”,開始自我反省。
一個月后,Linus就宣布回歸,并且?guī)Щ亓诵碌男袨闇?zhǔn)則。
在技術(shù)上他依然堅持嚴(yán)苛的標(biāo)準(zhǔn),但他在郵件中的語氣變得更加克制和禮貌,多次使用Thanks,Sorry之類字眼,幾乎看不到臟話。
05
Linus還能撐多久?
在技術(shù)面前,沒有人是完美的。
Linus 的咆哮式管理風(fēng)格曾為 Linux 奠定了堅不可摧的技術(shù)基礎(chǔ),也帶來了爭議與反思。在效率與尊重之間,開源社區(qū)正在學(xué)會更成熟地前行。
技術(shù)可以強(qiáng)硬,態(tài)度也可以堅定,但尊重與體面,是人與人之間最起碼的底線。
Linus已經(jīng)改變,但是他今年已經(jīng)55 歲了。
他能繼續(xù)審閱成千上萬的補(bǔ)丁到什么時候?他的接班人會是誰?這個龐大的開源帝國能否繼續(xù)健康運轉(zhuǎn)?
這些問題,將是 Linux 社區(qū)未來10年的最大挑戰(zhàn)之一。
全文完,覺得不錯的話點個贊或者在看吧!
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.