當前位置:
首頁 > 科技 > 開源不就是免費嗎?

開源不就是免費嗎?

作者| 余軍

整理 | 王曄倞

責編 | 郭芮

在許多程序員心裡,提起開源,第一印象會想起如免費、基金會、社區、自由等富有正義感的一些名詞,而一提起License,不僅會聯想到Oracle、微軟等企業,而且還會跟巨額收款聯繫起來。

簡單說,在刻板印象中,我們深信開源代表著正義與自由,而閉源卻是剝削與邪惡的化身。但現實情況真是如此嗎?

為了加深大家的理解,結合維基百科,我對時間軸進行了梳理。

開源是正義的?閉源是邪惡的?

先看60年代-70年代,整個開源軟體並不像現在具有很高的流通性,大部分使用領域集中在軍工單位,並多半採用項目制的方式進行。

直到1976年2月3日,比爾·蓋茨給電腦愛好者們寫了一封公開信,抱怨未經授權使用Altair BASIC的情況太普遍,導致新成立的微軟公司回報甚微。這封信相當有名,被看作是軟體通過商業授權獲取收入的真正開端。

也就是說,解決了軟體流通性的問題。而License模式的核心是解決所有權問題,就是不管個人也好,企業也好,我通過自己的智慧或資源投入後製造了一個軟體,然後該如何將這個軟體在市場上合理、合法的進行流通呢?獲得許可證的人或單位,你只有使用權,不擁有所有權,而在這個之前,無論你給誰做項目,項目所產出的軟體所有權,都將歸屬這個項目,因為這是個合同。

說到這裡,也許有人會問,那麼許可證模式與開源模式所倡導的宗旨是不是背道而馳?

這類似《黑客帝國》中的場景,有黑就有白,有正就有反,在Richard Stallman(GUN Emacs之父)這幫人看來並不是這樣,他們想的更加長遠。他覺得人類的成果,不應該被任何一家機構或個人壟斷,他是基於這個出發點進行工作的,最終他建立了GNU和自由軟體基金會。

到1983年,Richard Stallman在net.unix-wizards新聞組上公開發起GNU計劃,宣布它的目標是創建一套完全自由的操作系統,並附帶一份《GNU宣言》。在該宣言中,Stallman聲稱發起該計劃的一個重要理由是要「重現當年軟體界合作互助的團結精神」。

次年1984年1月,Richard Stallman啟動GNU計劃,由於GNU是公開源代碼的,為了防止不肖廠商利用自由軟體,使其專有化,他創造了Copyleft的授權辦法,讓所有的GNU程序遵循一種「Copyleft」原則,即可以拷貝,可以修改,可以出售,但必須遵守「源代碼所有的改進和修改必須向每個用戶公開,所有用戶都可以獲得改動後的源碼」的原則。

在隨後的四十年間,開源與閉源兩條線都按照自己的規則發展著,尤其是閉源軟體,由於有License這樣好的模式,對許多中小型軟體公司的知識產權起到了保護作用,催化了其蓬勃發展的速度,其中最有代表性的就是微軟。

因此,對於開源界而言,在很長一個階段中,主要的對手就是微軟。這個對抗,不是憑空想像出來的,微軟在其領域投入的人力物力是我們想像不到的,他們對開源界是感到害怕的,並且制定出了一套完整的對抗戰略,最有名的是 「F.U.D戰術(fear, uncertainty, and doubt)」。

到今天為止,微軟卻悄悄地成為了全球對開源支持力度排名第一的公司,比如.net底層框架也已全面開源,最近又聽說給某開源基金會捐獻了2000+的專利。

三國演義開頭的那句話怎麼說來著?天下大事,分久必合,合久必分,這不僅是軟體工業的發展,也是當今開源與閉源之間交互的方式。

當今那麼多開源軟體,選擇時應注意些什麼?

一般在進行閉源軟體選型時,如果被問到哪個好用?哪個適合?國內許多技術負責人幾乎都會從軟體功能、廠商支持,或當下應用開發與運維團隊的承接能力來考慮。雖說這些都屬於純技術維度,但像Oracle、微軟這樣的企業的確值得信賴,他們有董事會、產品團隊、銷售與售後,它的閉環體系保障了質量。

然而,開源軟體並不是這樣的。它是一個開放性的結構,從生產一直到進入流通市場,依賴的並不是某一家公司,而是社區。

如果在開源技術選型時,我們依舊效仿傳統做法,問一些價格怎麼樣?功能和測試如何?培訓和後期服務如何?最多再問一句,你這個技術是符合前沿科技嗎?無論商業公司給出什麼樣的答覆,只要你最終選擇,那也許你已經給未來埋下了坑。

為什麼這麼說呢?先來了解一下整個開源軟體生態體系吧。

如果你把整個開源軟體生態體系看成一家公司的話,基本可以這樣概括:

類似RedHat這樣的企業,是商業化的交付團隊;

