何正方 梁宇


摘? 要: 本文首先從開源的定義,開源協議的介紹,開源開發者的動機三個方面介紹了開源軟件的背景。然后通過對Linux的誕生、發展和市場占有率,谷歌和甲骨文關于Java的版權之爭,Android和iOS在移動終端市場中的市場占有率分析,TensorFlow的巨大成功四個案例分析,得出開源對軟件行業發展有積極的推動作用。但是,并不是要將所有軟件都開源。在軟件行業的發展過程中,開源和閉源各有優勢,它們將長期共存,共同促進軟件行業持續、健康、穩健的發展。
關鍵詞: 開源;Linux;Java;Android;iOS;TensorFlow
中圖分類號: TP30? ? 文獻標識碼: A? ? DOI:10.3969/j.issn.1003-6970.2019.07.023
【Abstract】: This article introduces the definition of open source, open source software license, the motivation of open source developers firstly. Then analysis Linux, Google and Oracle dispute over Java, market share of Android and iOS in the mobile terminal market, TensorFlow huge success. Through data, comparative analysis, come to the open source to the software industry development has positive role in promoting. However, not all software needs open. In the development of the software industry, open source and closed source each have their own advantages. They will coexist for a long time to promote the development of the software industry sustainedly, healthily and stably.
【Key words】: Open source; Linux; Java; Android; iOS; TensorFlow
0? 引言
源代碼是大多數計算機用戶從未見過的軟件的一部分,軟件開發人員可以通過修改源代碼來改變一個應用程序的工作方式。開源軟件(英語:Open-Source Software,英文縮寫:OSS,中文也稱:開放源代碼軟件)是一種在開源協議下源代碼可以被任意獲取和修改的計算機軟件,這種軟件的作者在軟件開源協議的規定下保留一部分權利并允許任何使用者修改和重新發布軟件(重新發布的軟件也要遵守開源協議),同時任何組織和個人都可以免費使用開源軟件[1-2]。與開源相對應的閉源軟件僅可獲取編譯后的二進制可執行文件,只有擁有軟件著作權的自然人擁有程序的源代碼。部分開源軟件代碼被發布到公共互聯網上,被世界各地的開源擁護者合作開發[3],誕生了很多偉大的軟件產品,比如
Linux、Android、TensorFlow等。不是只有軟件開發人員才能從開源中受益,普通用戶也可以將開源軟件用于任何他們想要的目的。在本文中,重點將放在開源軟件給軟件行業帶來的變化的討論。
1? 開源協議與開發者的動機
1.1? 開源協議
開源軟件的源代碼是開放的,任何自然人都可以自由使用和重新發布。同時,為了維護開源的作者和貢獻者的合法權利,保證這些軟件不被商業機構或個人竊取,影響開源軟件的持續健康發展,開源社區提出了各種開源許可協議。開源協議是對軟件的授權類型、權限和義務而定義的規范,開源協議確保了使用者可以免費的修改和發布軟件[4]。人們不容易區分一個軟件是否真正開源,原因在于開源社區認可的協議有六十多種。常見的開源協議有:BSD、Apache Licence、GPL、LGPL、MIT等。但在這六十多種許可中,GPL(General Public License,通用公開許可協議)是開源協議的主流。GPL是目前開源世界中最重要的許可,根據谷歌的研究,基于GPL的開源軟件在開源世界中占45%-50%。
1.2? 開源開發者的動機
現在開源軟件的開發已經受到了如此多的關注,但是為什么軟件開發者應該免費向社區提供他們的服務。顯然,利他主義并不是唯一的答案。重要的是要理解為什么軟件開發者應該免費向社區交付他們開發的代碼,要理解這一決定背后的動機。
事實上,只有當一個軟件開發者能夠從軟件項目中獲得一些凈收益時,才會參加到這個軟件項目中,這個收益可以是直接的回報(當前的利益減去當前的成本)或者是延遲的回報(延遲的收益減去延遲的成本)[5]。當參與一個軟件項目時,軟件開發者會陷入各種各樣的成本和收益中。當然,主要的成本還是軟件開發者開發軟件所需的機會成本。如果軟件開發者正在為一家公司、大學或研究實驗室工作,那么獨立開發軟件將不可避免地讓他耗費更多的精力,就機會成本而言,這是非常昂貴的。
以上提到的機會成本可以有兩項直接利益補 償[5]。首先要考慮的是,在開發開源軟件的同時,如果他的工作是開發相同的領域的軟件,那么軟件開發者可能會提高他當前的工作效率(如果他目前在一家公司、大學或研究院工作);第二個好處是開發一個有趣的、吸引人的軟件可能比普通任務更有挑戰性。
還有一些延遲的回報可能會讓那些為開源軟件工作的軟件開發者受益。一是與未來的職業發展有關,因為如果軟件開發者工作得很好,并且將自己
與其他軟件開發人員區別開來,他們可能會被那些正在尋找軟件開發專家的公司注意到(并最終被雇傭)。另一個延遲的回報來自于自我滿足,軟件開發者所完成的有價值的工作,可以從社區得到別人的肯定。這些激勵與開發開源軟件的動機有著密切的聯系[6]。
同時開源軟件的另一個很吸引人的地方是別人不用花時間來解決同樣的問題。當你查到你的一個項目已經有人做了開源項目后,你就不需要花時間做重復的工作。同樣,有人用了你的開源項目幫他解決了一個實際問題后,你將會很有成就感[7]。
2? 開源案例分析
2.1? Linux的誕生、發展和市場占有率
Linux是一個自由和開放源代碼的操作系統。是目前運用領域最廣泛、使用人數最多的操作系統。該操作系統的內核由Linus Torvalds在1991年10月5日首次發布[8-9],Linux是開源軟件發展中最著名的例子。只要遵循GNU協議,任何個人和機構都可以使用Linux的所有源代碼,也可以修改和再發布。大多數Linux系統還提供圖形化操作界面,多數人都是直接使用Linux的發行版,而不是自己整合各種組件。
Linux嚴格來說是指操作系統的內核,操作系統還包含了用戶圖形化操作界面和一些實用工具。如今的Linux通常指基于Linux的完整操作系統,內核則稱為Linux內核。
Linux最初只是作為支持英特爾x86架構電腦的一個操作系統,后來Linux被移植到很多計算平臺,其中服務器操作系統遠遠超出其他服務器操作系統,數據參考表1。
目前世界上前500個超級計算機,99%以上都是運行Linux操作系統[10],最快的前十名超級計算機都運行著Linux操作系統[11]。歷史數據參考表2,從數據中也可以看到越來越多的超級計算機使用Linux作為操作系統,這同Linux是開源的有著密切的聯系。
Linux也被廣泛應用到嵌入式操作系統上,如智能手機、平板電腦、智能電視和電子游戲機等。移動設備上使用廣泛的Android操作系統就是基于在Linux內核開發的。
通常情況下,Linux被打包成供個人電腦和服務器使用的Linux發行版,一些主流Linux發布版,包括Debian(及其派生版本Ubuntu、Linux Mint)、Fedora(及其相關版本Red Hat Enterprise Linux、CentOS)和openSUSE等。Linux發行版包含Linux內核和支撐內核的系統庫,通常還帶有很多可以滿足各種需求的應用程序。個人電腦使用的Linux發行版通常還包含一個相應的桌面界面,如KDE或GNOME。桌面Linux常用的應用程序有Firefox瀏覽器、網易云音樂、GIMP圖像編輯工具、Atom文本編輯器等。
今天眾多場合使用的都是各種Linux發行版,小到嵌入式設備,大到超級電腦[16][17],并且在服務器操作系統領域中有很高的市場占有率[18],同時在家庭與企業中使用Linux發行版的也越來越多[19]。在政府中也越來越受歡迎,巴西政府因支持Linux而聞名[20]。報道稱俄羅斯軍隊自己開發的Linux發行版,做為G.H.ost項目已經應用到實踐中[21]。印度的Kerala計劃在向全聯邦的高中推廣使用Linux[22]。中國為獲取在操作系統技術的獨立,在開發龍芯過程中使用Linux[23]。西班牙也開發了自己的Linux發行版,并且廣泛使用到政府與教育領域中,如Andalusia地區的Guadalinex。北朝鮮的Red Star操作系統開發于2002年,它是基于Fedora Linux的一個版本[24]。
2.2? 谷歌和甲骨文關于Java的版權之爭
整個案件過程大致如下[25]:
2016年5月,經過兩個星期多的審理,再經過三天的審議后,聯邦法院最終判定谷歌旗下的Android操作系統并沒有侵犯甲骨文的Java版權,谷歌對Java APIs的使用是“正當”的,并且駁回了甲骨文對谷歌高達90億美元的巨額訴訟請求,結束了長達六年的訴訟大戰[26]。
回顧2010年,甲骨文通過收購Sun公司而獲得了Java的版權。甲骨文在收購Sun公司之后不久,就試圖讓谷歌向其支付高額的Java版權使用費,但遭到了谷歌的拒絕。雙方就此事進行了談判,但最終沒有達成共識。緊接著,甲骨文就將谷歌告上了法庭[27]。
谷歌在辯護中的認為,Java應免費提供給任何用戶使用。谷歌稱,Sun公司前首席執行官Jonathan Schwartz可以就此出庭作證。Schwartz作證稱,谷歌的確可以免費使用Java的APIs[27]。
陪審團的問題只有一個,即谷歌在使用Java APIs的時候是否在法律允許下正當使用。全體陪審團一致認為“是的”,全票通過,谷歌勝訴 [26]。
谷歌公司發言人也通過聲明稱,“今天的裁決表明,谷歌是在合理使用Java APIs,這代表著Android生態系統的勝利、Java社區的勝利、以及依賴用開源來打造創新消費產品的個人或公司偉大勝利。”[28]
2.3? Android和iOS在移動終端市場中的市場占有率分析
Android的中文名稱為安卓,是一個基于Linux內核的開源移動終端操作系統,谷歌以Apache
時間事件2005年谷歌收購Android,其使用的編程語言是Java語言,谷歌試圖與擁有Java語言的Sun公司談判,但最終沒有拿到授權。2006年谷歌拒絕了Sun的協議:花費2000萬美元使用三年Java,與Android 相關的收益的10%歸Sun公司所有,最高為2500萬美元。2007年谷歌開源了安卓操作系統和基于Java的Dalvik虛擬機。2010年甲骨文收購了Sun公司的Java專利和版權,同時指控谷歌侵害了Sun公司的7項專利。2012年甲骨文和谷歌在舊金山州地方法院就Java版權案開庭,谷歌勝訴,甲骨文隨即上訴。2014年聯邦法院否決了地方法院的判決,判定Java的APIs是甲骨文的版權。2016年聯邦法院對谷歌使用Java的APIs 進行二次判決,判定谷歌使用Java的APIs是合法的。