進度條

從自由軟體到開放原始碼,了解共享經濟的資源交換模式

本文將探討從自由軟體到開放原始碼,了解共享經濟的資源交換模式

作者: Vincent Ke 更新日期:

在上一篇文章中 [在開源時代的興起下,如何透過License共享並保有權益] ,我們介紹了許多License的定義與規範,而其中談到的 GNU General Public License,其實背後的理念基礎並不廣為人知,而自由軟體裡的(Free software) 也常常在自由"Free"一詞中遭人誤解,很容易讓使用者連想到「自由即免費」,當然這是一個錯誤的概念,但首要釐清的事情是,我們追求的自由,到底是什麼?

 

 

 

軟體就像食譜一樣,不應該輕易受限

 

 

想像一下今天你開一間餐聽,所有的菜單皆是依照食譜,加上喜好、地方特色及調味上去加以修正。當然這些菜色的味道甚至是內容都已經和原先的內容大相逕庭,而你也主動熱情的公開這些秘方,也樂於分享給其他喜愛食譜的人。但假設原先參考的食譜卻規範著你不能任意修正,甚至要求你制度化的來烹飪這些菜色,這樣的要求是否合理呢?

 

於是自由軟體(Free Software)在這樣的情境與疑惑中誕生了,他明確的定義一個軟體「自由」的準則。身為軟體開發人員,就可以透過軟體操控使用者。這些不自由(nonfree)或專有(proprietary)的軟體就成為不公義勢力的利器。

 

自由軟體運動社群的創始人Richard Matthew Stallman,也是 GNU General Public License的編者,也針對了自由軟體做出了定義:

 

 

"自由軟體的重點在於自由權而非價格。"

"你應該將「自由」想成是「言論自由」,而不是「免費啤酒」。"

 

 

就像我們購買的那些商用軟體,我們僅是透過付費的方式購買這些軟體的使用權,卻無法直接修改與散布軟體原始碼,而自由軟體其中的意涵表示著開發人員擁有著與其他人員合作的自由,以及這些二次作品的自由。

 

所以如果軟體使用者擁有下述的自由軟體四大自由,那恭喜你就是自由軟體的一員:

【自由-零】使用自由:可透過任何方式取得該軟體且並利用任何方式執行、使用該軟體。

【自由-一】研究自由:可研究該軟體的運作方式,並修改成你想使用的樣子。

【自由-二】散布自由:自由地複製、發佈該軟體複本並將該軟體分享他人。

【自由-三】改良自由:可以任意改良該軟體並散布改良後的版本,給其他人員或是社群上使用。

 

 