類似Apache開發社區,是產品開發團隊;

類似Apache基金會,是董事會和決策層。

許多國內公司在進行架構選型時,不僅不了解其背後的開發社區與基金會是誰,更不知道其創始人是誰,當業務進入大規模使用之後,一旦生態上層出現問題,那就容易栽更頭。

大家還記得當年MySQL與Oracle,及MariaDB之間的恩恩怨怨嗎?

2008年2月26日,當時的SUN公司宣布以約10億美元價格對開源資料庫開發商MySQL併購。

2009年4月20日,Oracle以74億美元收購Sun。

2010年1月,MySQL創始人邁克爾·維德紐斯(Michael Widenius)聯合部分相關人士向歐洲、中國與俄羅斯的監管機構提交了反對意見。

2010年後期,Michael Widenius離開甲骨文,創辦MariaDB,完成了對MySQL的 「反戈一擊」。

…………

由於Oracle與歐盟之間的反壟斷協議至2020年結束,MySQL會變更為許可證模式嗎?

2017年9月,開源資料庫初創公司MariaDB獲阿里2000萬歐元融資。

…………

以上這些信息,也許由於時間跨度有一些失真,但這一樁樁事件對下游廠商與最終客戶造成的影響卻是真實存在的。比如紅帽從Redhat7版本之後,已將預裝MySQL改為預裝MariaDB,而此時,你的應用正大規模的使用MySQL作為核心資料庫,你該何去何從呢?

開源軟體基金會是如何盈利的?

經過上面的介紹,我們可以把開發社區的職責簡單概括為項目開發,工作內容是將一個開源軟體穩定的做出來,那麼誰對整個社區的方向決策負責呢?委員會,準確的說是採用自由管理的委員會行使管理,而其中多半來自於上層頂級基金會。

在許多人的腦海中,一聽到某某基金會,第一印象一定是中國紅十字基金會,或證券投資基金業協會這樣的非營利性組織,他們像天使那樣,不在乎收益,為這個世界做著無私的奉獻。

如果你真這麼想,那就大錯特錯了。簡單說,從某種意義上來講,基金會,等同於商業品牌。

隨著開源軟體使用範圍的擴大,開源軟體基金會的涉及範圍也從開源領域逐漸蔓延至整個軟體工業領域,這也促使了這些基金會不僅越來越有錢,而且涉及眾多軟體工業領域的核心內容。與中國不同,在美國,基金會也是公司的一種形式,也是可以盈利的,只不過不能通過服務與產品銷售的方式盈利。

那它靠什麼盈利?

首先,一些頂級基金會實際控制著許多技術的核心環節,如操作系統、通訊協議等。以Linux基金會為例,比如證券交易中HFT(高頻交易)部分的演算法定義和規範定義,是歸屬Linux基金會的,再比如金融信息交換協議(FIX) 在報文當中轉換到AMQP消息協議,也是由Linux基金會參與確定的。又比如5G通訊中,與開源相關的報文協議相關的內容部分的,也是有由Linux基金會參與確定的。

舉個例子,某年某月,IBM想推出某新款Linux X86伺服器,為了增加銷售力,打算在Linux內核中新增對當今某項熱門插件的支持,那該怎麼辦呢?IBM先要找到Linux基金會,並委託其管轄的Linux內核開發社區進行開發,而IBM則要為整個過程所產生的一切費用買單。還有,如果此時HP也發布相同款產品,就會與IBM產生競爭關係,也就是說哪家廠商的需求優先被合併到Linux內核主幹,誰就取得了商業先機。因此,兩家廠商將會向Linux基金會進貢,並向林納斯·托瓦茲(Linux之父)這樣的核心人物提供孝敬,以希望得到更多的支持力度。

總而言之,大家可以把開源軟體基金會設想成公司,開發社區則扮演了項目開發團隊的角色,只不過團隊中的成員分別來自於不同的地區和公司而已,而從事開源方案與服務的商業公司充當了需求方的角色。

寫在最後

說真的,上面的內容幾乎粉碎了我對開源世界的幻想,讓我重新建立了認知。但作為一名程序員,尤其是當下的程序員,緊跟開源領域的熱點動向,認清開源世界的服務與支持,無論對自己的知識結構,還是對將來的職業發展,都會起到不小的作用。

每月TGO小組的聚會我都十分期待,這篇文章即來源於本月PingCAP首席架構師余軍的分享。他介紹了其在開源軟體治理方面的心路歷程,讓組內其他小夥伴瞬間變成 「追星族」,拿起紙,抄起筆,認真學習了一把。為了讓這樣精彩的話題得到更有效的傳播,我將本次的內容進行整理。最後,感謝余軍的分享,也歡迎大家在評論區就開源治理進行討論。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

什麼樣的備份容災系統才真正適合雲化數據中心?
華為 Mate20 Pro 曝解鎖缺陷;李飛飛 AI 新動向|極客頭條

TAG:CSDN |