李纳斯法则:只要有足够多的眼球,就可让所有bug浮现

李纳斯法则:只要有足够多的眼球,就可让所有bug浮现

开放源代码运动的主要领导者、最为大众所知道(并最具争议性)的黑客——埃里克·雷蒙(Eric Steven Raymond)在他1999年出版的讨论软件工程方法的著名文集《大教堂和市集》中首次描述了这样一个精彩的观点:

只要足够多的眼球关注,就可让所有软件缺陷浮现。

更正式地来说即是:

只要有足够的测试员及共同开发者,所有软件缺陷都会在很短时间内被发现,而且能够很容易被解决。

他以开源操作系统Linux之父李纳斯·托瓦兹(Linus Torvalds)的名字来命名它,以此向李纳斯致敬:李纳斯法则(Linus’s_Law)。

把代码呈现给多个开发人员,让大家一起判断代码是否合格,这就是最简单的软件代码审查形式。各种研究和试验都反复的验证了代码审查(形式不限)在发现软件bug和安全漏洞中的有效性,证明代码审查要比软件测试效果好的多。

在关于软件工程方法的《事实与谬论(Facts and Fallacies)》一书中,作者Robert Glass将这条定律描述为开源运动的”真经(mantra)”,但同时认为这条定律并不准确,因为缺乏足够的支持证据,并且有研究发现,遗漏的bug数并不跟审查的人数之间存在线性的变化。更准确的说,当审查人数在2-4个人之间时,效果最佳,增加更多的审查者对消除bug比例的影响不大。一些非开源的专业开发人员,他们虽然提倡在软件开发者执行严格的、独立的代码分析,但同时用有限的人手进行深度的代码审查——而不是强调”眼球“的数量。

以著名的心脏出血(Heartbleed)bug为例——非常重要的开源软件中的一个很肤浅的bug——2年多的时间里没有人能够发现,要知道,全世界上百万台服务器都在使用含有这个bug的OpenSSL软件。但雷蒙对于心脏出血(Heartbleed)这个案例有不同意见,他认为虽然OpenSSL使用广泛,但事实上”没有任何的眼球“注意了它的源代码。

在2001年出版的《黑客伦理与信息时代的精神》(The Hacker Ethic And the Spirit of th Information Age)里,李纳斯在其为此书做的序言中,自己定义了另外一个李纳斯定律”黑客行为的动机是什么?——李纳斯法则(Linus’s_Law)“:

人类所有的动机可分为递进的三种类型 — 生存(survival)、社会生活(social life)、娱乐(entertainment)。

“黑客”是已经超越利用计算机谋生存而进入后面两个阶段的人。计算机本身就是娱乐。黑客坚信没有比这更高的动力阶段。

原文发布时间:2014-12-19

本文来自云栖合作伙伴“linux中国”

时间: 2024-09-24 18:32:12

李纳斯法则:只要有足够多的眼球,就可让所有bug浮现的相关文章

关于开源软件,你所不知道的那些事情

人们通常认为,"开源软件是完全免费的","开源软件比闭源软件更灵活","代码所有权对于每家企业而言都非常重要".但近日,SaaS CMS解决方案Coredna创始人Sam Saltis在一篇文章中指出,这些观点并不是绝对正确的,它们要依赖于一定的"环境",比如,应用场景.应用行业.企业规模,等等. 通常,人们有三种方式获得技术软件,包括"购买"."构建"和"借用".S

中国人工智能学会通讯——机器学习里的贝叶斯基本理论、模型和算法

非常感 谢周老师给这个机会让我跟大家分享一下.我今天想和大家分享的是,在深度学习或者大数据环境下我们怎么去看待相对来说比较传统的一类方法--贝叶斯方法.它是在机器学习和人工智能里比较经典的方法. 类似的报告我之前在CCF ADL讲过,包括去年暑假周老师做学术主任在广州有过一次报告,大家如果想看相关的工作,我们写了一篇文章,正好我今天讲的大部分思想在这个文章里面有一个更系统的讲述,大家可以下去找这篇文章读. 这次分享主要包括三个部分: 第一部分:基本理论.模型和算法 贝叶斯方法基础 正则化贝叶斯推

算法——贝叶斯

简介 学过概率理论的人都知道条件概率的公式:P(AB)=P(A)P(B|A)=P(B)P(A|B):即事件A和事件B同时发生的概率等于在发生A的条件下B发生的概率乘以A的概率.由条件概率公式推导出贝叶斯公式:P(B|A)=P(A|B)P(B)/P(A):即,已知P(A|B),P(A)和P(B)可以计算出P(B|A). 假设B是由相互独立的事件组成的概率空间{B1,b2,...bn}.则P(A)可以用全概率公式展开:P(A)=P (A|B1)P(B1)+P(A|B2)P(B2)+..P(A|Bn)

