真的了解開(kāi)源么?

沒(méi)有開(kāi)源軟件,現(xiàn)在的互聯(lián)網(wǎng)根本無(wú)法存在,開(kāi)源的歷史可以追溯到ARPANET建立。開(kāi)源在今天已經(jīng)不再是一個(gè)時(shí)髦的詞了,對(duì)于互聯(lián)網(wǎng)的開(kāi)發(fā)者來(lái)說(shuō),它現(xiàn)在就像空氣和水一樣,就在我們的生活中。


來(lái)自https://octoverse.github.com

如今的主流開(kāi)源參與者,不再只是個(gè)人愛(ài)好者,更多的是著名IT企業(yè)的員工,商業(yè)公司也紛紛支持。IT企業(yè)投入了大量人力在各個(gè)開(kāi)源社區(qū)和項(xiàng)目上,包括開(kāi)發(fā)測(cè)試,項(xiàng)目協(xié)調(diào),運(yùn)營(yíng)推廣等。

什么是開(kāi)源

從軟件的版權(quán)屬性和發(fā)布方式上看,軟件的分類如下:

軟件的分類

開(kāi)源軟件被定義為描述其源碼可以被公眾使用的軟件,并且此軟件的使用,修改和分發(fā)也不受許可證的限制。開(kāi)放源碼軟件通常是有copyright的,它的許可證可能包含這樣一些限制:蓄意的保護(hù)它的開(kāi)放源碼狀態(tài),著者身份的公告,或者開(kāi)發(fā)的控制。

簡(jiǎn)單的說(shuō),開(kāi)源就是源代碼開(kāi)放和開(kāi)源許可協(xié)議的選擇。開(kāi)源意味著用戶可以免費(fèi)運(yùn)行,自由學(xué)習(xí),免費(fèi)二次分發(fā)以及自由修改改進(jìn)。

開(kāi)源許可協(xié)議及選擇

開(kāi)源許可協(xié)議大概有上百種,例如:

  • Apache License 2.0 (Apache-2.0)
  • 3-clause BSD license (BSD-3-Clause)
  • GNU General Public License (GPL)
  • GNU Lesser General Public License (LGPL)
  • MIT license (MIT)
  • Mozilla Public License 2.0 (MPL-2.0)
  • Eclipse Public License (EPL-1.0)
  • ...

但是,常見(jiàn)的開(kāi)源許可大約10種,主要有類似GPL,類似BSDL和類似MPL等。

GPL

GPL給軟件以版權(quán)保護(hù),使用GPL,可以獲得復(fù)制、發(fā)布和修改這些軟件的法律許可。

GPL的特殊性是 copyleft 與自由的病毒式傳播。在所有開(kāi)源許可證中,GPL 的最大特色在于它的“copyleft”規(guī)則。 它嚴(yán)格地控制基于自由軟件的集合作品或者衍生作品,GPL 第 1 條將其稱為“基于程序的作品”,發(fā)布規(guī)則很簡(jiǎn)單,只要使用了 GPL 下的自由軟件,那么衍生作品以及集合作品的發(fā)布都要基于GPL 之下。

類似的開(kāi)源許可證AGPL、LGPL…等等,是一種相對(duì)理想的是實(shí)用主義。

BSDL

BSDL主要適用于 Apache 服務(wù)器和基于 BSD 的操作系統(tǒng)項(xiàng)目(FreeBSD、 OpenBSD、 NetBSD),不排斥對(duì)開(kāi)源軟件的商業(yè)利用,有實(shí)用主義的觀點(diǎn)。

BSDL 的特殊性是被許可人的絕對(duì)自由,對(duì)被許可人做了最少的限制,只要尊重原作者, 合理恰當(dāng)?shù)貥?biāo)明了源代碼的出處,被許可人將不受限制于將這些源代碼用在自己的程序中而按自己的要求進(jìn)行程序的發(fā)布和軟件的許可、產(chǎn)生衍生作品后僅以目標(biāo)碼的形式發(fā)布,等等。這意味著可以從 BSDL 的開(kāi)源軟件中衍生出私有軟件。

