感受下Linus骂人的感觉吧, 这样你会觉得工作中遇到的那些不愉快就算个鸟事

背景

一个Linux主线的内核维护者提交了一份patch,并说明问题产生的原因是因为应用传的音频有问题。

Linus回复如下

你他娘的给老子闭嘴!这是一个内核bug好不好,你搞内核主线维护多长时间了?你还没学习过内核主线维护的规则?

如果一个用户程序导致了内核挂壁,这他娘的肯定是内核的问题,我们绝对不能因此责怪用户,这点很难去理解吗?

解释patch 巴拉巴拉……

Mauro 是一个人的名字,这次Linus发飙主要就是针对他的

你他丫的给我闭嘴,我再严肃的说一次,我再也不想看到这种白痴的行为发生在一个内核维护者身上。

解释让人合入bug patch,又说自己很忙巴拉巴拉……

WE DO NOT BREAK USERSPACE! 内核是不可能破坏应用空间的任何东西的。

我很严肃的说,理解这条规则很难吗?特别是,我们不应该用一个垃圾打断用户空间, I'm angry「我非常生气」,因为你整个邮件表现出如此可怕的错误,用一些垃圾代码来修补问题。你写的那个补丁就是一坨屎。增加了一个错误代码(ENOENT),脑子锈透了,这代码的漏洞是使用的 「?:」,这样如果想修改代码的判断逻辑就非常麻烦。

Fix your f*cking "compliance tool", because it is obviously broken. And fix your approach to kernel programming.

修好你这个该死的问题吧,它的错误太明显了,还有,修复你进入内核的代码吧。

原文如下:
https://lkml.org/lkml/2012/12/23/75

On Sun, Dec 23, 2012 at 6:08 AM, Mauro Carvalho Chehab
<mchehab@redhat.com> wrote:
>
> Are you saying that pulseaudio is entering on some weird loop if the
> returned value is not -EINVAL? That seems a bug at pulseaudio.Mauro, SHUT THE FUCK UP!It's a bug alright - in the kernel. How long have you been a
maintainer? And you *still* haven't learnt the first rule of kernel
maintenance?If a change results in user programs breaking, it's a bug in the
kernel. We never EVER blame the user programs. How hard can this be to
understand?To make matters worse, commit f0ed2ce840b3 is clearly total and utter
CRAP even if it didn't break applications. ENOENT is not a valid error
return from an ioctl. Never has been, never will be. ENOENT means "No
such file and directory", and is for path operations. ioctl's are done
on files that have already been opened, there's no way in hell that
ENOENT would ever be valid.> So, on a first glance, this doesn't sound like a regression,
> but, instead, it looks tha pulseaudio/tumbleweed has some serious
> bugs and/or regressions.Shut up, Mauro. And I don't _ever_ want to hear that kind of obvious
garbage and idiocy from a kernel maintainer again. Seriously.I'd wait for Rafael's patch to go through you, but I have another
error report in my mailbox of all KDE media applications being broken
by v3.8-rc1, and I bet it's the same kernel bug. And you've shown
yourself to not be competent in this issue, so I'll apply it directly
and immediately myself.WE DO NOT BREAK USERSPACE!Seriously. How hard is this rule to understand? We particularly don't
break user space with TOTAL CRAP. I'm angry, because your whole email
was so _horribly_ wrong, and the patch that broke things was so
obviously crap. The whole patch is incredibly broken shit. It adds an
insane error code (ENOENT), and then because it's so insane, it adds a
few places to fix it up ("ret == -ENOENT ? -EINVAL : ret").The fact that you then try to make *excuses* for breaking user space,
and blaming some external program that *used* to work, is just
shameful. It's not how we work.Fix your f*cking "compliance tool", because it is obviously broken.
And fix your approach to kernel programming.Linus

Linux内核源码下,Linus大神骂人的注释

因为代码不规范骂人

Linus在很多地方说明了,不要随意使用换行,如果换行不正确,那么使用grep搜索关键字的时候显示会很不友好。

后话

代码规范是一个非常严肃的事情,我们在写代码的时候,不要只认为完成功能了就可以了。说一个比较基础的事情,我们在一个「.c」文件里面,有的人喜欢用空格,有的人喜欢用tab键,那我们在修改别人的代码的时候要怎么办呢?

这时候说到一个最基础的原则,遵守原来的规范,原来是用空格的,我们就用空格,原来用tab的,我们就使用tab,不要标新立异,不要觉得自己可以另类。

看了Linus 骂人,感觉自己在工作的时候遇到的那些事情都算屁大点事了,而且我遇到很多技术大牛,脾气都非常好,而很多脾气不好的,技术也是水的一逼。

再回头看看最近几年Linus大神的动态,感觉脾气已经没有那么大了,估计也是年轻气盛吧,谁不是想在年轻的时候轻狂一下,等经历了很多事情,再遇到一样的事情,觉得已经不是那么在乎了。

Linux的每个规范都使得Linux越来越强大,每个开发者认可这样的规范,并且这样的规范使得Linux越来越健壮,我们可能遇到很多其他的内核,不管是什么内核,都需要很多很多开发者共同努力,才可能达到一定的生态,Linus大神厉害的不是创造了Linux内核,而是他规范了很多约束调节和工具,比如GNU,比如开发了Git。

看这些大神的提交和邮件,不管是谁翻译,总是差点意思,我们要尝试去读英文翻译,去推敲里面的意思,品味他们骂人的韵味,领悟他们说话的含义,那样才更有意思。

