科普 你該認識的四種常見軟體開源許可證

2021-09-12 09:35:01 字數 1861 閱讀 3193

開源早已成為很多科技企業關注的焦點,我們也常會發現部分開源技術後面標註了某種協議,這意味著這些開源**被框上了某種束縛,或者說這些**將必須遵循這些規則,否則可能會觸及法律。

總的來看,如今比較流行的開源軟體協議包括:gpl,lgpl,apache license(2.0)和bsd。一般來講,如果使用了gpl許可證的軟體,就意味著你的軟體必須「自由」,相比之下,其他協議大多只要求使用者尊重原作就可以了,更適用於商業軟體之中,只有區分了這些開源軟體協議的含義,才能更好的利用和回饋開源軟體。

你需要了解的開源許可證

gpl(gnu general public license versions)

gpl協議一般還可以分為gpl2.0和gpl3.0兩種,而gpl3.0是更新一代的開源標準,在對使用者專利的保護和drm的限制方面有所更改。gpl協議同其它的自由軟體許可證一樣,許可社會公眾享有:執行、複製軟體的自由,發行傳播軟體的自由,獲得軟體原始碼的自由,改進軟體並將自己作出的改進版本向社會發行傳播的自由。 而gpl協議就像一種開源「病毒」,任何一款沾染上他的軟體都不得不保持開源和免費。

gpl許可證

根據國外論壇robbin的解釋:「gpl是針對軟體源**的版權,而不是針對軟體編譯後二進位制版本的版權。你有權免費獲得軟體的源**,但是你沒有權力免費獲得軟體的二進位制發行版本。gpl對軟體發行版本唯一的限制就是:你的發行版本必須把完整的源**一同提供。」

lgpl

lgpl是gnu lesser general public license(gnu寬通用公共許可證)的縮寫形式,lgpl是gpl的乙個為主要為類庫使用設計的開源協議。與上面的gpl不同的是,lgpl允許商業軟體通過類庫引用(link)方式使用lgpl類庫而不需要開源商業軟體的**。使採用lgpl協議的開源**可以被商業軟體作為類庫引用並發布和銷售。

我們也可以簡單理解為:lgpl協議的開源**商業軟體可以使用,但不能修改lgpl協議的**。

apachelicense

apache licence是著名的非盈利開源組織apache採用的協議。該協議和bsd類似,同樣鼓勵**共享和尊重原作者的著作權,同樣允許**修改,再發布(作為開源或商業軟體)。他需要滿足的條件包括:

○需要給**的使用者乙份apache licence

○如果你修改了**,需要在被修改的檔案中說明。

○在延伸的**中(修改和有源**衍生的**中)需要帶有原來**中的協議,商標,專利宣告和其他原來作者規定需要包含的說明。

○如果再發布的產品中包含乙個notice檔案,則在notice檔案中需要帶有apache licence。你可以在notice中增加自己的許可,但不可以表現為對apache licence構成更改。

bsd開源協議(berkerley software distribution)

這就不難理解,很多的公司企業在選用開源產品的時候都首選bsd協議,因為可以完全控制這些第三方的**,在必要的時候可以修改或者二次開發。

除了上面的集中開源協議,還有mit許可證(源自麻省理工,是與bsd一樣寬範的許可協議)和mozilla許可證等,具體可參照下圖。

常見的四種排序演算法

void bubblesort int a,int size,int order order為1代表公升序,氣泡排序演算法 void selectsort int a,int size,int order order為1代表公升序,選擇排序演算法 if k i void insertsort int...

SQL Update的四種常見寫法

實驗物件 兩個學生表 1.乙個stu學生表,乙個stu1學生表.2.上述表有三個字段 學生id,學生性別,學生名字 update語句常見場景,分為兩大類 1.單錶update 2.多表關聯update 1.1 單錶update單字段 update stu t set t.name mike wher...

四種常見的執行緒池

1.newcachedthreadpool public static executorservice newcachedthreadpool 執行流程如下 提交任務到執行緒池。因為corepoolsize為0,不建立核心執行緒,執行緒池最大為integer.max value。任務隊列為synch...