幾種開源license的簡單介紹

2022-06-23 15:38:25 字數 1003 閱讀 1797

gpl(gun general public license)

gpl是目前世界上運用最廣泛的開源協議,它規定了任何從gpl協議授權的原始碼衍生的軟體或者任何採用了gpl授權的原始碼的軟體,都必須遵循gpl的協議,即軟體的所有源**必須開源。它就像病毒一樣,哪怕只是採用了gpl授權的一個圖示,那麼整個軟體就被gpl感染了,必須遵循gpl的協議。最典型的gpl產物是linux,所有采用了linux核心的作業系統,都必須接收開源釋出,不能夠採用其他的開源協議或者閉源釋出。這樣的一個好處是保持了軟體在協議上的一致性,即採用了gpl協議的軟體就不能受其他開源協議所約束,任何人都可以共享它的原始碼。所以即便是redhat這樣的商業公司,在釋出發行版的同時也必須公開它的源**。

lgpl

lgpl是從gpl衍生的一種開源協議,它不會像gpl那樣嚴格,僅僅因為採用了開源協議規定的**就必須完全開源軟體會損壞很多開發人員的利益。因此lgpl做了這樣的規定,如果只是以連結的方式採用了lgpl授權的原始碼,那麼不需要開源整個軟體。如果是在授權的原始碼上面做了修改,那麼軟體就必須遵循lgpl的規定開源。

cpl(common public license)

cpl是一種自由度很高的開源協議,它允許使用者使用、修改**甚至釋出軟體作為商用。但它必須遵循一些原則:凡是採用了cpl原始碼的軟體不能採用其他的開源協議;釋出成商用的時候必須宣告源**可以獲得。cpl主要用於ibm或者和ibm相關的一些軟體,如eclipse。

bsd(berkeley software distribution)

bsd也是一種很自由的開源協議,它允許自由採用和修改bsd授權的原始碼,只是在使用的時候必須宣告這部分原始碼是遵循bsd協議的。bsd鼓勵**共享,但需要尊重**作者的著作權。很多公司在選擇開源軟體的時候首選bsd授權的軟體,因為可以對第三方的軟體完全具有控制權。

apache

apache也是一個很受歡迎的開源協議,它跟bsd一樣有很高的自由度,同樣是可以任意使用協議授權的**,但是要尊重原作者的著作權,可以不公開修改的**,但要宣告**的**。而且,它還可以在發行的時候選擇其他的協議。