您的位置: 首页 >互联网 >

开源的浅层bug理论还没有被推翻

2020-05-20 15:37:17 编辑: 来源:
导读 对于开源来说,这不是一个好年头。无论如何,这并不是因为它在软件质量和安全性方面的黄金声誉。但是,在急于指责Bash Shellshock漏洞(之前是Heartbleed漏洞)的时候,一些人,比如Roger Grimes,想要取消一些开源的基本原则,比如“只要有足够的眼球,所有的bug都是肤浅的”的建议。 对不起,批评没有效果。这是为什么。 自从埃里克·雷蒙德(Eric Raymond)在他的开

对于开源来说,这不是一个好年头。无论如何,这并不是因为它在软件质量和安全性方面的黄金声誉。但是,在急于指责Bash Shellshock漏洞(之前是Heartbleed漏洞)的时候,一些人,比如Roger Grimes,想要取消一些开源的基本原则,比如“只要有足够的眼球,所有的bug都是肤浅的”的建议。

对不起,批评没有效果。这是为什么。

自从埃里克·雷蒙德(Eric Raymond)在他的开创性著作《大教堂和集市》(The Cathedral and The Bazaar)中捕捉到了“莱纳斯定律”(Linus’Law)以来,开源的倡导者们就愉快地重复着“眼球”的咒语。格莱姆斯以弹震和心脏出血为例,宣称这一原则往好了说是谬误,往坏了说是破坏性的。

除了其他原因,他还说道:

他在同一段话里完全正确,但又大错特错。他说得对,大多数bug在发布代码之前就会被忽略,这一点对于开源或专有代码来说是正确的。他说的也对,部分原因是没有人有时间或意愿对所有代码进行全面检查,以确保没有bug。

但是他错了,他认为这在某种程度上证明了什么。莱纳斯定律的完整版本是这样的:

但这并不意味着问题会在发布前得到解决。这只是意味着只要有足够的眼球,当人们懒得去看的时候,所有的虫子都是很浅的。

虽然这似乎是一个微不足道的区别,但它是至关重要的。

毕竟,世界上大多数软件都不受审查的影响。它的专有代码被供应商或选择不向外部视图打开它的最终用户锁定。

炮弹休克会发生在自营商身上吗?当然可以。听说过周二的补丁吗?

但正如西蒙•菲普斯(Simon Phipps)所解释的那样,在一个专有世界里,一旦出现安全漏洞,我们就只能任由供应商摆布,而供应商只能雇佣这么多“眼球”:

今天,正如Cloudera的Mike Olson提醒我们的那样,世界上大部分的软件基础设施都是以开源的方式发布的,这意味着我们将能够发现并共同处理全世界的shellshock和Heartbleeds。这是一个巨大的升级,而不是过去花时间等待微软或其他专有供应商自己发现和修复问题。

虽然开源软件确实提供了高质量的软件和更少的bug(与Grimes的观点相反),但它并不完美。Coverity的年度代码质量报告发现“开源C/ c++项目的平均缺陷密度为0.59……相比之下,为企业项目开发的专有C/ c++代码的平均缺陷密度为0.72。”

但这并不意味着我们应该沉迷于“神奇的想法”,引用Steven J. Vaughan-Nichols的话,仅仅因为它是开源的,就认为它天生安全、更好,或者孕育了独角兽。正如他所写的,“如果使用正确,开放源码方法仍然和以前一样好。”

这让我们回到了Linus定律,它和以前一样有效,开源仍然是构建和部署软件的更好方法。然而,有时候,我们不会完全理解开放源码的好处,直到一切都乱了套,我们只能一起解决这个问题,因为我们可以访问源代码。这比另一种选择要好得多。


免责声明:本文由用户上传,如有侵权请联系删除!

最新文章

精彩推荐

图文推荐

点击排行

2016-2022 All Rights Reserved.平安财经网.复制必究 联系QQ   备案号:

本站除标明“本站原创”外所有信息均转载自互联网 版权归原作者所有。

邮箱:toplearningteam#gmail.com (请将#换成@)