天天看點

Linux必知詞彙:GNU通用公共許可證 GPL(GNU General Public License)

GNU通用公共許可協定(英語:GNU General Public License,縮寫GNU GPL 或 GPL),是被廣泛使用的自由軟體許可證,給予了終端使用者運作、學習、共享和修改軟體的自由。許可證最初由自由軟體基金會的理查德·斯托曼為GNU項目所撰寫,并授予計算機程式的使用者自由軟體定義(The Free Software Definition)的權利。 GPL是一個Copyleft許可證,這意味着派生作品隻能以相同的許可條款分發。 這與寬松自由軟體許可證有所差別 ,如BSD許可證和MIT許可證就是其中被廣泛使用的例子。 GPL是第一個普遍使用的Copyleft許可證。

曆史上,GPL許可證系列一直是自由和開源軟體領域最受歡迎的軟體許可之一。根據GPL許可的優異自由軟體程式的例子有Linux核心和GNU編譯器集合(GCC)。大衛·A·惠勒認為,GPL提供的Copyleft對于基于Linux的系統的成功至關重要,給予向核心貢獻的程式員保證他們的工作将有益于整個世界并保持自由,而不至于被不提供回報給社群的無良軟體公司所剝削。

2007年,釋出了第三版許可證(GNU GPLv3),以解決在長期使用期間發現的第二版(GNU GPLv2)所發生的一些困擾。 為了使許可證保持最新狀态,GPL許可證包含一個可選的“并延伸到未來版本”條款,允許使用者在FSF更新的原始條款或新版本之間進行選擇。 有些開發人員在軟體許可使用時,選擇省略它; 例如,Linux核心已經在GPLv2下獲得許可,就不需包括“并延伸到未來版本”的聲明。

GPL授予程式接受人以下權利,或稱“自由”,或稱“copyleft”:

基于任何目的,按你的意願運作軟體的自由(自由之零)。

學習軟體如何工作的自由,按你的意願修改軟體以符合你的計算的自由(自由之一)。可通路源代碼是此項自由的先決條件。

分發軟體副本的自由,是以你可以幫助你的好友(自由之二)。

将你修改過的軟體版本再分發給其他人的自由(自由之三)。這樣可以讓整個社群有機會共享你對軟體的改動。可通路源代碼是此項自由的先決條件。[16]

相反地,随著作權所有軟體的最終使用者許可證幾乎從不授予使用者任何權利(除了使用的權利),甚至可能限制一些法律允許的行為,比如逆向工程。

GPL與其他一些更“許可的”自由軟體許可證(比如BSD許可證)相比,主要差別就在于GPL尋求確定上述自由能在複制軟體及派生作品中得到保障。它通過一種由斯托曼發明的叫Copyleft的法律機制實作,即要求GPL程式的派生作品也要在GPL之下。相反,BSD式的許可證并不禁止演繹作品變成專有軟體。

GPL是自由軟體和開源軟體的最流行許可證[17]。到2004年4月,GPL已占Freshmeat上所列的自由軟體的約75%,SourceForge的約68%。類似的,2001年一項關于Red Hat Linux 7.1的調查顯示一般的代碼都以GPL釋出。著名的GPL自由軟體包括EMACS,Linux核心(并非所有Linux發行版的核心都是開源的)和GCC。

參考資源:

  1. 維基百科: https://zh.wikipedia.org/wiki/GNU%E9%80%9A%E7%94%A8%E5%85%AC%E5%85%B1%E8%AE%B8%E5%8F%AF%E8%AF%81
  2. GPLv1 https://www.gnu.org/licenses/old-licenses/gpl-1.0.html
  3. GPLv2 https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
  4. GPLv3 https://www.gnu.org/licenses/gpl-3.0.html

繼續閱讀