開源與 “半開源” 之間的戰爭和軟件的歷史一樣久遠
Linux 基金會成員峰會Linux Foundation Members Summit 上,最受關注的議題是人工智能和開源。而第二重要的話題涉及到 HashiCorp 放棄 Terraform 的 Mozilla 公共許可證Mozilla Public License(MPL),轉而采用 商業源代碼許可證Business Source License(BSL)1.1,以及由此引發的 OpenTofu 項目復刻。因 Linux 基金會對 OpenTofu 項目的支持,HashiCorp 的 CEO David McJannet 表現出極度的不滿。
關于許可證切換、源代碼復刻以及由此產生的爭議,火熱的討論并未減少。但在我看來,有一點被人們忽視:人們一直誤認為這是新鮮事物,實則不然。
之前已經有過不止一次,甚至不止十次,公司將開源代碼轉變為專有程序,或者隱藏在一個專有的包裝中。
首先,人們經常拿走開源代碼,但卻抹去其許可證信息,然后就此繼續下去。雖然這并不一定構成竊取行為,實際上,有些許可證,比如 MIT 許可證和兩句版 BSD 許可證,完全允許公司和開發者在他們的專有程序中使用這些代碼。例如,我們都熟知以下基于 MIT 許可證的程序,比如 Angular、.NET、Node.js、Ruby on Rails 和 React。
其次,有一些程序最初以開源的形式開始,但隨著時間的推移,原始所有者和許可證規則發生了變化,以至于許多人甚至都不知道它們曾經是開源的。舉例來說,蘋果公司的 macOS 就是其中的一個典型。
你是否知道 macOS 曾經是開源的?確實,它曾經是。
macOS 的核心基于 Darwin,這是一種 Unix 操作系統。史蒂夫·喬布斯Steve Jobs
如今,如果你深入研究,仍然可以在 macOS 中找到 Darwin,它在 蘋果公共源代碼許可證Apple Public Source License 2.0 下開源。雖然還有一項名為 PureDarwin 的工作正在努力制作一個獨立的 Darwin 操作系統,但進展甚微。在這個過程中,蘋果公司巧妙地減弱了一個重要的開源操作系統的影響力。更為常見的方式是開源軟件以 “開放核心open core” 的方式融入商業程序中。簡而言之,開放核心,與開源不同的是,這是一種商業模式。在這種模式中,公司基于一個免費的、開源的核心程序,然后通過加入商業版本或者專有的附加組件來發展。
此術語由 Andrew Lampitt 在 2008 年提出,雖然代表的并不是一個新的概念。他提出這個術語是為了替代混亂的術語 “雙重許可dual licensing”。這個命名更改是為了 “消除誤解,推廣一個對于開源社區、付費客戶和供應商都有利的商業模式”。同時,其目標也是為了消解我們現在在 HashiCorp 看到的 “誘捕并切換bait and switch” 類似的爭議。
盡管我們可以辯論這是否是一個 “出色的商業模式”,但無可爭議的是它已經成為一個非常流行的模式。然而,近年來,我們看到的趨勢是,許多企業從開放核心模式退回到 源碼可得source-available
例如,MongoDB 創建 了一種非開源許可證,即 服務端公共許可證Server Side Public License(SSPL),以應對那些通過提供自托管版本和服務從其代碼中獲利的超級云計算公司。
并非只有 MongoDB 做出了這樣的決定。Elastic 在開源核心模型運作的很好,但當亞馬遜 AWS 等公司通過提供 ElasticSearch 服務賺取巨額利潤時,Elastic 在 2021 年做出了 策略調整。它放棄了開源的 Apache 2.0 許可,轉而采用非開源的 SSPL 和 Elastic 許可證。
Elastic 和其他幾家公司(如 Redis 等)的此類做法,主要目的是阻止云服務公司將他們的開源程序作為一種服務而提供。然而,這個做法反過來對 Elastic 產生了負面影響,因為 AWS 對這個項目進行了 復刻。這一切是否讓你想起了 HashiCorp?是吧。
盡管這些向非開源許可的轉變惹怒了一些用戶和很多開發者,但這些公司的業績仍表現相對穩定。你可能對此感到不滿,但事實是,對于這些公司來說,這種轉變在一定程度上取得了成功。
接著,我們來看紅帽公司的情況。紅帽公司對其紅帽企業 Linux(RHEL)代碼的使用 施加了限制,只允許其客戶使用。幾十年來,紅帽公司一直在權衡作為開源領導者與處理 RHEL 克隆產品(例如 CentOS,以及最新的 AlmaLinux 和 Rocky Linux)的關系。
隨著時間的推移,紅帽公司對與他人共享其代碼表現出越來越大的猶豫。現在,你可以(且很多人確實正在這么做)辯論紅帽公司不再是一個真正的開源公司。批評者認為,紅帽公司雖然仍然嚴格遵守 GNU 通用公共許可證(GPL)的條款,但已經失去了開源精神。
雖然 RHEL 和與其相關的一系列程序仍在產生可觀的利潤,但紅帽公司希望能夠從中獲取更多的收益,因此,它也開始逐步偏離開源原則。
實際上,所有這些案例的共同之處在于:對更大財富的欲望。如圣經所言,“貪財是萬惡之根”。我不確定這一句話的真假,但我確實知道,對金錢的熱愛和開源原則很難兩全。
對于從開源軟件中賺錢并沒有錯誤之處。理查德·斯托曼Richard M Stallman(RMS)曾言:“工作尋求報酬,或者尋求盡可能增加收入,這并沒有錯,只要不采用破壞性的方式即可。” 然而,在 RMS 看來,“通過限制它們的使用來從程序的用戶中擠取金錢,是一種破壞行為。”
盡管在現今開源軟件與商業實踐交匯的情況下,RMS 的觀點可能并不如過去那樣深受歡迎,但他仍然擁有眾多的支持者。