跳轉到內容

開源軟體(FOSS)概述/智慧財產權和許可

來自華夏公益教科書

開源軟體的許可安排是什麼?

[編輯 | 編輯原始碼]

開源軟體是在各種不同的許可證下發布的。主要有兩種許可證型別和無數的變體。兩種主要的許可證是 GNU(GNU's Not Unix 的遞迴縮寫)通用公共許可證BSD 風格許可證。可以在自由軟體基金會網站上找到更詳細的許可證列表,地址是http://www.fsf.org/licenses/license-list.html

GNU 通用公共許可證 (GPL)

[編輯 | 編輯原始碼]

這旨在確保該許可證下的使用者自由永遠得到保護。使用者可以對GPL程式做任何他們想做的事情,包括複製、分發和修改。當軟體被分發給其他使用者時,許可證的條款主要影響使用者。

分發GPL軟體的關鍵條款包括

  1. GPL程式的分發者還必須向接收者提供原始碼。
  2. 分發者對GPL程式做出的任何更改也必須在 GPL 下獲得許可。
  3. 分發者不得對他們分發的GPL程式的使用者施加任何非GPL限制。
  4. GPL軟體的接收者被授予與原始分發者相同的複製、修改和分發軟體的權利。

GPL軟體構成了開源軟體的大多數:高達 73% 的開源專案。[1] 在開源軟體中使用GPL 的主要動機之一是確保一旦某些內容被髮布為開源軟體,它將永遠保持開源軟體狀態。不可能新增額外的許可來剝奪使用者重新分發或修改程式的權利。商業軟體公司無法獲取GPL程式,修改它,然後以不同的專有許可證出售它。

GPL 的完整文字可以在http://www.fsf.org/licenses/gpl.html找到。

BSD 風格許可證

[編輯 | 編輯原始碼]

BSD 風格(伯克利系統分發)許可證因此而得名,因為它們在精神上與加州大學伯克利分校頒發的原始許可證相同。這些是最寬鬆的許可證之一,因為它們基本上允許使用者對軟體做任何他們想做的事情,只要

  1. 透過在原始碼檔案中包含原始版權宣告,對原始許可方進行歸屬;以及
  2. 不試圖起訴或追究原始許可方的損害賠償責任。

早期版本要求在所有宣傳材料中都承認加州大學伯克利分校(或釋出原始軟體的任何組織),但這一要求在大多數最新版本中已被刪除。

大量的開源軟體專案(包括幾個關鍵元件)都是在BSD 風格許可證下獲得許可的。例子包括

  1. Apache Web 伺服器 – 如今網際網路上使用最廣泛的 Web 伺服器[2]
  2. XFree86 視窗系統 - 幾乎所有開源系統圖形使用者介面的基礎
  3. FreeBSDNetBSDOpenBSD – 所有基於伯克利系統分發(BSD)版本的Unix 的變體;所有這些都廣泛用於網際網路,尤其是FreeBSD,它執行雅虎微軟的 Hotmail 服務[3]

BSD 風格許可程式碼合併到商業應用程式中非常容易。即使是微軟也過去在其 Windows 程式碼的網路部分使用了一些 BSD 程式碼[4]。許多公司在其商業軟體產品中都包含了Apache Web 伺服器。與GPL不同,BSD 風格的許可證不要求分發原始碼,允許公司隱藏其對原始程式碼的修改。公司也不需要授予使用者檢視、修改或分發公司對程式碼所做的修改的權利。

可以在附件 II 中找到更詳細的不同軟體許可證列表。

開源軟體可以與專有軟體結合使用嗎?

[編輯 | 編輯原始碼]

將開源軟體與專有軟體結合起來是可能的,這取決於“結合”的方式以及軟體的具體許可證。在所有常見的開源軟體許可證中,GNU GPL是最需要謹慎使用的許可證。它將“結合”定義如下

兩個程式的簡單聚合意味著將它們並排放在同一個 CD-ROM 或硬碟上。我們使用這個術語 (...) 在它們是獨立的程式而不是單個程式的一部分的情況下。在這種情況下,如果其中一個程式受 GPL 約束,它不會對另一個程式產生任何影響。結合兩個模組意味著將它們連線在一起,使它們形成一個更大的單個程式。如果任何一部分受 GPL 約束,那麼整個組合也必須在 GPL 下發布 - 如果你不能或不願意這樣做,你就不可以結合它們。[5]

在這種情況下,如果在開源軟體作業系統環境中使用專有應用程式,則專有應用程式不受開源軟體系統的許可證的影響。例如,在GNU/Linux作業系統上執行Oracle 資料庫

將程式組合在一起的一個例子是使用 D-Bus 訊息傳遞庫 編寫應用程式。D-Bus 透過允許程式相互發送訊息來加速客戶端和伺服器程式的開發。D-Bus 在 GPL 下獲得許可。由於完成的應用程式程式(編譯器透過它之後)將包含來自 Gnome 應用程式框架的原始碼,因此整個應用程式必須在 GPL 下獲得許可。

但是,其他程式在 GPL 的另一個版本下獲得許可,稱為 Lesser GNU 通用公共許可證 (LGPL),例如 GLib 實用程式庫。非 GPL 程式可以使用 LGPL 庫,而無需在 GPL 下獲得許可。 [6]

其他許可通常要寬鬆得多。使用 BSD 風格的許可證編寫上面相同的應用程式,只需要在原始碼中保留對原始許可方的歸屬。下面的矩陣重點介紹了在分發與 GPL 或 BSD 風格的許可軟體相結合的軟體時存在哪些差異。

GPL 和 BSD 風格的許可軟體之間的區別
GPL 許可 BSD 許可
必須分發原始原始碼
必須分發使用者建立的原始碼
使用者建立的原始碼必須在 GPL 下獲得許可

腳註

[edit | edit source]
  1. Wheeler, David, “使您的開源軟體與 GPL 相容。否則” [主頁線上];可從 http://www.dwheeler.com/essays/gpl-compatible.html 獲取;網際網路;2003 年 11 月 9 日訪問。
  2. Netcraft, “2003 年 5 月 Web 伺服器調查” [主頁線上];可從 http://news.netcraft.com/archives/2003/05/05/may_2003_web_server_survey.html 獲取;網際網路;2003 年 6 月 9 日訪問。
  3. Somogyi, Stephan, “BSD 障眼法”,2000 年 4 月 3 日,ZDNet 新聞 [主頁線上];可從 http://zdnet.com.com/2100-11-519701.html?legacy=zdnn 獲取;網際網路;2003 年 11 月 9 日訪問。
  4. “微軟、TCP/IP、開源和許可” Kuro5hin [主頁線上];可從 http://www.kuro5hin.org/story/2001/6/19/05641/7357 獲取;網際網路;2003 年 11 月 9 日訪問。
  5. “關於 GNU GPL 的常見問題解答” [主頁線上];可從 http://www.fsf.org/licenses/gpl-faq.html#MereAggregation 獲取;網際網路;2003 年 11 月 9 日訪問。
  6. “為什麼您不應該在下一個庫中使用 Lesser GPL” [主頁線上];可從 http://www.gnu.org/licenses/why-not-lgpl.html 獲取;網際網路;2012 年 5 月 3 日訪問。
華夏公益教科書