談 GNU General Public License

GPL(GNU Public License)是現在許多網路上流傳的 Open-Source 軟體所採用的授權模式。由於一般慣於將之稱為 "Freeware",使得一般人常誤解這類軟體一定不能營利。事實上,這邊的 "Free" 指的是 "Freedom"(自由) 而非"免費"。
在 GPL 的前言就開宗明義說道:

"當我們談到自由軟體 (free software) 時,我們指的是自由而不是價格。我們把 GNU 通用公共許可證設計成您的保障,讓您保有發佈自由軟體的自由(您可以自由決定是否要對此項服務收取費用);確保您能收到程式原始碼或者在您需要時能得到它;確保您能修改軟體或將它的一部分用於新的自由軟體;而且還確保您知道您擁有這些權利。"(註一)

因此採用 GPL 的 Freeware,是允許使用者修改、散佈,只要使用者也遵循 GPL 的遊戲規則 — 不能限制其他使用者修改、散佈,並且讓他們也知道自己擁有這樣的權利。

也就是說,Mike 如果今天拿到 RedHat 公司出的 RedHat Linux 8.0,他若發現裡面有若干 bugs,想要加以修改,他可以把 RedHat 提供的原始碼拿出來加以修正,修正完成之後的成果,假如他的同學 John 也想要,Mike 可以 1) 直接送給他; 2) 以若干價格賣給他。但不論如何,Mike 都不能阻止 John 把這份新的 Linux 交給別人,或是加以修改;John 甚至可以原封不動的送給他的女朋友 Mary。

這邊有幾個問題存在:

第一,如果任何人只要遵照 GPL 的規範,都可以將他拿到的軟體自由散佈,那合理來說,GPL 軟體的價格幾乎不會高於使用者取得這份軟體的代價;例如說,某人可以選擇到網路上下載一份 Redhat Linux,也可以選擇到店裡面去買一張同樣內容的光碟;甚至請隔壁鄰居燒一張給他,三種不同選擇付出的成本,可能是時間、金錢或是其他機會成本,但其定價會趨近於取得成本。最終的結果是,售價都被散佈成本吃掉了,提供改良的人本身並沒有獲得好處。

第二,在作業系統上開發應用軟體如果也要被納入 GPL 的範圍中,也是不合理的。
通常作業系統都會提供所謂的 API(Application Interface),或是常用函式庫(Library),它們的角色就如同一台車上的各種操控元件,當車要轉彎時,我們轉動方向盤就可以,不需要去思考車子是如何控制輪胎、齒輪如何作用等等。有了方向盤這個 API 或是 library,某公司設計的自動駕駛機器人就可以藉著操控方向盤來控制車子行進方向,再配合上油門、煞車、排檔等等其他 API,這家設計機器人的公司並不需要去接觸到汽車研發的底層技術,就可以完成一個自動駕駛機器人。

從上面的例子可以看出來,雖然這個機器人是基於汽車的 API 來開發的,但是其關鍵技術和汽車本身並無相關。同樣的道理,在 GPL 的作業系統上,如果硬性要求使用這些 API 的程式被列入 GPL 的範圍,恐怕只會大幅降低開發新軟體的意願,因此為了避免這問題產生,必須要將 Library 或是 API 的 License 與一般的區分開,而有了所謂的 GNU Lesser General Public License (LGPL)。

在 LGPL 中,只強調對於原本的 library 的 freedom,也就是說如果我賣的機器人搭配上這台 LGPL 的車來賣,那麼我必須要告訴使用者這台車是可以自行改裝的,也可以複製這台車的任何部份,但是機器人本身的設計圖我可以不用給使用者。

實務上,採用 GPL 是不太可能靠軟體本身賺錢的。照 Richard Stallman(Free Softeware Fundation 發起人,註二) 的說法,GPL 的軟體是要靠服務而不是軟體本身來
賺錢。也許這樣的說法很奇怪,但服務其實包涵的範圍很廣,從客製化(Customized)、教育訓練、到修正軟體的 Bug fix 都可以算是服務。GPL 的 Free Software 的商業模式和現實並沒有什麼不同,就像水電裝潢我們可以自己去特力屋買材料來做,也可以請別人來幫忙,或是請專業團隊來施工設計。這些都是服務的範圍。

另一個有趣的商業模式是 MySQL AB 這家公司(註三),這家公司所提供的GPL 資料庫在 Open-Source 社群擁有非常高的知名度,同時在市場上也擁有不小的市佔率。該公司的 MySQL Server 同時擁有 GPL 和 Commercial License 兩種授權,也就是說,如果某公司今天想要開發一套資料庫應用軟體,又不想把原始碼交給客戶,那麼就可以向他們採購 Commercial License 版的 MySQL。相對的,對於一般人而言,GPL 版本是免費的,小公司若是自己內部要架設資料庫,就可以採用這個版本。

除了 GPL 之外,還有 BSD License(註四) 等其他 License 模式;BSD License 遠比 GPL 更為鬆散,它只要求附上原版的版權聲明,以及要註上"本產品包含由加州大學柏克萊 分校及其他貢獻者所開發的軟體"。更簡明的說,就是只要不宣稱整個軟體都是自己寫出來的,就符合它的要求了。以商業應用而言,這可以算是最好的選擇了。

註一: 譯文摘自 http://cldp.linuxforum.net/doc/GPL.html
註二: http://www.stallman.org/
註三: http://www.mysql.com/
註四: http://www.freebsd.org/copyright/license.html

Advertisements