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