閱讀943 返回首頁    go 技術社區[雲棲]


開源軟件之七宗罪以及背後的陰謀

我們每天使用著大量的開源軟件,我們歌頌她讚美她。當有人站出來說一句開源不好

肯定會激起N多人站出來批評。然後給你列舉出N多開源的好處和閉源的壞處。

首先我不反對開源,本文隻是無聊時候的自己一點思考。想噴的各位請看完再噴。謝謝

自從開源運動發起以後。各種針對商業軟件為目標的開源項目相繼啟動。而且冠以開源之名

就會得到尊重得到大家的支持。哪怕他曾經是一個“臭名昭著”的企業。

1. 安全性---代碼可審查和補丁更新效率

以安全性最為頂尖的Linux為例吧。那些鼓吹Linux的多麼無敵的大神們怎麼遇到這事情就避而不談了?既然是無敵的安全機製。為什麼Linux還要打補丁?而且許多都是安全補丁。Kernel為什麼會被入侵?而且最害怕的是Hacker植入後門代碼。

做了一下調查發現鼓吹Linux安全性的多數都是運維+應用級程序員(包括web和應用軟件開發的)大部分人都沒有詳細的度過linux的源代碼,請問那股無敵的自信哪裏來的。事實上有多少人會因為Linux是開源的使用Linux而更多的是因為免費和高效才去使用linux,事實上因為linux安裝軟件超麻煩要記住N多命令以至於不得不找各種腳本才可以解決那些複雜而多樣的命令的問題。

Linux真的安全麼?開源安全麼?由於開源的混亂和代碼審查工作的不到位。各種被安插了後門代碼和各種隱藏後門一般人就差看不出來的。比如ShellCode被加密起來當作一組什麼常量或者轉換成字符串。當某些特定情況下才會觸發。可是這樣的文檔一般是不會隨著源代碼發布的。(中國的那些自主產權為什麼沒辦法消化?的確拿到了設計圖和專利。)研究的過程和推導的過程才是最重要的。而我們忽略了這個最重要的步驟。這和我們這個社會的哲學觀有關係。老板隻認結果不重視過程,沒有過程哪裏來的結果。真正研發過程隻有研發工程師知道。你拿著研發的結果不知道複雜的過程你根本沒有辦法推導出各種情況和為什麼這麼設計。世界上有太多隻有結果過程因為某些人的消失而永遠弄不清答案的事情了。扯遠了。

如果你弄不清楚他為什麼這麼設計。如果裏麵有一些暗藏後門的邏輯請問誰能審查出來?一般人能檢查的也就是一些語法錯誤簡單的邏輯錯誤。可是真正的邏輯陷阱有幾個人可以審查出來?專業化的審查工具?嗬嗬我想說hacker手裏的審查腳本遠比一般人知道的要多得多的多。否則哪裏會有這麼多漏洞。軟件開發不是人多就能解決問題。否則也不會出現“錢學森一個人頂得上五個師的威力”這句話了。

精巧設計的邏輯漏洞絕大多數的人是審查不出來的。QA更檢測不出來。拋開這個不說單純從代碼安全性上來說。由於是開源的。查找漏洞的方式更簡單。以前我們還需要打開IDA,Ollydbg,Windbg等工具一行行匯編審查。或者fuzz現在我們根本不需要了。直接看代碼就好了。檢查各種函數入口看看有沒有可以利用的地方。專業的hacker會審查這些漏洞然後當作0day存儲起來—實際上發布出來的0day很少很少。當你知道0day發布的漏洞的時候實際上都是過了半年甚至好幾年的漏洞了。這些早就是行業潛規則了私有化的工具私有化的漏洞。

Hacker滲透一個係統首先要收集資料。由於大量的開源導致他們很容易獲取整個網絡架構服務器配置,網關設置信息。這些信息根本無法隱藏。這些都是無法避免漏洞。你指望有一個好像偵探一樣的漏洞挖掘人員可以大公無私的挖掘到漏洞然後第一時間放出漏洞信息麼?可行性幾乎微乎其微。這麼多人研究越獄為什麼隻有一兩個人成功了還藏著掖著放個視頻顯擺一下?因為大家都知道這可以為他帶來可觀的收入,

早年Intel一個浮點數漏洞讓Intel損失好幾億,軟件的一個漏洞損失應該更強才對。在地下某些黑市一個針對遠程溢出的漏洞能炒到幾百萬上千萬的都有。而且願意購買這些東西的人太多了。做黑產地,專業滲透團隊,ZF,黑灰白都有。