以上是我的拙见,请轻拍~

推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

嵌入式Linux

微信扫描二维码,关注我的公众号

看Linus骂人,真解气相关推荐

  1. WOW中的一种外挂设想,兼看老外骂人

    自从魔兽世界公测的那一天起,无数玩家就在琢磨着如何骗过游戏的防作弊系统使用外挂.后面两幅图就是某位外国玩家给出的一种方案. 这位玩家的主要想法是在游戏的server端和client端之间插入一个age ...

  2. 骂人的到底是些什么人

    我看了看这些骂人的帖子,觉不出任何技术的含量,也看不出他们是为那些要来我们公司上班的学生着想,怕他们落入魔掌,饱受奴役,还是怕这些现在有潜力,没有技术,没有经验的学生能够有一条道路,一条生存之路.这些 ...

  3. 从网上骂人言论看其浮躁无知的一面

    近来在网上经常可以看到有些网友,回复它人文章的时候大骂出口,恶意辱骂.更有甚者,直接进行人身攻击.每每这个时候,都报之一笑,第一感觉骂人的这些人多么的浮躁与无知. 另外一个重要的体现就是自身素质差到了 ...

  4. 《红楼雷话》全文,很好很解气

    (一) 贾母急得道:孽障!你想魔幻,要<聊斋>容易,何苦改那命根子红楼梦! 宝玉满脸泪痕道:家里姐姐妹妹都像白蛇传,单我像西门大官人,我说没趣,如今来了这么一个神仙似的妹妹也打扮得小青一样 ...

  5. 考驾照选择 AI 教练,心态稳定不骂人

    作者 | 神经小兮 来源 | HyperAI超神经(ID:HyperAI) 内容一览:教练,是无数驾校学员练车的梦魇,如果不幸再碰上一个脾气大爱骂人的教练,那真的是痛不欲生.好在全国不少驾校中,已经陆 ...

  6. 王者荣耀与英雄联盟:如何解决玩家骂人的问题?

    作者:Han 全文共 3542 字 21 图,阅读需要 9 分钟 ---- / BEGIN / ---- 感觉LOL和王者荣耀这种MOBA游戏真是火了几百年了啊,难免会碰到脾气比较差的玩家直抒胸臆. ...

  7. 码农:用git怕丢代码,每次都备份,同事:不学习的人真可怕!

    俗话说得好,工欲善其事,必先利其器,工匠想要使他的工作做好,一定要先让工具锋利,在现代,做技术的又何尝不是如此,就比如对于程序员来说,自己的看家本领当然是优秀的编码能力了和解决问题的能力以及丰富的项目 ...

  8. 学习ios(必看经典)牛人40天精通iOS开发的学习方法

     亲爱的学员们: 如今,各路开发者为淘一桶金也纷纷转入iOS开发的行列.你心动了吗?想要行动吗?知道如何做嘛?速来学习由51CTO学院整理的iOS精品视频集,42个视频课程一步步引领你成为一名iO ...

  9. [软件人生]从应聘到骂人

    今天突然间又有人在网上骂了我,我想让大家一同来帮我分析分析是什么原因. 背景 前几天我公司发了一个招聘信息,招聘信息中把我的qq号码留了下来,于是最近几天有不少人找我请求加入,希望能够应聘,事情就这样 ...

最新文章

  1. 自定义边界_如何批量生成CAD填充的边界?
  2. Java高阶代码_Java高阶语法---Volatile
  3. 在Eclipse中显示.project和.classpath和.setting目录
  4. C#:前台线程后台线程
  5. 云原生视频时代已开启,华为云准备好了
  6. 正则表达式之零宽断言
  7. Java 输出当前目录
  8. Ubuntu Sublime Text 3 搜狗拼音
  9. lucene开发序之luke神器
  10. 【2016-2017 ACM-ICPC (ECNA 2016) G】That's one Hanoi-ed Teacher【汉诺塔问题】
  11. html css js介绍ppt,HTML+CSS+JS-入门基础.ppt
  12. EPS电动转向系统分析
  13. java 依赖倒置_Java设计原则—依赖倒置原则(转)
  14. Android App开发动画特效中插值器和估值器的讲解以及利用估值器实现弹幕动画实战(附源码和演示视频 可直接使用)
  15. 东南大学计算机技术935专业考研经验分享
  16. Check service:platformservice is now critical 原因分析
  17. 微信扫描二维码跳转至浏览器打开 jsp
  18. 小米重大变革:成立十个一级部门大量启用80后 向雷军汇报
  19. tomcat java 参数乱码_【java】怎样解决tomcat中get提交中文参数为乱码的问题
  20. 基于QT的电子相册设计与实现

热门文章

  1. 120个微信小程序源码
  2. 看了下面的关于大亚湾核电站的一些报道,我终于明白为什么老弟在惠阳买的房子会这么便宜了!
  3. matlab仿真及分析,CSMACD性能分析及MATLAB仿真.pdf
  4. com.sun.mail.smtp.SMTPSendFailedException:554 5.2.0 STOREDRV.Submission.Exception
  5. [转]用Mcafee打造自己的安全系统
  6. 一篇搞懂 IP、子网掩码、网关、DNS、端口号
  7. arduino如何加载OLED屏幕库
  8. SQL中方括号的用途
  9. 关于充电桩绝缘检测中判断标准以及检测电压的选取
  10. 合路器Combiner Multiplexer