類似的開(kāi)源許可證有Apache 、MIT等等。

MPL

MPL是1998年初Netscape的 Mozilla 項(xiàng)目組為其開(kāi)放源代碼軟件項(xiàng)目設(shè)計(jì)的開(kāi)源許可證。

MPL的特殊性是在開(kāi)源軟件許可證譜系中接近于 BSDL,但它帶有強(qiáng)烈的商業(yè)化特征,為公司保留了相當(dāng)?shù)臋?quán)利,相當(dāng)于集開(kāi)源之力,都為我所用。

類似的開(kāi)源許可證 Apple 公共代碼許可證(1.2)、Sun 公司的SISSL和 Sun 公共許可證 (1.0)、Nokia 開(kāi)放源代碼許可證(1.0a)、 IBM公共許可證(1.0)等等。

如果選擇一個(gè)開(kāi)源協(xié)議呢?烏克蘭程序員Paul Bagwell給出了一張分析圖,如下:

開(kāi)源協(xié)議的選擇

國(guó)內(nèi)的阮一峰在博客上給出了簡(jiǎn)化的版本:


開(kāi)源許可證的簡(jiǎn)單選擇

除了Linux操作系統(tǒng)外,一個(gè)可能是最成功的復(fù)雜開(kāi)源系統(tǒng)體系可能對(duì)理解開(kāi)源許可協(xié)議有幫助。

Android 的開(kāi)源許可體系

Android有關(guān)linux內(nèi)核部分采用GPLv2協(xié)議開(kāi)源,有關(guān)userspace采用ASLv2(Apache協(xié)議版本2 )協(xié)議開(kāi)源。

android中的開(kāi)源許可

GPL和非GPL的分界線在于一個(gè) Bionic Libc 的庫(kù)。 頭文件由Linux內(nèi)核的同名頭文件自動(dòng)生成,用來(lái)獲取完成用戶空間系統(tǒng)調(diào)用的必要信息。它只包含原頭文件中的常數(shù)、結(jié)構(gòu)和宏定義,因此,不包含版權(quán)信息。讓 GPL 止步于內(nèi)核空間被 Linux 內(nèi)核的作者 Linus Torvalds以及其他的內(nèi)核開(kāi)發(fā)人員多次澄清,普通系統(tǒng)調(diào)用為非 GPL 的作用范圍。

Android 在用戶空間與內(nèi)核空間之間存在著硬件抽象層 HAL,HAL 類庫(kù)本質(zhì)上一種用戶空間的驅(qū)動(dòng),其中的主要用途之一就是規(guī)避GPL。硬件廠家把需要保護(hù)的商業(yè)機(jī)密以及知識(shí)產(chǎn)權(quán)相關(guān)的邏輯放在 HAL 層,以二進(jìn)制包的方式發(fā)布,不需要公開(kāi)源代碼。

PAX專利聯(lián)盟是Google 加強(qiáng)它對(duì) Android 控制力 的另一種手段。手機(jī)廠商想要采用這些免費(fèi)的專利,就不得不 預(yù)裝 Play 商店及一系列Google 應(yīng)用。

開(kāi)源與專利

將開(kāi)源代碼修改后,自己申請(qǐng)軟件專利是可能的,這取決于具體的開(kāi)源許可證。MPL禁止將開(kāi)放源代碼以許可證形式許可后再去申請(qǐng)與這些源代碼有關(guān)的專利的行為。BSD,Apache等對(duì)于專利申請(qǐng)沒(méi)有限制。

就Ricoh,SISSL,NOKOS,AFL,Artistic,APSL等開(kāi)源許可而言,貢獻(xiàn)者將自己享有實(shí)質(zhì)專利權(quán)的技術(shù)加入開(kāi)源軟件的,視為源代碼的專利權(quán)人將該專有權(quán)利向公眾許可。

使用代碼掃描工具如Black DUCK或Openlogic等,能夠?qū)Υa進(jìn)行合規(guī)性檢查,通過(guò)掃描源代碼,發(fā)現(xiàn)并確認(rèn)其中存在的開(kāi)源代碼,及其版本、許可證(License)信 息等,形成“材料清單”,讓用戶了解其代碼。