請問開源軟件的安全性誰來保證?靠大家監督麼?可行麼?而且許多開源底層一般人也接觸不到。再說有的時候找到漏洞的成本比修補這個漏洞的成本更高。請問開發團隊由收入這個漏洞查找的人誰來給予獎勵?單靠表彰可能麼?

 

2. 質量

絕大部分開源軟件的質量很差。因為大部分開源項目都是一時熱血發布的。自然是想到什麼寫什麼。什麼華麗的技術都用進去,熱血過了咋辦?我想大部分人都沒想過。就和好多人說我愛這個女孩非她不娶,實際上最後結婚的大部分也都不是原來的那個她了。

可是當時覺得我以後肯定會一直愛她(它)會一直一直維護下去的。

大部分參與開源的人一半是覺得自己還行隨份子(大部分開源項目管理者覺得人多好聽自然就是有幾個算幾個隻要有的人都算進來。說出去好聽。我們的項目有好幾個人共同開發。不少都是大學生為了做畢業設計或者其他目的參與的)

完全就是一個雜牌軍。主力開發人員就那麼幾個。好吧這個項目很好很快得到大家的青睞有了一些小型的用戶。靠這樣的撞大運的開發方式能有好的質量麼?

ACE那樣的項目開發者就是為了做實驗寫了一些論文和書。隨後這個項目幾經轉手最後弄得理論上最強大。實際上沒幾個人敢用。

能像MySQL,Linux,GCC這樣的項目少之又少。就這還不算某些大公司背後的陰謀

3. 可維護性,製定性和開源協議

如果這開源團隊不做了。你可以繼續維護這個開源軟件,聽上去很美麗,實際上能自己維護像Linux,MySQL這樣規模很大的軟件能有幾個人?再說我要的是使用而不像做開發人員。我如果有開發能力我自己開發一個好了幹嘛要用它呢?

開源軟件給我們畫了一個很大的餅。大到我們根本沒辦法下嘴去吃它。我承認有一些團隊可以維護Linux,MySQL這樣的工程。可是這些人。要麼是大公司要麼是原開發者另起爐灶搞得項目。一般人根本無法涉及這個領域。

還有軟件各種開源協議。我給XX公司製定的某個MySQL版本增加了他們自己特有的一個什麼技術來改進運行效率。請問我是否要開源?如果必須要開源的話那企業機密和我自己研究的一種新的算法和技術怎麼就平白無故就開源了?如果我不開源是不是就不尊重他人?而且這個協議誰來保證?當別人侵犯了你的權益誰來給你保障?誰來審核是不是有人侵犯你的權益?

開源你就要遵循開源協議。比如阿裏雲為什麼Android會站出來反對?

因為這是Android想做的。阿裏你居然先做了。你居然不按照我設定的步驟走,我就搞死你。開源軟件真的是“開源”的麼?就和ARM的協議一樣

有許多個版本。有你想怎麼修改就怎麼修改的,有你隻能外圍修改的核心不能動的,還有你根本不能動隻能“免費,自由”使用的。

開源協議看似我開源的。實際上背後的條條框框你知道麼?

你必須遵循我的約定。你能在我的上麵修改的東西很有限。超過了協議約定我會告死你的。。。

4. 自由,免費,專利與開源協議的法律約束

許多人說開源不等於免費。好的請問你都開源了你如何保證別人會使用你的程序還會付錢給你?你沒辦法保證。包庇centos和rh一模一樣rh去告centos了麼?你都開源了你管別人怎麼用了。

軟件免費了。請問開發者的開發費用誰來支付?基金會?反過來想一下。是不是我們都是基金會的廉價勞動力?隻是冠以開源的名義做著和那些IT企業一樣壓榨勞動力的事情?

調查了許多開源協議。除了某些義務開源(比如MIT,BSD之類的協議)其他的協議要麼是你用了某軟件必須要聲明,或者修改了要開源,或者個人版免費,企業使用要收費。大家哪裏有這麼好的自覺性?那請問收入如何保證?

所以大公司的開源項目大部分都不可能是完全開源協議。

大公司領導的開源項目。項目中有技術含量的早就被申請專利了。他隻是不說在開源協議中提到一下。然後給你免費使用哦。一旦你的所有開發都給予這個平台的話。有一天他要說我要收專利費了。我們的項目已經完全的捆綁上去了。我們怎麼辦?

想想轉基因農作物的專利陷阱的問題,老外怎麼這麼好讓你免費用他們的轉基因專利?

沒人想想背後的故事麼?

開源協議在說什麼?有人研究過開源協議麼?我覺得大部分人對於開源協議的了解僅僅是開源了不需要付出任何代價,這個你修改了你也要跟著開源。僅此而已。剩下的那些霸王條款有人去研究過麼?

 

