開源與 “半開源” 之間的戰(zhàn)爭(zhēng)和軟件的歷史一樣久遠(yuǎn)

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



















