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