5. 技術支持和第三方服務

開源軟件大部分安裝都很麻煩。甚至有些不提供Bin直接Src自己愛怎麼折騰就怎麼折騰。出錯了不知道找誰去社區問,有不錯的社區會建立一個QA手冊。如果遇到一些QA沒有的問題怎麼辦?靠開發人員自覺的跟蹤回答?如果需要上門服務呢?需要比較專業的技術支持呢?費用誰來承擔?有明碼標價麼?

而且大部分軟件都很不負責任的寫一句“風險自行承擔,開發團隊概不負責”這樣的話。請問你看到這句話就和看到“最終解釋權歸本公司所有”是不是一樣的氣憤!

當然大部分人覺得沒什麼感覺那是因為你沒有造成損失過。如果你真的因為使用軟件而造成嚴重損失你就知道。技術支持和第三方服務的重要性了。

 

6. 支持開源項目的幕後---誰才是最終獲利者

這個問題估計大家都很關心。開發人員希望有一份自己想開發就開發。而且有零花錢的項目。國內幾乎沒什麼基金會,國外有因為他們有收入和捐款。而且大部分都是大公司背後支持的。這個東西發展的不錯最後就把她收購了。

而真正的開發人員最後就成了一種“被開源”的廉價勞動者

逆向思維一下。開源項目都是什麼人?

  1. 大基金會支持的項目
  2. 大公司支持的項目
  3. 大學或者科研機構
  4. 超有責任感超負責任而且可以拿到開發資源的“神人”

按照目的排列一下

  1. 實驗性項目隻是為了做實驗而已-成熟的技術會另外收入商業產品中。比如RH
  2. 名聲,企業形象。開源一些可有可無的東西。比如微軟,SUN等等,國內新浪,網易,淘寶等等
  3. 商業目的。例如Intel為什麼嘛支持Linux開源?把自己公司生產的硬件需要用到的驅動或者一些軟件做到Linux上。隨著Linux或者其他開源項目的順風車灑滿整個世界(就和植物的果實,還有蒲公英一樣)微軟搞得IronPython,Mono,還有許多其他的東西
  4. 技術領先目的。這個說的有點遠。考慮一下為什麼美國和蘇聯當初都對中國或者其他國家有過技術支持?僅僅是因為政治麼?

中國剛起步需要技術,蘇聯援助中國,那中國隻能跟著蘇聯技術路線走。我們就被他們死死的捆綁了。我們始終隻能獲得他們的二流技術和仿製品。從中國的各種武器就能看出來。幾乎就和蘇聯當初一個德性。

美國支持日本和韓國的技術發展是不是也是抱著這種目的呢?帶你走入美式路線當你完全進入的時候。你就始終落後於他。這些老大哥們就可以牢牢地控製住技術發展路線。誰都想知道對方有什麼技術,既然無法阻止別人研發,不如就讓別人跟著自己的路線走。反思條條大路通羅馬為什麼非要跟他們走?

我們的祖先以前科技發展非常迅勐而且領先,自從滿人入關以後廢漢學興西學所以我們一直落後於西方。西方人卻在偷偷的學我們老祖宗的東西。現在反思一下我們是不是一開始就落後於西方呢?

  1. 希望世界更美好更和平人們相互關懷愛護,拾金不昧,視如己出……

說了這麼多相信大家都知道我的意思了。老外在各個行業上壓榨與我們。

冶金,材料學,醫學,電子,糧食,轉基因幾乎所有行業。怎麼軟件行業突然這麼大方起來了?給予我們免費的編譯器使用,教我們如何使用他們的工程和代碼。

把我們一步一步培養成隻會使用他們開源工程的碼奴。還提出各種封裝思維。你不用懂我們是怎麼做的。你隻需要知道怎麼用就好了。底層我們來弄就好了(其實我跟你們說底層吃力不討好的。沒意思的,研究要花許多錢還沒收入的。這樣的髒活累活我們做)

於是我們就成了隻會使用別人開源工程和底層的一群碼奴了。

就和中國製造一樣。進口人家的設備和原材料。生產了東西賣給別人。看似是一筆不錯的生意。實際上我們失去了許多。我們技術受製於別人,生產的東西還沒有很高的附加值。而且各種貿易費用都要我們負擔。開源真的就這麼美好麼?

開源項目中的專利陷阱我們發現了麼?

 

7. 技術開源與世界局勢---我們的未來在哪裏

