幾種常見的開源軟件許可協議(GPL, LGPL, Apache License, BSD)

GPL程序員

GPL授予程序接受人如下權利,或稱「自由」:編程

* 以任何目的運行此程序的自由學習

* 以學習程序工做機理爲目的,對程序進行修改的自由(能獲得源代碼是前提)操作系統

* 再發行復製件的自由.net

* 改進此程序,並公開發布改進的自由(能獲得源代碼是前提)開放源代碼

相反地,隨版權全部軟件的最終用戶許可證幾乎從不授予用戶任何權利(除了使用的權利),甚至可能限制法律容許的行爲,好比逆向工程。orm

GPL與其餘一些更「許可的」自由軟件許可證(好比BSD許可證)相比,主要區別就在於GPL尋求確保上述自由能在複製件及演繹做品中獲得保障。它經過一種由Stallman發明的叫copyleft的法律機制實現,即要求GPL程序的演繹做品也要在GPL之下。相反,BSD式的許可證並不由止演繹做品變成版權全部軟件。blog

GPL不會授予許可證接受人無限的權利。再發行權的授予須要許可證接受人開放軟件的源代碼,及全部修改。且複製件、修改版本,都必須以GPL爲許可證。繼承

這些要求就是copyleft,它的基礎就是做品在法律上版權全部。因爲它版權全部,許可證接受人就無權進行修改和再發行(除合理使用),除非它有一個copyleft條款。若是某人想行使一般被法律所禁止的權利,只需贊成GPL的條款。相反地,若是某人發行軟件違反了GPL(好比不開放源代碼),他就有可能被原做者起訴。開發

copyleft利用版權法來達到與其相反的目的:copyleft給人不可剝奪的權利,而不是版權法所規定的諸多限制。這也是GPL被稱做「被黑的版權法」的緣由。

許多GPL軟件發行者都把源代碼與可執行程序捆綁起來。另外一方式就是以物理介質(好比CD)爲載體提供源代碼。在實踐中,許多GPL軟件都是在互聯網上發行的,源代碼也有許多能夠FTP方式獲得。

copyleft只在程序再發行時發生效力。對軟件的修改能夠不公開或開放源代碼,只要不發行。注意copyleft只對軟件有效力,而對軟件的輸出並沒有效力(除非輸出的是軟件自己)。不過這在GPL版本3中可能會有改動。

LGPL

GNU寬通用公共許可證,簡稱LGPL(GNU Lesser General Public License),被用於一些(但不是所有)GNU程序庫。這個許可證之前被稱爲GNU庫(Library)通用公共許可證。

LGPL是GPL的變種,也是GNU爲了獲得更多的甚至是商用軟件開發商的支持而提出的。與GPL的最大不一樣是,能夠私有使用LGPL受權的自由軟件,開發出來的新軟件能夠是私有的而不須要是自由軟件。因此任何公司在使用自由軟件以前應該保證在LGPL或其它GPL變種的受權下。

Apache License

Apache License是著名的非盈利開源組織Apache採用的協議。該協議和BSD相似,一樣鼓勵代碼共享和尊重原做者的著做權,一樣容許代碼修改,再發布(做爲開源或商業軟件)。須要知足的條件:

* 須要給代碼的用戶一份Apache License

* 若是你修改了代碼,須要再被修改的文件中說明

* 在延伸的代碼中(修改和有源代碼衍生的代碼中)須要帶有原來代碼中的協議、商標、專利聲明和其餘原來做者規定須要包含的說明

* 若是再發布的產品中包含一個Notice文件,則在Notice文件中須要帶有Apache License。你能夠在Notice中增長本身的許可,但不能夠表現爲對Apache License構成更改

Apache License也是對商業應用友好的許可。使用者也能夠在須要的時候修改代碼來知足須要並做爲開源或商業產品發佈/銷售。

BSD

BSD受權許可證(FreeBSD Copyright Information)具備多種受權許可證。總的來講你能夠對軟件任意處理,只要你在軟件中註明其是來自於那個項目的就能夠了。也就是說你具備更大的自由度來處置軟件。若是你對軟件進行了修改,你能夠限制其餘使用者獲得你修改的軟件的自由。

BSD受權許可證沒有實現"通透性"自由,也就是其不保證軟件源代碼開放的連續性。這樣若是你但願採用別人開發的BSD軟件,進行一些修改,而後做爲產品賣,或者僅僅保密本身的作的一些除了軟件開發之外的工做,那麼你就能夠從中得利。

當一個非程序員僅僅理解一個程序的功能,可是不瞭解程序是如何作的時,即便你沒有在開發軟件中作任何工做那你就能夠經過高超的市場技巧將軟件賣給該用戶。好比拿最流行的桌面操做系統做爲例子,你就能很好的理解一個沒有很好的程序技巧的軟件公司只要具備高超的市場營銷策略一樣能夠將垃圾賣給客戶。若是你不具備很強大的編程能力,可是具備很強的市場能力和能將其餘開發者的軟件包括到本身的系統,而同時不將本身的修改開放出來將是很是強大的能力。從賺錢爲目的的商務角度看來,若是你使用了BSD受權許可證的軟件,那麼你就能夠任意進行。你能夠更好地控制你的OS系統,而且防止其餘人拷貝你的商業產品。

總結

簡單的說,就是你使用了GPL許可證的軟件,那麼你的軟件產品就被GPL「傳染」了,也必須「自由」!這對國內的商業軟件開發商來講是很難接受的。

可是LGPL, Apache License, BSD就不存在這個問題,後二者只要求你對軟件原做者的工做進行必要的承認和尊重就好了,因此這是適合商業應用的。

因此在選擇應用開源軟件時,必定要明白本身的用途,選擇合適許可證下的軟件。

最後,咱們能夠參考一下對GPL的評論:

2001年微軟的首席執行官Steve Ballmer稱Linux爲「癌症」,由於GPL的影響。微軟的批評指出,微軟憎惡GPL的真正緣由是由於對微軟的「包圍、擴展、消滅」策略起了副作用。注意微軟已以GPL爲許可證發行了SFU(Microsoft Windows Services for UNIX)中所包含的部分組件,例如GCC。

GPL的批評者經常認爲GPL是有「傳染性」的「病毒」,由於GPL條款規定演繹做品也必須是GPL的。因爲「演繹做品」一般被解釋爲包含GPL代碼或動態連接到GPL庫(如上)的軟件,「病毒說」來源於GPL對於許可證的強制繼承的要求。這正是GPL與BSD式許可證的哲學思想上的差別。GPL的支持者確信自由軟件應確保其演繹做品一樣「自由」,但其餘人認爲自由軟件應給用戶最大的自由

【轉載】https://blog.csdn.net/shareCode/article/details/7420320

相關文章
相關標籤/搜索