開源

開源軟件被定義爲描述其源碼能夠被公衆使用的軟件,而且此軟件的使用,修改和分發也不受許可證的限制。開放源碼軟件一般是有copyright的,它的許可證可能包含這樣一些限制:蓄意的保護它的開放源碼狀態,著者身份的公告,或者開發的控制。linux

簡單的說,開源就是源代碼開放和開源許可協議的選擇。開源意味着用戶能夠免費運行,自由學習,免費二次分發以及自由修改改進。服務器

沒有開源軟件,如今的互聯網根本沒法存在,開源的歷史能夠追溯到ARPANET創建。開源在今天已經再也不是一個時髦的詞了,對於互聯網的開發者來講,它如今就像空氣和水同樣,就在咱們的生活中。ionic

現在的主流開源參與者,再也不只是我的愛好者,更多的是著名IT企業的員工,商業公司也紛紛支持。IT企業投入了大量人力在各個開源社區和項目上,包括開發測試,項目協調,運營推廣等。工具

開源許可協議大概有上百種,可是,常見的開源許可大約10種,主要有相似GPL,相似BSDL和相似MPL等。學習

GPL測試

GPL給軟件以版權保護,使用GPL,能夠得到複製、發佈和修改這些軟件的法律許可。spa

GPL的特殊性是 copyleft 與自由的病毒式傳播。在全部開源許可證中,GPL操作系統

的最大特點在於它的「copyleft」規則。 它嚴格地控制基於自由軟件的集合做品或者衍生做品,GPL 第 1 條將其稱爲「基於程序的做品」,發佈規則很簡單,只要使用了 GPL 下的自由軟件,那麼衍生做品以及集合做品的發佈都要基於GPL 之下。開放源代碼

相似的開源許可證AGPL、LGPL…等等,是一種相對理想的是實用主義。設計

BSDL

BSDL主要適用於 Apache 服務器和基於 BSD 的操做系統項目(FreeBSD、 OpenBSD、 NetBSD),不排斥對開源軟件的商業利用,有實用主義的觀點。

BSDL 的特殊性是被許可人的絕對自由,對被許可人作了最少的限制,只要尊重原做者, 合理恰當地標明瞭源代碼的出處,被許可人將不受限制於將這些源代碼用在本身的程序中而按本身的要求進行程序的發佈和軟件的許可、產生衍生做品後僅以目標碼的形式發佈,等等。這意味着能夠從 BSDL 的開源軟件中衍生出私有軟件。 

相似的開源許可證有Apache 、MIT等等。

MPL

MPL是1998年初Netscape的 Mozilla 項目組爲其開放源代碼軟件項目設計的開源許可證。

MPL的特殊性是在開源軟件許可證譜系中接近於 BSDL,但它帶有強烈的商業化特徵,爲公司保留了至關的權利,至關於集開源之力,都爲我所用。

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

Android 的開源許可體系

Android有關linux內核部分採用GPLv2協議開源,有關userspace採用ASLv2(Apache協議版本2 )協議開源。

GPL和非GPL的分界線在於一個 Bionic Libc 的庫。 頭文件由Linux內核的同名頭文件自動生成,用來獲取完成用戶空間系統調用的必要信息。它只包含原頭文件中的常數、結構和宏定義,所以,不包含版權信息。讓 GPL 止步於內核空間被 Linux 內核的做者 Linus Torvalds以及其餘的內核開發人員屢次澄清,普通系統調用爲非 GPL 的做用範圍。

Android 在用戶空間與內核空間之間存在着硬件抽象層 HAL,HAL 類庫本質上一種用戶空間的驅動,其中的主要用途之一就是規避GPL。硬件廠家把須要保護的商業機密以及知識產權相關的邏輯放在 HAL 層,以二進制包的方式發佈,不須要公開源代碼。

PAX專利聯盟是Google 增強它對 Android 控制力 的另外一種手段。手機廠商想要採用這些免費的專利,就不得不 預裝 Play 商店及一系列Google 應用。

開源與專利

將開源代碼修改後,本身申請軟件專利是可能的,這取決於具體的開源許可證。MPL禁止將開放源代碼以許可證形式許可後再去申請與這些源代碼有關的專利的行爲。BSD,Apache等對於專利申請沒有限制。

就Ricoh,SISSL,NOKOS,AFL,Artistic,APSL等開源許可而言,貢獻者將本身享有實質專利權的技術加入開源軟件的,視爲源代碼的專利權人將該專有權利向公衆許可。

使用代碼掃描工具如Black DUCK或Openlogic等,可以對代碼進行合規性檢查,經過掃描源代碼,發現並確認其中存在的開源代碼,及其版本、許可證(License)信 息等,造成「材料清單」,讓用戶瞭解其代碼。

原文:https://www.jianshu.com/p/e83f1f8a9da4

相關文章
相關標籤/搜索