現在生產和原料不占優勢。中國在海外投資礦產有幾個發財的。賠本的倒是見過不少。為什麼人家有礦產自己不開發等著我們開發。我們自己還賠本了呢?相信這樣的新聞大家肯定知道的比我多。為什麼?這個世界已經從單一的原料出口向高端技術和商業運作上發展了。搞開源的估計都不喜歡微軟和甲骨文。甲骨文見一個收一個再把開源項目搞死。微軟死活不開源。Apple呢?有人喜歡Apple麼?估計也都不怎麼喜歡吧。至少在Apple開源以前大家都不喜歡它…難道我們就是因為他們貢獻代碼了才喜歡他們的麼?

為什麼好好的壟斷不做他們去做開源?有什麼陷阱麼?老外的智商和商業運作玩的比我們先進這麼多。為什麼會這麼大方的在開源?突發善心?

就像上麵我說的。生產和原料不占優勢了。現在占優勢的隻有高技術和市場運作方式。

高技術有專利來保證。Apple是專利流氓芝麻大點的東西都要去申請專利。那再軟件上是否也是默默地這麼做了呢?或者說以後我們連寫 if while都要付專利費給別人呢?

我想大部分搞開發的人都知道。公司裏每年都會有一筆獎金是給那些有專利的開發人員的吧。雖然少的可憐。但是有總比沒有好。為什麼?因為專利就是公司的法律籌碼!

調查過一些商業開源失敗的案例。舉個最近的例子吧。DOOM3都玩過。卡馬克大神開源了。可是裏麵由於Carmack's Reverse技術被另外一家公司申請了專利(學名z-fail stencil shadows現在不少顯卡都集成了這個功能)。DOOM3麵臨著開源就遭遇專利危機。一般人也就是算了不開源了。卡神不愧是卡神。自己開發一種替代技術來解決這個問題。

關於軟件的案例不多,但是足以看出來開源軟件是否也暗藏專利陷阱呢?技術是你研發的沒錯。但是不代表別人不能拿你的技術申請專利。那些美妙的開源基金和公司是否也在背地裏做這些見不得人的勾當呢?請問你敢說沒有可能麼?

他們發布出去的隻是代碼。設計文檔沒有開放。我們知道老外是最重視文檔的,每個模塊用了哪些技術為什麼使用這個技術—這個技術的專利屬於哪家公司。難道你能覺得他完全沒有做過記錄麼?真的因為開源軟件打起專利官司我們這些使用者和二次開發商肯定死定了…

現在你還會覺得“開源軟件”是玫瑰(不解釋)而不是罌粟(不解釋)麼?

開源軟件引領著技術風潮。開源軟件刺激技術發展。然後開源基金在幕後操縱著社區開發者。獲得大量的開發資料和新的設計思路,然後偷偷的申請專利.誰能保證沒有?

別的國家都在做基礎研發,因為基礎研發比較透徹所以人家各種專利技術和底層穩定性做的非常好,於是他們利用開源軟件來收集各種資料,數據和設計思路。然後軟件的所有權還歸他們基金會或者公司所有。

高技術和所有權。通過技術專利和基金會的項目所有權而全權壟斷了。他們壟斷著上遊

就像我說的。協議中最後一句“解釋權歸本公司(基金會)所有”那是不是意思就是說。項目中的技術和專利也都是屬於支持的基金會和幕後公司所有呢?

我們吵著軟件專利阻礙軟件發展,那硬件又可況不是如此呢?開源硬件又如何?你不掌握製造技術,生產技術,研發技術,就算讓你組合起來能成為一個產品。你又要付出多大的代價呢?當這個世界進步的同時。各種陷阱和戰爭也在悄然埋下伏筆不是麼?

寫在最後:

有許多人會覺得我危言聳聽。可是我舉得這些例子和說的一些事件大部分人都知道,誰也沒辦法完全否定我說得這些事情。我們究竟是因為別人喊了一句“開源”我們就成了開源世界的阿Q,還是我們是真正的技術先鋒呢?沒有組織的開源是不是會被國外的基金會當槍使呢?被“G命”這句號召感召的人們最後成了現在這些“寄生X”的墊腳石了。我不希望我們也是被“開源”這句號召犧牲的一代人。

我真心希望能讓大家引起思考。而不是一下子站出來說。你文中這個不對那個是錯的。你不懂開源精神。你說的這些我都懂,這篇文章我沒有深思熟慮細致考究。我隻是臨時有感而發寫成的,我覺得我們需要的是反思!而不是相互攻擊。思考我們的出路在哪裏。。。

最後更新:2017-04-02 15:15:22

  上一篇:go 國內電商太脆弱:重市場營銷 輕IT基礎建設
  下一篇:go 蘋果恐慌性發布新品遭受質疑