Linus又骂人stupid

标签: linus 骂人 stupid | 发表时间:2010-11-13 16:00 | 作者:idea's blog 老孤
出处:http://srmeme.com/
SRMeme还知道:
idea's blog发表于2010-11-13 16:00:08

最近, 有位用户向 bugzilla.redhat.com 报告他用 Fedora Linux 上网听 MP3 音乐时, 会播放出奇怪的声音. Linux 之父 Linus Torvalds 参与的讨论, 并最终找出原因, 竟是 glibc 升级了 memcpy() 函数, 导致浏览器的 Abobe Flash Player 插件出现问题.

这真是太强大了, 竟然能从上网听音乐追查到几乎是软件最底层基础的 memcpy() 函数! 如果你想知道他是如何一步一步找出 BUG 的原因的, 可以自己去看贴. (我个人不得不表示非常佩服他们敏锐的技术嗅觉和科学精神!)

这个 BUG 的原因是, 某位 glibc 贡献者(看邮件地址应该是 Intel 公司的某华裔工程师)提交了一个速度更快的 memcpy() 函数的实现并被采纳. 但是, 这个速度更快的 memcpy() 并没有像它的前一个版本一样对源内存和目的内存重叠的情况做兼容, 所以导致了 Flash 插件出问题.

Glibc 认为, memcpy() 函数的手册清楚的说明, memcpy() 所操作的两块内存不能重叠:

MEMCPY(3)                  Linux Programmer's Manual                 MEMCPY(3)

NAME
       memcpy - copy memory area

SYNOPSIS
       #include 

       void *memcpy(void *dest, const void *src, size_t n);

DESCRIPTION
       The  memcpy()  function  copies  n bytes from memory area src to memory
       area dest.  The memory areas should not overlap.  Use memmove(3) if the
       memory areas do overlap.

新版本的 memcpy() 完全遵守标准, 没有任何问题, 完全是 Adobe 的程序员没有编写正确的代码导致了 BUG, 应该算在 Adobe 的头上, 所以把这个报告标记为”NOTABUG(不是 BUG)”.

Linus 老大不屑地说, 在 Linux 内核里我们就用了我们自己的非常漂亮的 memcpy(), 而且经过简单测试, 还比所谓的 glibc 的新版本 memcpy() 还要快呢, glibc 的那个速度更快的新版本 memcpy() 根本就是愚蠢至极(“There’s no real reason to do the copy backwards that I can see, so doing it that way is just stupid.”). 毕竟是在 glibc 才导致了 BUG 的出现, 简单地推卸责任会让用户非常失望.

事情似乎告了一段落, 但是这些个国外的大牛人们的争论, 让我们看到了做技术的人所应该具有的科学态度, 他们据理力争, 反驳有理有据的争论(讨论)方式值得我们学习. 特别是他们敏锐的观察和思考”领域外”的技术细节的精神 – 谁能想到浏览器放音乐出现破音竟然是 glibc 的升级后导致的? – 往往是我们缺少的.

——————————-
做个调查: 你支持 Linus 从用户角度考虑? 还是支持 glibc 从标准角度考虑?
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.

Related posts:

  1. 苹果乔布斯撰文说明为何拒绝Flash
  2. 关于 C++ 中的函数指针
  3. 把Firefox的播放背景音乐功能去掉
  4. Linux发行版的选择
  5. C#环形缓冲
The readings, filtered by social network!
阅读科技频道热文。手机请登录移动版

相关 [linus 骂人 stupid] 推荐:

Linus又骂人stupid

- 老孤 - 中文热文榜|最新
还有 Flier Lu, otbzi, dongliqian, 推荐,查看全部 6 个推荐. idea's blog发表于2010-11-13 16:00:08. 最近, 有位用户向 bugzilla.redhat.com 报告他用 Fedora Linux 上网听 MP3 音乐时, 会播放出奇怪的声音.

Linus Torvalds弃GNOME 3用Xfce

- Wick - Solidot
许多人都不喜欢变化太大的GNOME 3桌面,现在Linux kernel作者也加入到这一阵营之中. Linus Torvalds在他的Google+上表示,GNOME 3“无可容忍的凌乱”,它的用户体验是“无法接受的”. 因此他决定抛弃GNOME 3,改用Xfce. 他表示使用Xfce相当于退回到GNOME 2,但相比GNOME 3却是一大进步.

Linus Torvalds 的十条佳句

- - LinuxTOY
在正在举行的 LinuxCon Europe 期间,来自 Intel 的 Dirk Hohndel 对 Linus Torvalds 进行了采访,Linus 对提问进行了回答,其中部分读来颇为有趣. Linus 对于当下三个月的发布周期感到满意,这个时间段既可以给开发者充足的时间进行功能开发,若是不幸错过也不必等太久.

面向对象设计原则:不要STUPID,坚持GRASP和SOLID

- - CSDN博客架构设计推荐文章
不要STUPID,坚持GRASP和SOLID. 有人可能会说:这是描述设计原则的一个专业术语,由我们可爱的代码整洁之道传教者鲍勃(罗伯特C. 马丁)大叔提出,是一组用于指导我们如何写出“好代码”的原则. 在编程界充满了这样由单词首字母组成的缩略词. 其它类似的例子还有DRY(Don’t Repeat Yourself.

Linus Torvalds考虑结束Linux 2.6系列

- xtypebee - Solidot
随着第40个Linux 2.6 kernel开发周期的到来,以及Linux诞生20周年, Linus Torvalds在Kernel邮件列表上表示,他觉得2.6.40这个版本数字太大了,他考虑结束Linux 2.6系列,改为开发Linux 2.8或3.0,他表示愿意倾听他人对此事的看法. 有人建议等到2.6.42后再换到新的内核系列,42这一典故出自《银河系漫游指南》,Linus拒绝了这项建议,认为40这个整数更好.

Linus先生前往好莱坞

- allengaller - Solidot
奥斯卡热门电影《社交网站》的剧情设在2003年,Jesse Eisenberg扮演的Mark Zuckerberg当时所用的电脑运行的是KDE3桌面环境,操作系统可能是Kubuntu. 在好莱坞的花花世界,开源软件和Linux向来不受重视,因此邀请Linux之父出席奥斯卡前夕派对似乎是出人意料之事.

我和Linus大学时那些事儿

- muzuiget - K.I.S.S
原作 Lars Wirzenius,地址 http://liw.fi/linux20/. 特别感谢 ggarlic,da chen, Jack Ma, ant_sz 对翻译的指正. 这是一个冗长的故事,如果你现在没兴趣阅读它,可以试着等到卧病在床,脑袋里一团浆糊,把止疼药当糖吃时再读,希望您阅读时不要感到不适.

Mac OS X 背后的故事(二)——Linus Torvalds的短视

- lee - 《程序员》杂志官网
《Mac OS X背后的故事》系列文章将为大家介绍Mac OS X的发行版本、技术历史、相关人物等内容. 本文是系列连载的第二篇,主要的故事来源是Linus Torvalds的自传《Just for Fun: The Story of an Accidental Revolutionary》. Steve Jobs于1997年回归Apple.

Linus Torvalds 先生的 10 个有趣的问答

- maxiyun - 开源小厨
Linus Torvalds 先生是一个低调的,不喜欢在公共场合抛头露面的人,平时很难看到 Linus 先生在某个会议上跟大家侃侃而谈. 不过由于 Linus 先生所处的特殊位置,不时有媒体对 Linus 进行采访,以使公众了解 Linus 对某些事情的看法,而 Linus 也从不吝啬或隐藏自己的观点,并且 Linus 的回答总是明确,有趣,充满了机智,从不令人失望.

Linus Torvalds在软件开发管理上的教训

- Johnny - 译言-电脑/网络/数码科技
Linus Torvalds在软件开发管理上的教训. 如果有谁知道管理软件开发项目的欢乐和悲伤,那么他一定是Linus Torvalds,作为世界上最流行的开源软件——Linux操作系统的创建者,Torvalds已经管理着成千上万的开发着来提高这个开源操作系统超过20个年头了,他和我将坐下来谈谈那些在管理大型分布式编程团队的有效技巧,当然也包含那些不起作用的所谓技巧.