一封咆哮的邮件,揭露了Linux隐藏的最大问题!

01

一封咆哮的邮件

2012年,Mauro收到了一封来自Linus的这封邮件,开篇就是一顿劈头盖脸的臭骂:

Mauro,闭上你他妈的嘴!

这就是个内核的Bug好吧?你做维护者多久了,到现在还没学会内核维护的第一条原则?!

如果一个(内核)的更改导致用户程序出错,那就是内核的 bug。我们绝对不去责怪用户空间的程序。这有多难理解?

更糟的是,就算它没导致应用程序崩溃,提交 f0ed2ce840b3 也是彻头彻尾的狗屎。

......

闭嘴,Mauro。永远不要再试图把内核空间的 bug 归咎于用户空间。

......

这个提交本来是烂得可以直接回滚的,根本不值得我跟你废话,但它影响太大了,让KDE上的所有媒体应用都挂了,我不能回滚了事,必须搞清楚到底发生了什么....

......

我们绝不破坏用户空间!

说真的,这条规则有那么难懂吗?

......

把你他妈的“合规工具”修好,因为它明显是坏的。还有,把你写内核代码的方式也改改吧!

以“Shut up”开头,以“Fucking”结尾,真是典型的Linus风格。

02

谁是 Mauro?

如果我收到这封信,恐怕我的头都要炸了!

挨了一顿臭骂的Mauro Chehab是何许人也?

让我们从Linux内核的开发方式说起。

Linux内核极其庞大,分布在全球的程序员都可以提交代码,Linus一个人根本应付不过来。

很自然地就形成了一个分层的代码维护和提交的体系:

开发的流程大概是这样的:

1.开源社区贡献者(来自全球的开发者)提交补丁(patch)。

2.模块维护者审核代码,管理特定模块

3.高级维护者将子模块的代码集成并整理为更大的子系统。

4.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多次表示,他对代码质量和开发流程的要求高于“人际和谐”!

03

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 爆喷。”

04

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之类字眼,几乎看不到脏话。

05

Linus还能撑多久?

在技术面前,没有人是完美的。

Linus 的咆哮式管理风格曾为 Linux 奠定了坚不可摧的技术基础,也带来了争议与反思。在效率与尊重之间,开源社区正在学会更成熟地前行。

技术可以强硬,态度也可以坚定,但尊重与体面,是人与人之间最起码的底线。

Linus已经改变,但是他今年已经55 岁了。

他能继续审阅成千上万的补丁到什么时候?他的接班人会是谁?这个庞大的开源帝国能否继续健康运转?

这些问题,将是 Linux 社区未来10年的最大挑战之一。

全文完,觉得不错的话点个赞或者在看吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值