GNU計劃的自由軟體之標誌(資料來源:https://zh.wikipedia.org/zh-tw/)

 

 

只要符合上述四大自由皆可稱做自由軟體,且因自由軟體的中心理念是「自由 (freedom)」,而不是「價格」。

 

舉例:

GNU General Public License 就允許使用者在散布程式時,可在一定程度內收取散佈之費用。只要符合上述的自由標準就可以是自由軟體,而非用收費價格來判斷。而免費軟體當然不等於自由軟體囉,你可以去「史萊姆的第一個家」下載到許多"免費軟體",甚至是綠色軟體,但他們並沒有針對其中的技術、原始碼去做公開的部分,當然你也不能任意的修改囉!

 

 

自由是什麼,自由又保障了什麼

 

但這時就不免會來個提問,到底為什麼要使用自由軟體呢?商業軟體到底哪裡不好?

有購買過商業軟體(或是APP)的人想必就非常可以感同身受,每一個開發專案都會隸屬於某個團隊或是個人,一旦專案本身的利潤已無法繼續支持著該產品本身的維護、除錯已及擴充..等等,該產品就會開始停止維護,但這樣對原先花錢購買的消費者來說,是相當不公平的事情,更別提一些因為公司經營不善造成的維護中止了。

 

 

而自由軟體則是鼓勵開放程式的原始碼,並且散佈、改良、研究,只要你擁有開發的技術或資源,就可以參與這個產品開發的行列,且不需要透過其他人的同意,這樣的概念不僅自由,更可以讓軟體持續的被更新及改良。

如BBS、MUD 、phpNuke、Xoops、phpBB、Plone等,以及Blog網站程式、WordPress等,都屬於自由軟體。

 

 

正因如此,Stallman 也提出了與「著作權Copyright」相反的概念:

一樣保有對著作的專利及經濟動機,但不同的是可以為了保護自由軟體發展 (以及後來衍生的自由軟體運動),可以允許他人任意修正、散佈的「Copyleft 」,Logo也惡趣味的「水平反轉的©」,當然若你選擇「Copyleft 」,並不代表你放棄了你的著作權,而是允許他人自由使用,並強制他人也同樣授權釋出這些作品,透過著作權來進一步的促進創作自由。

Copyleft Logo (資料來源:https://zh.wikipedia.org/zh-tw/)

 

 

從自由軟體到開源軟體,一場社會運動在正掀起

 

有人說自由軟體就像是一種理想化的社會運動,也像是軟體界的共產主義,而其中因為自由意涵中的"Free"一詞太容易招致誤解,也有一些商業化不易的問題衍生,所以後來的軟體,艾瑞克雷蒙 (Eric S. Raymond, ESR) 和布魯斯佩倫 (Bruce Perens)於1998年成立了開放源碼促進會 (Open Source Initiative, OSI),並定義出了後來常見的開源軟體( open source software)。

 

簡單來說,符合開放原始碼的軟體,就是開源軟體(也可以稱作開放原始碼軟體),也就是上一篇提到的需要License的軟體,使用開放原始碼的大代表就有Linux ,Bruce Perens 對開放原始碼的詳細定義如下:


1.重新發佈自由(Free Distribution)

2.開放原始碼(Source Code)

3.可衍生寫作(Derived Works)

4.可保障作者完整的原始碼(Integrity of The Author's Source Code)

5.不可歧視任何個人或團體(No Discrimination Against Persons or Groups)

6.不可歧視任何領域(No Discrimination Against Fields of Endeavor)

7.需要散佈授權證(Distribution of License)

8.其中授權條款不得專屬部份特定產品(License Must Not Be Specific to a Product)

9.授權條款不得去限制其他軟體(License Must Not Restrict Other Software)

10.授權條款須保持技術中立(License Must Be Technology-Neutral)

 

 

開放源碼促進會Logo (資料來源:https://zh.wikipedia.org/zh-tw/)

 

 

開放原始碼的目的,主要是透過使用開放的方式讓軟體可以最佳化,但並非把原始碼做公開之後,就算是開源軟體,就有一點哲學。

如果你看到了原始碼,但對新使用者的修改、發佈不予尊重,例如之前爭異很大的Tivo機上盒,僅管他開放了原始碼,也使用了GPL,但卻不允許你執行自己的程式,這樣就失去了開源以及自由的初衷。

 

也因如此,當初為商業考量而創立的開源軟體,很多卻最後因為營利而失去了自由軟體的精神,所以開源軟體與自由軟體的確是兩個相異的概念。

 

 

並非所有的軟體開放原始碼之後,就符合了自由的定義,但所有自由軟體都是開放原始碼的。但一般絕大多數開源軟體也都符合自由軟體的定義,如遵守了GPL的開源軟體就是兩者兼具。而開源軟體一樣並非免費,就像商用的MySQL可是要收費的唷!

 

 

從開源了解世界的互利趨勢

 

開源提供了這世界一種不以利益為前提的交換模式,而互助互利的合作不僅可以保障消費者,更可以對軟體產業上應該倡導的一種制度。

 

而透過共享經濟來擴大產業面向和產能,正是這幾年新創產業中的首要趨勢,而身為科技公司的一員,如果產品可以吸引到更多優秀的開發人才一同去維護、甚至是完善產品,才是創造企業與消費者間的雙贏局面,就像蘋果開源了Swift,更應證了大企業正在迎頭趕上這樣的趨勢。

 

 

 

下一篇:是佛心還是惡霸條例,了解GPL開源許可證的風險與感染性

 


最後,如果你喜歡我們的文章,別忘了到我們的FB粉絲團按讚喔!!

Medium vincent

Vincent Ke

喜歡把混亂的事情變的簡單 用嘴巴做事其實很可以 但要結合靈活的腦袋思考 就一起來拆解吧