閱讀114 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Linus大神又怒了 呃...我為什麼要說“又”?

Linus大神實乃性情中人,口無遮攔。繼稱OpenBSD開發者是一幫自慰的猴子、  調侃digg用戶是“手淫的海象”、以及 對 Nvidia 比中指爆粗 後,又有不懂事的人惹大神發怒了。

這回事由在於Linus認為Mauro違反了內核維護的基本原則。他的原話很好理解:

閉上你的臭嘴,Mauro!

這明顯是一個bug,Kernel中的bug!你做了多長時間的維護人員了,為什麼不明白Kernel維護的第一原則?

如果修改會導致用戶程序的破壞,那問題一定是在Kernel上!永遠不可以歸咎用戶程序的責任,學會這點真的很難嗎?

更糟糕的是,commit f0ed2ce840b3雖然並沒有破壞程序,但它完全是廢話。

……

永遠不可以破壞USERSPACE!

或許有人覺得Linus的批評太過嚴厲,但這也正反映出他對Kernel設計、維護原則的堅持,如果沒有這種信念,相信Linux很難有今天的地位。希望各位程序員引以為戒!

https://thread.gmane.org/gmane.linux.kernel/1413835/focus=1414106

From: Linus Torvalds <torvalds <at> linux-foundation.org> 
Subject: Re: [Regression w/ patch] Media commit causes user space to misbahave (was: Re: Linux 3.8-rc1) 
Newsgroups: gmane.linux.kernel 
Date: 2012-12-23 17:36:15 GMT (1 day, 17 hours and 45 minutes ago) 
On Sun, Dec 23, 2012 at 6:08 AM, Mauro Carvalho Chehab 
<mchehab <at> 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

最後更新:2017-04-04 07:03:14

  上一篇:go 員工造反 —— 原來都是我的錯
  下一篇:go 開發者應該開始學習 C++ 了