開(kāi)源中的法律問(wèn)題

開(kāi)源軟件,雖然理念上違反傳統(tǒng)的知識(shí)產(chǎn)權(quán)法,但是行動(dòng)上卻尋求包括著作權(quán)法、商標(biāo)法、專利法在內(nèi)的綜合保護(hù),進(jìn)而形成了一個(gè)類似于商業(yè)軟件知識(shí)產(chǎn)權(quán)綜合保護(hù)的體系。開(kāi)源后,侵權(quán)證據(jù)極易獲得。

關(guān)于開(kāi)源軟件的著作權(quán),主要有兩個(gè)維度的風(fēng)險(xiǎn):

1)復(fù)制、分發(fā)或修改他人軟件時(shí),要求按照協(xié)議規(guī)定附上版權(quán)說(shuō)明,若不履行該義務(wù),將可能面臨著作權(quán)侵權(quán)(例如Apache-2.0\BSD-3-Clause\GPL-3.0\MIT等)

2)對(duì)修改而言,有的協(xié)議明確要求對(duì)修改的部分進(jìn)行明示,標(biāo)明修改人信息(例如Apache-2.0\GPL-3.0\LGPL等)

開(kāi)源軟件的專利權(quán)也存在風(fēng)險(xiǎn),協(xié)議中授權(quán)被許可人專利申請(qǐng)的權(quán)利,以及專利再許可的授權(quán)。若在協(xié)議中未明確專利的再授權(quán),將會(huì)存在一定的專利侵權(quán)風(fēng)險(xiǎn),如BSD-3-Clause\MIT,未有明確的專利授權(quán),專利侵權(quán)風(fēng)險(xiǎn)較大; GPL-3.0\LGPL-3.0,要求專利以免費(fèi)的、非獨(dú)占的許可方式分發(fā)給使用者,這就將一些授權(quán)風(fēng)險(xiǎn)排除,從協(xié)議來(lái)看風(fēng)險(xiǎn)反而會(huì)小一些。

開(kāi)源軟件的商標(biāo)權(quán)風(fēng)險(xiǎn),未依據(jù)協(xié)議要求正確使用商標(biāo) 在部分協(xié)議中,針對(duì)商標(biāo)權(quán)的使用,予以明確授權(quán) GPL-3.0\LGPL-3.0,未明確規(guī)定不能使用商標(biāo); Apache-2.0\BSD-3-Clause明確不允許使用其商標(biāo),若使用將會(huì)存在商標(biāo)侵權(quán)風(fēng)險(xiǎn)。在商業(yè)行為中,在開(kāi)源程序中刪除原有商標(biāo),更換為自己的商標(biāo)后發(fā)布,構(gòu)成商標(biāo)法意義上的反向假冒,侵犯商標(biāo)權(quán)。

那些個(gè)開(kāi)源的大公司

在2016年,微軟是Linux基金會(huì)的白金會(huì)員和董事,微軟云Azure支持Redhat,Ubuntu, Suse等Linux版本。SQL Server也推出了Linux版本,開(kāi)源了.Net, Visual Studio等核心產(chǎn)品,在github上貢獻(xiàn)排名一度超過(guò)了facebook和google,內(nèi)部人士宣稱除了Window和Office,其他產(chǎn)品都已經(jīng)開(kāi)源或者在開(kāi)源的路上。Azure 是微軟最重要的未來(lái),事實(shí)上有 1/3 虛擬機(jī)是 Linux系統(tǒng),不支持Linux,微軟云沒(méi)法跟AWS和google競(jìng)爭(zhēng)。

Google的核心業(yè)務(wù)場(chǎng)景是抓取網(wǎng)頁(yè)數(shù)據(jù),建索引,最后響應(yīng)用戶需求。Google做了全產(chǎn)業(yè)鏈的布局,而且全部以開(kāi)源開(kāi)放的方式,例如

  • 瀏覽器 – chrome & blink
  • Webapp - PWA
  • 網(wǎng)頁(yè)加速- AMP
  • 前端框架 - AngularJS
  • ......

