開源軟件之七宗罪以及背后的陰謀
我們每天使用著大量的開源軟件,我們歌頌她贊美她。當(dāng)有人站出來說一句開源不好肯定會激起N多人站出來批評。然后給你列舉出N多開源的好處和閉源的壞處。首先我不反對開源,本文只是無聊時候的自己一點思考。想噴的各位請看完再噴。謝謝自從開源運動發(fā)起以后。各種針對商業(yè)軟件為目標(biāo)的開源項目相繼啟動。而且冠以開源之名就會得到尊重得到大家的支持。哪怕他曾經(jīng)是一個“臭名昭著”的企業(yè)。
1. 安全性---代碼可審查和補丁更新效率
以安全性最為頂尖的Linux為例吧。那些鼓吹Linux的多么無敵的大神們怎么遇到這事情就避而不談了?既然是無敵的安全機制。為什么Linux還要打補丁?而且許多都是安全補丁。Kernel為什么會被入侵?而且最害怕的是Hacker植入后門代碼。
做了一下調(diào)查發(fā)現(xiàn)鼓吹Linux安全性的多數(shù)都是運維+應(yīng)用級程序員(包括web和應(yīng)用軟件開發(fā)的)大部分人都沒有詳細(xì)的度過linux的源代碼,請問那股無敵的自信哪里來的。事實上有多少人會因為Linux是開源的使用Linux而更多的是因為免費和高效才去使用linux,事實上因為linux安裝軟件超麻煩要記住N多命令以至于不得不找各種腳本才可以解決那些復(fù)雜而多樣的命令的問題。
Linux真的安全么?開源安全么?由于開源的混亂和代碼審查工作的不到位。各種被安插了后門代碼和各種隱藏后門一般人就差看不出來的。比如ShellCode被加密起來當(dāng)作一組什么常量或者轉(zhuǎn)換成字符串。當(dāng)某些特定情況下才會觸發(fā)。可是這樣的文檔一般是不會隨著源代碼發(fā)布的。(中國的那些自主產(chǎn)權(quán)為什么沒辦法消化?的確拿到了設(shè)計圖和專利。)研究的過程和推導(dǎo)的過程才是最重要的。而我們忽略了這個最重要的步驟。這和我們這個社會的哲學(xué)觀有關(guān)系。老板只認(rèn)結(jié)果不重視過程,沒有過程哪里來的結(jié)果。真正研發(fā)過程只有研發(fā)工程師知道。你拿著研發(fā)的結(jié)果不知道復(fù)雜的過程你根本沒有辦法推導(dǎo)出各種情況和為什么這么設(shè)計。世界上有太多只有結(jié)果過程因為某些人的消失而永遠(yuǎn)弄不清答案的事情了。扯遠(yuǎn)了。
如果你弄不清楚他為什么這么設(shè)計。如果里面有一些暗藏后門的邏輯請問誰能審查出來?一般人能檢查的也就是一些語法錯誤簡單的邏輯錯誤??墒钦嬲倪壿嬒葳逵袔讉€人可以審查出來?專業(yè)化的審查工具?呵呵我想說hacker手里的審查腳本遠(yuǎn)比一般人知道的要多得多的多。否則哪里會有這么多漏洞。軟件開發(fā)不是人多就能解決問題。否則也不會出現(xiàn)“錢學(xué)森一個人頂?shù)蒙衔鍌€師的威力”這句話了。
精巧設(shè)計的邏輯漏洞絕大多數(shù)的人是審查不出來的。QA更檢測不出來。拋開這個不說單純從代碼安全性上來說。由于是開源的。查找漏洞的方式更簡單。以前我們還需要打開IDA,Ollydbg,Windbg等工具一行行匯編審查?;蛘遞uzz現(xiàn)在我們根本不需要了。直接看代碼就好了。檢查各種函數(shù)入口看看有沒有可以利用的地方。專業(yè)的hacker會審查這些漏洞然后當(dāng)作0day存儲起來—實際上發(fā)布出來的0day很少很少。當(dāng)你知道0day發(fā)布的漏洞的時候?qū)嶋H上都是過了半年甚至好幾年的漏洞了。這些早就是行業(yè)潛規(guī)則了私有化的工具私有化的漏洞。
Hacker滲透一個系統(tǒng)首先要收集資料。由于大量的開源導(dǎo)致他們很容易獲取整個網(wǎng)絡(luò)架構(gòu)服務(wù)器配置,網(wǎng)關(guān)設(shè)置信息。這些信息根本無法隱藏。這些都是無法避免漏洞。你指望有一個好像偵探一樣的漏洞挖掘人員可以大公無私的挖掘到漏洞然后第一時間放出漏洞信息么?可行性幾乎微乎其微。這么多人研究越獄為什么只有一兩個人成功了還藏著掖著放個視頻顯擺一下?因為大家都知道這可以為他帶來可觀的收入,
早年Intel一個浮點數(shù)漏洞讓Intel損失好幾億,軟件的一個漏洞損失應(yīng)該更強才對。在地下某些黑市一個針對遠(yuǎn)程溢出的漏洞能炒到幾百萬上千萬的都有。而且愿意購買這些東西的人太多了。做黑產(chǎn)地,專業(yè)滲透團隊,ZF,黑灰白都有。
請問開源軟件的安全性誰來保證?靠大家監(jiān)督么?可行么?而且許多開源底層一般人也接觸不到。再說有的時候找到漏洞的成本比修補這個漏洞的成本更高。請問開發(fā)團隊由收入這個漏洞查找的人誰來給予獎勵?單靠表彰可能么?
2. 質(zhì)量
絕大部分開源軟件的質(zhì)量很差。因為大部分開源項目都是一時熱血發(fā)布的。自然是想到什么寫什么。什么華麗的技術(shù)都用進(jìn)去,熱血過了咋辦?我想大部分人都沒想過。就和好多人說我愛這個女孩非她不娶,實際上最后結(jié)婚的大部分也都不是原來的那個她了。
可是當(dāng)時覺得我以后肯定會一直愛她(它)會一直一直維護下去的。
大部分參與開源的人一半是覺得自己還行隨份子(大部分開源項目管理者覺得人多好聽自然就是有幾個算幾個只要有的人都算進(jìn)來。說出去好聽。我們的項目有好幾個人共同開發(fā)。不少都是大學(xué)生為了做畢業(yè)設(shè)計或者其他目的參與的)
完全就是一個雜牌軍。主力開發(fā)人員就那么幾個。好吧這個項目很好很快得到大家的青睞有了一些小型的用戶??窟@樣的撞大運的開發(fā)方式能有好的質(zhì)量么?
ACE那樣的項目開發(fā)者就是為了做實驗寫了一些論文和書。隨后這個項目幾經(jīng)轉(zhuǎn)手最后弄得理論上最強大。實際上沒幾個人敢用。
能像MySQL,Linux,GCC這樣的項目少之又少。就這還不算某些大公司背后的陰謀
3. 可維護性,制定性和開源協(xié)議
如果這開源團隊不做了。你可以繼續(xù)維護這個開源軟件,聽上去很美麗,實際上能自己維護像Linux,MySQL這樣規(guī)模很大的軟件能有幾個人?再說我要的是使用而不像做開發(fā)人員。我如果有開發(fā)能力我自己開發(fā)一個好了干嘛要用它呢?
開源軟件給我們畫了一個很大的餅。大到我們根本沒辦法下嘴去吃它。我承認(rèn)有一些團隊可以維護Linux,MySQL這樣的工程。可是這些人。要么是大公司要么是原開發(fā)者另起爐灶搞得項目。一般人根本無法涉及這個領(lǐng)域。
還有軟件各種開源協(xié)議。我給XX公司制定的某個MySQL版本增加了他們自己特有的一個什么技術(shù)來改進(jìn)運行效率。請問我是否要開源?如果必須要開源的話那企業(yè)機密和我自己研究的一種新的算法和技術(shù)怎么就平白無故就開源了?如果我不開源是不是就不尊重他人?而且這個協(xié)議誰來保證?當(dāng)別人侵犯了你的權(quán)益誰來給你保障?誰來審核是不是有人侵犯你的權(quán)益?
開源你就要遵循開源協(xié)議。比如阿里云為什么Android會站出來反對?
因為這是Android想做的。阿里你居然先做了。你居然不按照我設(shè)定的步驟走,我就搞死你。開源軟件真的是“開源”的么?就和ARM的協(xié)議一樣
有許多個版本。有你想怎么修改就怎么修改的,有你只能外圍修改的核心不能動的,還有你根本不能動只能“免費,自由”使用的。
開源協(xié)議看似我開源的。實際上背后的條條框框你知道么?
你必須遵循我的約定。你能在我的上面修改的東西很有限。超過了協(xié)議約定我會告死你的。。。
4. 自由,免費,專利與開源協(xié)議的法律約束
許多人說開源不等于免費。好的請問你都開源了你如何保證別人會使用你的程序還會付錢給你?你沒辦法保證。包庇centos和rh一模一樣rh去告centos了么?你都開源了你管別人怎么用了。
軟件免費了。請問開發(fā)者的開發(fā)費用誰來支付?基金會?反過來想一下。是不是我們都是基金會的廉價勞動力?只是冠以開源的名義做著和那些IT企業(yè)一樣壓榨勞動力的事情?
調(diào)查了許多開源協(xié)議。除了某些義務(wù)開源(比如MIT,BSD之類的協(xié)議)其他的協(xié)議要么是你用了某軟件必須要聲明,或者修改了要開源,或者個人版免費,企業(yè)使用要收費。大家哪里有這么好的自覺性?那請問收入如何保證?
所以大公司的開源項目大部分都不可能是完全開源協(xié)議。
大公司領(lǐng)導(dǎo)的開源項目。項目中有技術(shù)含量的早就被申請專利了。他只是不說在開源協(xié)議中提到一下。然后給你免費使用哦。一旦你的所有開發(fā)都給予這個平臺的話。有一天他要說我要收專利費了。我們的項目已經(jīng)完全的捆綁上去了。我們怎么辦?
想想轉(zhuǎn)基因農(nóng)作物的專利陷阱的問題,老外怎么這么好讓你免費用他們的轉(zhuǎn)基因?qū)@?/p>
沒人想想背后的故事么?
開源協(xié)議在說什么?有人研究過開源協(xié)議么?我覺得大部分人對于開源協(xié)議的了解僅僅是開源了不需要付出任何代價,這個你修改了你也要跟著開源。僅此而已。剩下的那些霸王條款有人去研究過么?
5. 技術(shù)支持和第三方服務(wù)
開源軟件大部分安裝都很麻煩。甚至有些不提供Bin直接Src自己愛怎么折騰就怎么折騰。出錯了不知道找誰去社區(qū)問,有不錯的社區(qū)會建立一個QA手冊。如果遇到一些QA沒有的問題怎么辦?靠開發(fā)人員自覺的跟蹤回答?如果需要上門服務(wù)呢?需要比較專業(yè)的技術(shù)支持呢?費用誰來承擔(dān)?有明碼標(biāo)價么?
而且大部分軟件都很不負(fù)責(zé)任的寫一句“風(fēng)險自行承擔(dān),開發(fā)團隊概不負(fù)責(zé)”這樣的話。請問你看到這句話就和看到“最終解釋權(quán)歸本公司所有”是不是一樣的氣憤!
當(dāng)然大部分人覺得沒什么感覺那是因為你沒有造成損失過。如果你真的因為使用軟件而造成嚴(yán)重?fù)p失你就知道。技術(shù)支持和第三方服務(wù)的重要性了。
6. 支持開源項目的幕后---誰才是最終獲利者
這個問題估計大家都很關(guān)心。開發(fā)人員希望有一份自己想開發(fā)就開發(fā)。而且有零花錢的項目。國內(nèi)幾乎沒什么基金會,國外有因為他們有收入和捐款。而且大部分都是大公司背后支持的。這個東西發(fā)展的不錯最后就把她收購了。
而真正的開發(fā)人員最后就成了一種“被開源”的廉價勞動者
逆向思維一下。開源項目都是什么人?
大基金會支持的項目
大公司支持的項目
大學(xué)或者科研機構(gòu)
超有責(zé)任感超負(fù)責(zé)任而且可以拿到開發(fā)資源的“神人”
按照目的排列一下
實驗性項目只是為了做實驗而已-成熟的技術(shù)會另外收入商業(yè)產(chǎn)品中。比如RH
名聲,企業(yè)形象。開源一些可有可無的東西。比如微軟,SUN等等,國內(nèi)新浪,網(wǎng)易,淘寶等等
商業(yè)目的。例如Intel為什么嘛支持Linux開源?把自己公司生產(chǎn)的硬件需要用到的驅(qū)動或者一些軟件做到Linux上。隨著Linux或者其他開源項目的順風(fēng)車灑滿整個世界(就和植物的果實,還有蒲公英一樣)微軟搞得IronPython,Mono,還有許多其他的東西
技術(shù)領(lǐng)先目的。這個說的有點遠(yuǎn)??紤]一下為什么美國和蘇聯(lián)當(dāng)初都對中國或者其他國家有過技術(shù)支持?僅僅是因為政治么?
中國剛起步需要技術(shù),蘇聯(lián)援助中國,那中國只能跟著蘇聯(lián)技術(shù)路線走。我們就被他們死死的捆綁了。我們始終只能獲得他們的二流技術(shù)和仿制品。從中國的各種武器就能看出來。幾乎就和蘇聯(lián)當(dāng)初一個德性。
美國支持日本和韓國的技術(shù)發(fā)展是不是也是抱著這種目的呢?帶你走入美式路線當(dāng)你完全進(jìn)入的時候。你就始終落后于他。這些老大哥們就可以牢牢地控制住技術(shù)發(fā)展路線。誰都想知道對方有什么技術(shù),既然無法阻止別人研發(fā),不如就讓別人跟著自己的路線走。反思條條大路通羅馬為什么非要跟他們走?
我們的祖先以前科技發(fā)展非常迅猛而且領(lǐng)先,自從滿人入關(guān)以后廢漢學(xué)興西學(xué)所以我們一直落后于西方。西方人卻在偷偷的學(xué)我們老祖宗的東西。現(xiàn)在反思一下我們是不是一開始就落后于西方呢?
希望世界更美好更和平人們相互關(guān)懷愛護,拾金不昧,視如己出……
說了這么多相信大家都知道我的意思了。老外在各個行業(yè)上壓榨與我們。
冶金,材料學(xué),醫(yī)學(xué),電子,糧食,轉(zhuǎn)基因幾乎所有行業(yè)。怎么軟件行業(yè)突然這么大方起來了?給予我們免費的編譯器使用,教我們?nèi)绾问褂盟麄兊墓こ毯痛a。
把我們一步一步培養(yǎng)成只會使用他們開源工程的碼奴。還提出各種封裝思維。你不用懂我們是怎么做的。你只需要知道怎么用就好了。底層我們來弄就好了(其實我跟你們說底層吃力不討好的。沒意思的,研究要花許多錢還沒收入的。這樣的臟活累活我們做)
于是我們就成了只會使用別人開源工程和底層的一群碼奴了。
就和中國制造一樣。進(jìn)口人家的設(shè)備和原材料。生產(chǎn)了東西賣給別人??此剖且还P不錯的生意。實際上我們失去了許多。我們技術(shù)受制于別人,生產(chǎn)的東西還沒有很高的附加值。而且各種貿(mào)易費用都要我們負(fù)擔(dān)。開源真的就這么美好么?
開源項目中的專利陷阱我們發(fā)現(xiàn)了么?
7. 技術(shù)開源與世界局勢---我們的未來在哪里
現(xiàn)在生產(chǎn)和原料不占優(yōu)勢。中國在海外投資礦產(chǎn)有幾個發(fā)財?shù)?。賠本的倒是見過不少。為什么人家有礦產(chǎn)自己不開發(fā)等著我們開發(fā)。我們自己還賠本了呢?相信這樣的新聞大家肯定知道的比我多。為什么?這個世界已經(jīng)從單一的原料出口向高端技術(shù)和商業(yè)運作上發(fā)展了。搞開源的估計都不喜歡微軟和甲骨文。甲骨文見一個收一個再把開源項目搞死。微軟死活不開源。Apple呢?有人喜歡Apple么?估計也都不怎么喜歡吧。至少在Apple開源以前大家都不喜歡它…難道我們就是因為他們貢獻(xiàn)代碼了才喜歡他們的么?
為什么好好的壟斷不做他們?nèi)プ鲩_源?有什么陷阱么?老外的智商和商業(yè)運作玩的比我們先進(jìn)這么多。為什么會這么大方的在開源?突發(fā)善心?
就像上面我說的。生產(chǎn)和原料不占優(yōu)勢了?,F(xiàn)在占優(yōu)勢的只有高技術(shù)和市場運作方式。
高技術(shù)有專利來保證。Apple是專利流氓芝麻大點的東西都要去申請專利。那再軟件上是否也是默默地這么做了呢?或者說以后我們連寫 if while都要付專利費給別人呢?
我想大部分搞開發(fā)的人都知道。公司里每年都會有一筆獎金是給那些有專利的開發(fā)人員的吧。雖然少的可憐。但是有總比沒有好。為什么?因為專利就是公司的法律籌碼!
調(diào)查過一些商業(yè)開源失敗的案例。舉個最近的例子吧。DOOM3都玩過。卡馬克大神開源了??墒抢锩嬗捎贑armack's Reverse技術(shù)被另外一家公司申請了專利(學(xué)名z-fail stencil shadows現(xiàn)在不少顯卡都集成了這個功能)。DOOM3面臨著開源就遭遇專利危機。一般人也就是算了不開源了??ㄉ癫焕⑹强ㄉ?。自己開發(fā)一種替代技術(shù)來解決這個問題。
關(guān)于軟件的案例不多,但是足以看出來開源軟件是否也暗藏專利陷阱呢?技術(shù)是你研發(fā)的沒錯。但是不代表別人不能拿你的技術(shù)申請專利。那些美妙的開源基金和公司是否也在背地里做這些見不得人的勾當(dāng)呢?請問你敢說沒有可能么?
他們發(fā)布出去的只是代碼。設(shè)計文檔沒有開放。我們知道老外是最重視文檔的,每個模塊用了哪些技術(shù)為什么使用這個技術(shù)—這個技術(shù)的專利屬于哪家公司。難道你能覺得他完全沒有做過記錄么?真的因為開源軟件打起專利官司我們這些使用者和二次開發(fā)商肯定死定了…
現(xiàn)在你還會覺得“開源軟件”是玫瑰(不解釋)而不是罌粟(不解釋)么?
開源軟件引領(lǐng)著技術(shù)風(fēng)潮。開源軟件刺激技術(shù)發(fā)展。然后開源基金在幕后操縱著社區(qū)開發(fā)者。獲得大量的開發(fā)資料和新的設(shè)計思路,然后偷偷的申請專利.誰能保證沒有?
別的國家都在做基礎(chǔ)研發(fā),因為基礎(chǔ)研發(fā)比較透徹所以人家各種專利技術(shù)和底層穩(wěn)定性做的非常好,于是他們利用開源軟件來收集各種資料,數(shù)據(jù)和設(shè)計思路。然后軟件的所有權(quán)還歸他們基金會或者公司所有。
高技術(shù)和所有權(quán)。通過技術(shù)專利和基金會的項目所有權(quán)而全權(quán)壟斷了。他們壟斷著上游
就像我說的。協(xié)議中最后一句“解釋權(quán)歸本公司(基金會)所有”那是不是意思就是說。項目中的技術(shù)和專利也都是屬于支持的基金會和幕后公司所有呢?
我們吵著軟件專利阻礙軟件發(fā)展,那硬件又可況不是如此呢?開源硬件又如何?你不掌握制造技術(shù),生產(chǎn)技術(shù),研發(fā)技術(shù),就算讓你組合起來能成為一個產(chǎn)品。你又要付出多大的代價呢?當(dāng)這個世界進(jìn)步的同時。各種陷阱和戰(zhàn)爭也在悄然埋下伏筆不是么?
寫在最后:
有許多人會覺得我危言聳聽??墒俏遗e得這些例子和說的一些事件大部分人都知道,誰也沒辦法完全否定我說得這些事情。我們究竟是因為別人喊了一句“開源”我們就成了開源世界的阿Q,還是我們是真正的技術(shù)先鋒呢?沒有組織的開源是不是會被國外的基金會當(dāng)槍使呢?被“G命”這句號召感召的人們最后成了現(xiàn)在這些“寄生X”的墊腳石了。我不希望我們也是被“開源”這句號召犧牲的一代人。
我真心希望能讓大家引起思考。而不是一下子站出來說。你文中這個不對那個是錯的。你不懂開源精神。你說的這些我都懂,這篇文章我沒有深思熟慮細(xì)致考究。我只是臨時有感而發(fā)寫成的,我覺得我們需要的是反思!而不是相互攻擊。思考我們的出路在哪里。。。