Ict@innovation:釋放非洲的 IT 業務/1-4
1:00 小時
出於教學目的,建議培訓師/講師使用講座和討論環節相結合的方式作為交付本模組的主要手段。
在專有或免費開源環境中,存在著各種各樣的許可模型。本節資訊集中在免費開源模型許可證上,涵蓋三種許可證型別以及它們之間的區別。
由於這適用於所有其他軟體作者,這意味著任何軟體最初都是專有的,這意味著除原始作者(或者,如果作者已將使用和分發權轉讓給其他人,則版權持有者)以外,沒有人可以合法控制其使用和分發方式。
這也意味著這些程式的使用者在與軟體相關的方面沒有任何自由。未經版權持有者的明確許可,他們不得重新分發該程式,或對其進行更改並使其適應自己的需求。
然而,更改現有程式並將其適應自身需求的能力是 FOSS 背後理念的基石。GNU 專案和自由軟體基金會的創始人理查德·斯托曼定義了程式必須為使用者提供的四項基本自由,才能被稱為“自由”。
- 執行程式的自由,無論出於何種目的(自由 0)。
- 研究程式如何工作並將其適應您需求的自由(自由 1)。獲取原始碼是實現此目的的前提條件。
- 重新分發副本的自由,以便您可以幫助您的鄰居(自由 2)。
- 改程序序並向公眾釋出您的改進(以及一般修改後的版本)的自由,以便整個社群都能受益(自由 3)。獲取原始碼是實現此目的的前提條件。
正如 FOSS 的快速全球增長所表明的那樣,這些自由顯然是可取的。那麼如何將一段軟體從其最初的專有狀態轉移到 FOSS 呢?
這是透過許可證實現的。維基百科簡要地將許可證描述如下。
動詞“許可”或“授予許可”是指給予許可。名詞“許可”(在英式拼寫中)是指該許可以及紀念該許可的檔案。許可可以由一方(“許可方”)授予另一方(“被許可方”),作為這些雙方之間協議的一個組成部分。對許可的簡要定義是“(許可方)不訴訟(被許可方)的承諾”。
因此,許可證是版權持有者向用戶釋出的檔案,該檔案決定使用者可以對相關軟體程式執行哪些操作。
在專有軟體的世界中,此許可證通常被稱為“終端使用者許可協議”(EULA),並且通常對程式的使用施加了廣泛的限制,這些限制除了版權法規定的限制之外還存在。
FOSS 以不同的方式使用許可證。在這裡,它們是使程式使用者擺脫終端使用者許可協議限制以及版權法預設施加的限制的手段。
將程式作為 FOSS 釋出的基本流程如下。
- 您編寫一段軟體。這會自動使您成為版權持有者,賦予您廣泛的權力來決定如何分發該軟體。
- 您透過在軟體中新增版權宣告來宣告您的版權,顯示版權符號、您的姓名和建立或出版年份(“© John Miller 2009”)。
- 憑藉您決定程式分發方式的權力,您決定要將其作為 FOSS 分發。這意味著您的程式將為所有使用者提供上述四項自由。
- 您選擇適合您需求的 FOSS 許可證,並將其整合到程式的原始檔中,以及新增包含許可證文字的檔案(通常稱為 license.txt)。
- 您分發程式,無論免費還是收費。
從這個過程中,可以清楚地看到 FOSS 使用許可證作為一種技巧,以繞開版權法通常對使用者施加的限制。在宣告您對程式的版權後,您使用此權利來決定您的軟體應該為使用者提供版權法以外的某些自由。您還不會對使用者強加侵入性的 EULA。
許可證為程式使用者提供了法律保證,確保他們享有這些自由,並且您不會採取法律措施剝奪他們這些自由。
程式是 FOSS 還是非 FOSS 由其分發的許可證決定。如果該許可證為使用者提供上述四項自由,那麼該程式就是 FOSS。如果不是,則為非自由(或專有)。
請注意,將一段軟體作為 FOSS 釋出並不意味著您放棄對其的所有權利。越來越多的法院案件表明,FOSS 程式的版權持有者已經起訴了一家公司侵犯版權,因為該公司在不遵守許可證的情況下將 FOSS 程式構建到產品中,例如,沒有向產品購買者提供原始碼。
所有自由軟體許可證都必須授予人們上面討論的所有自由。但是,除非應用程式的許可證相容,否則由於許可證技術細節,透過混合原始碼或直接連結二進位制檔案來組合程式是有問題的。間接連線在一起的程式可以避免此問題。
FOSS 許可證可以歸類為以下型別之一。
- 公有領域軟體 - 版權已過期,該作品未受版權保護,或者作者已放棄版權。由於公有領域軟體缺乏版權保護,因此可以將其自由地併入任何作品,無論是專有的還是免費的。
- 寬鬆許可證,也稱為 BSD 風格,因為它們被應用於與BSD 作業系統一起分發的許多軟體。作者保留版權,只是為了免除擔保並要求對修改後的作品進行適當的歸屬,但允許在任何作品(甚至專有作品)中重新分發和修改。
- Copyleft 許可證,最著名的是GNU 通用公共許可證。作者保留版權並允許重新發布和修改,前提是所有此類重新發布都在相同的許可證下。其他人新增和修改的程式碼,只要它們與原始許可產品的任何部分一起釋出,也必須在相同的“copyleft”許可證下進行許可。開源倡議組織 (OSI),http://www.opensource.org/licenses,作為自由及開放原始碼軟體 (FOSS) 社群的倡導者,也維護和更新各種型別的 FOSS 許可證,按名稱和類別列出。
雙重許可證
[edit | edit source]雙重許可證可以同時緩解許可證互操作性問題(例如 GPLv2 與 GPLv3),併為 FOSS 商業模式提供基礎,在該模式中,程式碼的商業使用會產生收入。
在這種雙重許可情況下,授予不同的條款取決於生成程式碼的釋出方式。對於將在 GPL 或開源許可證下發布的新程式碼,將授予相應的 GPL 或開源許可證。但對於以商業方式將許可程式碼與其專有產品一起釋出的商業供應商,並且不會在 GPL 下許可和釋出其自身的原始碼,則會授予商業許可證,通常與許可費或其他收入分享相關。MySQL 資料庫平臺在其許可頁面https://mysql.com.tw/about/legal/licensing/上提供了一個關於雙重許可的很好的例子。
雖然 FOSS 許可的最佳實踐難以概括,但以下斷言是安全的。
- GPL 仍然代表著 FOSS 許可的最高理想,應該在任何許可決定中加以考慮。但是,包括依賴程式碼許可證、合作協議、目標市場、商業模式和機構約束在內的因素可能會阻止 GPL 成為最佳選擇。另一方面,GPL 許可在 FOSS 釋出中提供了“道德制高點”,並使專案免於解釋和辯護為何選擇“不太自由”的許可。
- 在尋求提高 FOSS 專案的採用率和普及率時,也應考慮雙重或多重許可方法。雖然此類許可模式具有“淡化”純 GPL 產品的效果,但它們為那些可能無法合併可用程式碼的人提供了靈活性。上述提到的 FOSS 許可異常也緩解了程式碼互操作性障礙。
無論如何,建立新的 FOSS 許可證只應作為最後的手段。雖然 OpenMRS 專案等相關的獨特機構和法律要求可能需要專門的許可證,但新的許可證只會使情況更加混亂。應盡一切努力不僅使用現有的許可證,而且使用廣泛釋出的許可證,以便最大限度地提高許可程式碼的可重用性。
FOSS 許可資源
[edit | edit source]- http://www.gnu.org/philosophy/free-sw.html。其他定義 - 例如開源定義
- (http://www.opensource.org/docs/definition.php) 在此原始來源的基礎上進行擴充套件。
- http://en.wikipedia.org/wiki/License,2009 年 1 月 22 日。
- 本節摘自http://en.wikipedia.org/wiki/Free_software,2009 年 1 月 23 日
模組 1.4:評估
[edit | edit source]- 練習 1: 討論並回答以下問題
- 什麼是軟體許可證?
- 專有軟體和自由及開源軟體的許可證有什麼區別?
- 本模組中有哪些自由軟體許可證?
- 除了本模組中的許可證外,請搜尋並列出另外兩個 FOSS 許可證。
- 你對雙重許可證有什麼理解?
- 找到並討論至少 1 個 (一個) 雙重許可 FOSS 解決方案的例子。