還有前面提到的Android。以Google開(kāi)源的圖片格式Webp為例,相對(duì)于PNG和JPG,在文件長(zhǎng)度上有28%到45%的減少,可以減少大量的存儲(chǔ)空間,帶寬以及頁(yè)面的平均加載時(shí)間。

在國(guó)內(nèi),華為的開(kāi)源影響力很高,是Linux基金會(huì),OpenStack基金會(huì),CNTF(k8s)的白金會(huì)員,且到目前為止都是國(guó)內(nèi)唯一,貢獻(xiàn)排名均居前列。作為Apache基金會(huì)的金牌會(huì)員,捐獻(xiàn)的 CarbonData成為了Apache的頂級(jí)項(xiàng)目。 華為的主張是“源于開(kāi)源,強(qiáng)于開(kāi)源,回饋開(kāi)源”,通過(guò)參與開(kāi)源,積極投入到云計(jì)算的相關(guān)開(kāi)源技術(shù)領(lǐng)域,引領(lǐng)并主導(dǎo)技術(shù)標(biāo)準(zhǔn)的演進(jìn),促進(jìn)華為在云計(jì)算基礎(chǔ)設(shè)施上的技術(shù)能夠領(lǐng)先。

百度有自己的對(duì)外開(kāi)源規(guī)范,echarts早在2013年就在github上開(kāi)源了。2016年9月,PaddlePaddle在百度世界大會(huì)上宣布開(kāi)源,這是是一個(gè)易用、高效、靈活、可擴(kuò)展的深度學(xué)習(xí)框架,兼容多種異構(gòu)硬件,具有優(yōu)異的訓(xùn)練&預(yù)測(cè)性能,官方支持多種領(lǐng)先模型,提供全流程的深度學(xué)習(xí)模塊和組件,適合不同層次開(kāi)發(fā)需求。百度在github上有數(shù)十個(gè)開(kāi)源項(xiàng)目,2017年4月,百度宣布阿波羅計(jì)劃,無(wú)人車系統(tǒng)開(kāi)源。

自動(dòng)駕駛

阿里知名項(xiàng)目 weex,fastjson,dubbo,rocketmq,druid,jstorm等等等。阿里通過(guò)用戶的意見(jiàn)反饋,bug報(bào)告,patch提交,促進(jìn)了開(kāi)源軟件本身的質(zhì)量提高,技術(shù)能力和開(kāi)放精神獲得了業(yè)內(nèi)的認(rèn)可,阿里技術(shù)工程師又了強(qiáng)烈的認(rèn)同感,同時(shí)吸引了更多有能力的工程師加入。通過(guò)開(kāi)源軟件和自主開(kāi)發(fā)相結(jié)合,實(shí)現(xiàn)了更好可控性和更高可擴(kuò)展性,阿里的技術(shù)品牌通過(guò)得到了加強(qiáng)。

商業(yè)模式![IMG_6563-專利.JPG](https://upload-images.jianshu.io/upload_images/73516-9cd2af23e9896d31.JPG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

開(kāi)源的商業(yè)模式

開(kāi)源的商業(yè)模式有很多,有點(diǎn)跟產(chǎn)品強(qiáng)關(guān)聯(lián),例如微軟和Azure;有的利用開(kāi)源構(gòu)建生態(tài),從生態(tài)里面掙錢,例如Google Android。在維基百科上列出林林總總18種方式,主要包括:

  • 通過(guò)服務(wù)來(lái)收費(fèi),例如 RedHat,IBM等
  • 通過(guò)雙License來(lái)收費(fèi),例如MongoDB,Neo4J等
  • 通過(guò)商業(yè)版本提供高級(jí)功能,例如Cloudera(Hortonworks已經(jīng)并入Cloudera抱團(tuán)取暖)等
  • 通過(guò)云來(lái)收費(fèi),例如AWS,Azure等等
  • 通過(guò)生態(tài)來(lái)收益,例如Google等等

一個(gè)好的開(kāi)源項(xiàng)目需要有價(jià)值,這是前提。同時(shí)需要降低用戶貢獻(xiàn)的門檻,還需要提供合理的用戶激勵(lì)。

參考資料:
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容