《贝叶斯方法:概率编程与贝叶斯推断》——1.2 我们的贝叶斯框架

1.2 我们的贝叶斯框架 我们感兴趣的估计,可以通过贝叶斯的思想被解释为概率.我们对事件A有一个先验估计--例如,在准备测试之前,我们对代码中的漏洞就有了一个先验的估计. 接下来,观察我们的证据.继续拿代码漏洞为例:如果我们的代码通过了X个测试,我们会相应地调整心里的估计.我们称这个调整过后的新估计为后验概率.调整这个估计值可以通过下面的公式完成,这个公式被称为贝叶斯定理,得名于它的创立者托马斯·贝叶斯. 上面的公式并不等同于贝叶斯推论,它是一个存在于贝叶斯推论之外的数学真理.在贝叶斯推论里它仅

案例:冈第斯牦牛排的“取势、明道、优术“六字真经

中介交易 SEO诊断 淘宝客 云主机 技术大厅 在中国,3.15是个让无数企业又爱又恨的数字,企业们一方面很想借着3.15的东风将正面形象曝光,另一方面又害怕被3.15躺枪,有些企业甚至不知道什么时候就被3.15取像了.同样,2014年的3.15仍旧曝光了很多企业,尤其是食品企业,曝光名不是一般的长,这很容易理解,当前食品安全已经到了威胁到国人生存与发展的程度,无法不让社会关注. 所谓真金不怕火炼,这场3.15大潮让无数知名食品企业中枪倒地,但也有真正做梁新产品的商家逆袭而上的,高质量产品借助移

《贝叶斯方法:概率编程与贝叶斯推断》一1.2 我们的贝叶斯框架

1.2 我们的贝叶斯框架 我们感兴趣的估计,可以通过贝叶斯的思想被解释为概率.我们对事件A有一个先验估计--例如,在准备测试之前,我们对代码中的漏洞就有了一个先验的估计. 接下来,观察我们的证据.继续拿代码漏洞为例:如果我们的代码通过了X个测试,我们会相应地调整心里的估计.我们称这个调整过后的新估计为后验概率.调整这个估计值可以通过下面的公式完成,这个公式被称为贝叶斯定理,得名于它的创立者托马斯·贝叶斯. 上面的公式并不等同于贝叶斯推论,它是一个存在于贝叶斯推论之外的数学真理.在贝叶斯推论里它仅

朱骏:我们就是农民 并不需要社会尊敬

他可能是中国最cool的有钱人,有着最最奢侈的爱好,买下了中国足球的一个标杆--上海申花足球队.能买下足球队的有钱人或许还有几个,譬如大连实德的徐明,重庆力帆的尹明善.但是,他们自己能上场指挥吗?他们自己能踢吗?偶尔踢踢球或许也不稀奇.但是,他们踢过正经的职业赛吗?2007年,批着16号球衣的朱骏,在申花与英超劲旅利物浦队在荷兰的邀请赛中以首发阵容上场.全中国的足球老板,或许全世界的足球老板,能做到这么拉风,也没有几个.作为第九城市的董事长兼CEO,朱骏同样在一个吸引眼球.挑起口水战的行业中.2

分享新手该怎样书写博客 保护博文

博客现在虽然已经进入了暮年,被微博等热门化产品逐渐代替,但博客自身的宣传价值仍然存在,它现在仍然是站长们做网站优化必不可少的一部分.而且它在知识传递上的作用仍然不可忽视,就像大家熟悉的卢松松博客.月光资讯.非生客之类的,都是新手站长甚至是老站长经常去的地方.所以很多SEO从业者还是经常使用博客作为自己职业规划的试金石.可是新手撰写博客并不像大家想的那样简单,不是简单地发表几篇文章就能做出品牌的,这里面需要我们用很多心思去考虑. 怎样书写博客? 关于博客的书写,我想大家除了良好的文笔之外,还要学会

上天入地影无踪:十大超级老牌黑客

曾经,黑客是一种荣耀,一种美好的传统,它代表着反权威却奉公守法的网络英雄.如今,黑客的形象已经十分暧昧,代表的是英雄或罪犯?正义或邪恶?高尚或卑劣?本期这个介绍网络安全老英雄的专题,让大家对他们有所了解,同时以他们的经历告诉大家,网络的安全需要大家共同的努力-- 十大超级老牌黑客之:李纳斯 图为:李纳斯.托瓦兹 全名:李纳斯.托瓦兹 Linux这部史诗发端于赫尔辛基.似乎天下的黑客都在为自己的生命创作源程序,李纳斯也不例外.他的家就在离市中心不远的Kalevagatan(与卡勒瓦拉很相近)大街.