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