2016-2022 All Rights Reserved.平安財經(jīng)網(wǎng).復制必究 聯(lián)系QQ280 715 8082 備案號:閩ICP備19027007號-6
本站除標明“本站原創(chuàng)”外所有信息均轉載自互聯(lián)網(wǎng) 版權歸原作者所有。
對于開源來說,這不是一個好年頭。無論如何,這并不是因為它在軟件質(zhì)量和安全性方面的黃金聲譽。但是,在急于指責Bash Shellshock漏洞(之前是Heartbleed漏洞)的時候,一些人,比如Roger Grimes,想要取消一些開源的基本原則,比如“只要有足夠的眼球,所有的bug都是膚淺的”的建議。
對不起,批評沒有效果。這是為什么。
自從埃里克·雷蒙德(Eric Raymond)在他的開創(chuàng)性著作《大教堂和集市》(The Cathedral and The Bazaar)中捕捉到了“萊納斯定律”(Linus’Law)以來,開源的倡導者們就愉快地重復著“眼球”的咒語。格萊姆斯以彈震和心臟出血為例,宣稱這一原則往好了說是謬誤,往壞了說是破壞性的。
除了其他原因,他還說道:
他在同一段話里完全正確,但又大錯特錯。他說得對,大多數(shù)bug在發(fā)布代碼之前就會被忽略,這一點對于開源或專有代碼來說是正確的。他說的也對,部分原因是沒有人有時間或意愿對所有代碼進行全面檢查,以確保沒有bug。
但是他錯了,他認為這在某種程度上證明了什么。萊納斯定律的完整版本是這樣的:
但這并不意味著問題會在發(fā)布前得到解決。這只是意味著只要有足夠的眼球,當人們懶得去看的時候,所有的蟲子都是很淺的。
雖然這似乎是一個微不足道的區(qū)別,但它是至關重要的。
畢竟,世界上大多數(shù)軟件都不受審查的影響。它的專有代碼被供應商或選擇不向外部視圖打開它的最終用戶鎖定。
炮彈休克會發(fā)生在自營商身上嗎?當然可以。聽說過周二的補丁嗎?
但正如西蒙?菲普斯(Simon Phipps)所解釋的那樣,在一個專有世界里,一旦出現(xiàn)安全漏洞,我們就只能任由供應商擺布,而供應商只能雇傭這么多“眼球”:
今天,正如Cloudera的Mike Olson提醒我們的那樣,世界上大部分的軟件基礎設施都是以開源的方式發(fā)布的,這意味著我們將能夠發(fā)現(xiàn)并共同處理全世界的shellshock和Heartbleeds。這是一個巨大的升級,而不是過去花時間等待微軟或其他專有供應商自己發(fā)現(xiàn)和修復問題。
雖然開源軟件確實提供了高質(zhì)量的軟件和更少的bug(與Grimes的觀點相反),但它并不完美。Coverity的年度代碼質(zhì)量報告發(fā)現(xiàn)“開源C/ c++項目的平均缺陷密度為0.59……相比之下,為企業(yè)項目開發(fā)的專有C/ c++代碼的平均缺陷密度為0.72?!?/p>
但這并不意味著我們應該沉迷于“神奇的想法”,引用Steven J. Vaughan-Nichols的話,僅僅因為它是開源的,就認為它天生安全、更好,或者孕育了獨角獸。正如他所寫的,“如果使用正確,開放源碼方法仍然和以前一樣好。”
這讓我們回到了Linus定律,它和以前一樣有效,開源仍然是構建和部署軟件的更好方法。然而,有時候,我們不會完全理解開放源碼的好處,直到一切都亂了套,我們只能一起解決這個問題,因為我們可以訪問源代碼。這比另一種選擇要好得多。
2016-2022 All Rights Reserved.平安財經(jīng)網(wǎng).復制必究 聯(lián)系QQ280 715 8082 備案號:閩ICP備19027007號-6
本站除標明“本站原創(chuàng)”外所有信息均轉載自互聯(lián)網(wǎng) 版權歸原作者所有。