開放源代碼運動的主要領導者、最爲大衆所知道(並最具爭議性)的黑客——埃裏克·雷蒙(Eric Steven Raymond)在他1999年出版的討論軟件工程方法的著名文集《大教堂和市集》中首次描述了這樣一個精彩的觀點:安全
只要足夠多的眼球關注,就可以讓全部軟件缺陷浮現。服務器
更正式地來講便是:測試
只要有足夠的測試員及共同開發者,全部軟件缺陷都會在很短期內被發現,並且可以很容易被解決。spa
他以開源操做系統Linux之父李納斯·託瓦茲(Linus Torvalds)的名字來命名它,以此向李納斯致敬。操作系統
把代碼呈現給多個開發人員,讓你們一塊兒判斷代碼是否合格,這就是最簡單的軟件代碼審查形式。各類研究和試驗都反覆的驗證了代碼審查(形式不限)在發現軟件bug和安全漏洞中的有效性,證實代碼審查要比軟件測試效果好的多。開放源代碼
在關於軟件工程方法的《事實與謬論(Facts and Fallacies)》一書中,做者 Robert Glass 將這條定律描述爲開源運動的」真經(mantra)」,但同時認爲這條定律並不許確,由於缺少足夠的支持證據,而且有研究發現,遺漏的bug數並不跟審查的人數之間存在線性的變化。更準確的說,當審查人數在2-4我的之間時,效果最佳,增長更多的審查者對消除bug比例的影響不大。一些非開源的專業開發人員,他們雖然提倡在軟件開發者執行嚴格的、獨立的代碼分析,但同時用有限的人手進行深度的代碼審查——而不是強調」眼球「的數量。orm
以著名的 心臟出血(Heartbleed) bug爲例——很是重要的開源軟件中的一個很膚淺的bug——2年多的時間裏沒有人可以發現,要知道,全世界上百萬臺服務器都在使用含有這個bug的OpenSSL軟件。但雷蒙對於心臟出血(Heartbleed)這個案例有不一樣意見,他認爲雖然OpenSSL使用普遍,但事實上」沒有任何的眼球「注意了它的源代碼。ip
在2001年出版的《黑客倫理與信息時代的精神》(The Hacker Ethic And the Spirit of th Information Age)裏,李納斯在其爲此書作的序言中,本身定義了另一個李納斯定律」黑客行爲的動機是什麼?——李納斯法則(Linus’s_Law)「:ci
人類全部的動機可分爲遞進的三種類型 — 生存(survival)、社會生活(social life)、娛樂(entertainment)。開發
…
「黑客」是已經超越利用計算機謀生存而進入後面兩個階段的人。計算機自己就是娛樂。黑客堅信沒有比這更高的動力階段。
(本文編譯自維基百科詞條 Linus’s_Law ,CC licensed)