共享、免費還是公有?開源軟體的真正定義
當你聽到「 開源軟體 」一詞時,你是否認為它與諸如 共享軟體 、 免費軟體 或 公有領域軟體 之類的術語同義? 如果是這樣的話,你並不是唯一有這種看法的人。在軟體行業內外的許多人都認為這些術語是一樣的。本文說明了這些術語的不同之處,認為開源是一種變革性的許可和開發模式。分享我與以上幾種軟體打交道的經驗,可能是探究差異的最佳方法。
共享軟體和免費軟體
早在 1982 年,當我在 Apple II Plus 上用 BASIC 編寫代碼時,我就開始從事計算機程序員的工作。我回想起去家鄉當地的計算機商店,並在塑料袋中找到看起來價格高昂的裝有遊戲和實用程序軟體的軟盤。請記住,這是從一個中學生的角度來看的。
但是,有一些軟體可以免費或以最低價格獲得。依據具體許可模式,它被稱為共享軟體或免費軟體。在共享軟體模式下,你只能在一定時間內使用該軟體,如果你發現它有用,則要求你將支票寄給該軟體的作者。
但是,某些共享軟體實際上也鼓勵你複製並提供給你的朋友。這種模式通常稱為免費軟體。也就是說,共享軟體和免費軟體確切定義之間的差異十分微小,因此很容易將兩者簡單地統稱為「共享軟體」。我雖不能肯定,但是我不記得我是否向任何軟體作者提供過使用共享軟體的費用,主要是因為我在十幾歲的時候就沒有錢,但是我肯定喜歡使用這些軟體程序,並且從中學到了很多有關計算機的知識。
回顧過去,我現在意識到,如果該軟體是根據開源許可條款而非共享軟體條款提供的,那麼作為一名新興的程序員,我本可以在成長中學到很多東西,並且可以取得更多成就。這是因為幾乎沒有共享軟體會提供源代碼(即,人類可讀的軟體形式)。共享軟體還包含許可限制,禁止接收者試圖泄露其源代碼。如果無法訪問源代碼,則很難了解該軟體的實際工作方式,從而很難擴展或更改其功能。這使得最終用戶完全依賴共享軟體原始作者進行任何更改或改進。
使用共享軟體模式,任何開發人員社區幾乎都不可能對代碼施加影響,並進一步圍繞代碼進行創新。再分發和商業使用也可能受到進一步的限制。儘管共享軟體可能在價格方面是免費的(至少在最初是免費的),但它在自由權利方面並不是免費的,並且不允許你通過探索代碼的內部原理來學習和創新。
這就引出了一個大問題:它與開源軟體有何不同?
開源許可的基礎
首先,我們需要了解「開源」是指許可模式和軟體開發模式,兩者與共享軟體都有很大不同。在一種稱為非 「左版」 開源許可的開源形式下,向用戶提供了關鍵的自由權利,例如對訪問源代碼沒有限制;可以出於任何目的出售、使用或贈送該軟體;可以修改軟體。
這種形式的許可也不需要支付任何使用費或許可費。因為許可是高度寬鬆的,不需要談判就可以使用,這種許可模式的一個驚人結果是它具有獨特的能力,可以使無數軟體開發人員協作起來對代碼進行新的、有用的更改和創新。儘管從技術上講,在這種許可模式下不需要提供源代碼,但是幾乎所有人都可以使用它來查看、學習、修改和分發給他人。
非「左版」開源許可的另一個方面是,此類軟體的任何接收者都可以添加其他許可限制。這意味著以這種許可形式對代碼進行許可的初始作者,無法阻止接收者可能依據限制性更強的條款不再進一步許可給其他人。例如:
假設作者 Noah 編寫了一些軟體,並根據非「左版」開源許可將其分發給了接收者 Aviva。然後,Aviva 修改並改進了 Noah 的軟體,她有權根據非「左版」開源許可條款使用該軟體。然後,Aviva 可以決定對可能限制該軟體使用的任何接收者施加進一步的限制,例如在何處或如何使用它(例如,Aviva 可以增加一項限制,規定該軟體只能在以下地區使用:加利福尼亞,並且不允許在任何核電廠中使用)。 即使 Aviva 可以訪問源代碼,也可以選擇永遠不將修改後的源代碼發布給他人。
不幸的是,有無數的專有軟體公司以上述方式使用非「左版」開源許可軟體。實際上,共享軟體程序可以通過添加共享軟體類型限制(例如,無法訪問源代碼或排除商業用途)來使用非「左版」開源許可軟體,從而將非「左版」開源許可代碼轉換為共享軟體許可模式。
幸運的是,許多使用非「左版」開源許可軟體的專有軟體公司都看到了發布源代碼的好處。這些組織一般通過諸如 GitHub 之類的軟體存儲平台向其接收者或更廣泛的開源社區提供修改後的源代碼,從而繼續保持開源模式的持久性,實現創新的良性循環。這並不是完全出於慈善目的(或者至少通常不是這樣):這些公司希望鼓勵社區創新和進一步改進,從而使他們也一併受益。
同時,許多專有軟體公司不選擇這樣做,這也完全符合非「左版」開源許可證條款的規定。
「左版」許可的開源軟體
1989 年,一種新的被稱為 GNU 通用公共許可證(也稱為 GPL 許可證)的開源許可證被開發出來,其目的是確保軟體「生來自由」(如同言論自由),並且能始終保持這種自由,這與非「左版」開源許可軟體有時會發生的情況不同。作為版權法的獨特適用,只要遵守這些規則(稍後會再介紹),GPL 許可證能夠確保持續的軟體自由。版權的這種獨特適用稱為 「左版」 。
與非「左版」開源軟體一樣,「左版」許可證允許接收者不受限制地使用該軟體、檢查源代碼、修改軟體,以及將原始或經修改的軟體進一步分發給其他接收者。與非「左版」開源許可證不同,「左版」開源許可證要求所有接收者必須也具有這些相同的自由權利。除非不遵守規則,否則這些自由權利決不能被收回。
使「左版」開源許可證能夠強制執行,並促使人們遵守法規的原因是版權法的適用。如果「左版」代碼的接收者不遵守許可條款(例如,對軟體使用添加任何其他限制或不提供源代碼),則其許可將被終止,並且由於他不再享有使用該軟體的法律許可,他將成為版權侵犯者。因此,該「左版」許可軟體任何下游接收者的自由權利得以保障。
超越基礎:其他軟體許可模式
我在前面提到了公有領域軟體,儘管它通常與開源軟體混為一談,但是這種模式有所不同。公有領域軟體是指已採取步驟查看後獲知沒有與該軟體相對應的版權存在,最常見的情況是軟體版權到期或被作者放棄。(在許多國家/地區,版權保護機制尚不明確,這就是為什麼某些公有領域軟體可能選擇開源許可模式作為備選方案的原因。)使用公有領域軟體無需許可證。儘管如果源代碼可獲取的話,許多人會認為公有領域軟體是開源軟體的一種形式,但無需許可證是否讓公有領域軟體成為「開源軟體」,是存在很多爭論的主題。
有趣的是,有許多開源項目利用公有領域軟體的小模塊來實現某些功能。甚至還有聲稱整個程序屬於公有領域的軟體,例如實現了 SQL 資料庫引擎並在許多應用程序和設備中使用的 SQLite。沒有許可條款的軟體也是很常見的。
許多人錯誤地認為這種未經許可的軟體是開源軟體,屬於公有領域,或者不受限制地免費使用。在大多數國家(包括美國),軟體的版權在其創建時就已存在。這意味著不以許可證的形式許可就不能使用它,除非它以某種方式放棄版權,並將其放置在公有領域。此通用規則存在一些例外情況,例如法律層面的默示許可或合理使用。但是在如何將它們應用於特定狀況方面,情況非常複雜。在意圖讓其遵守開源許可條款的情況下,我不建議提供沒有許可條款的軟體,因為這會導致混亂和潛在的濫用。
開源軟體的好處
就像我之前說的那樣,開源是高效的軟體開發模式,並具有推動創新的巨大能力。但這到底意味著什麼?
開源許可模式的好處之一是大大減少了創新方面的摩擦,尤其是原始作者以外的其他用戶所進行的創新。這種摩擦是有限的,因為使用開源軟體通常不需要協商許可條款,從而大大簡化並降低了使用成本。反過來,這創建了一種開源生態系統,它鼓勵快速修改和組合現有技術以形成新的事物。這些修改通常能回饋到開源生態系統中,從而構造了一個創新循環。
驅動大量事物(從你的烤麵包機到火星飛行器)運轉的無數種軟體,正是這種輕鬆地將各種程序組合在一起的能力的直接結果——開源開發模式讓所有這些軟體得以成為現實。
作者簡介:Jeffrey R. Kaufman 是全球領先的開源軟體解決方案供應商 紅帽公司 開源法務團隊的資深商務法律顧問,還擔任 北卡羅來納大學 的兼職法律教授。在任職紅帽公司之前,Jeffrey曾擔任 高通公司 的專利和開源法律顧問。
譯者簡介:薛亮,集慧智佳知識產權諮詢公司互聯網事業部總監,擅長專利檢索、專利分析、競爭對手跟蹤、FTO 分析、開源軟體知識產權風險分析,致力於為互聯網企業、高科技公司提供知識產權諮詢服務。
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive