2016年2月29日 星期一

《Revolution OS》與《The Code》心得(上):自由軟體 和 開源軟體 的歷史與展望

 

個人很喜歡這些紀錄片《Revolution OS》、《The Code》,把自由軟體、開源軟體的歷史以有結構、易於理解的方式的表述出來。當然其中對 linux 史料的偏袒、著重在西方觀點的陳述等地方還是需要被檢驗,不過,用來了解自由軟體和開源軟體的歷史來說,是十分傑出的紀錄片。

心得下集傳送門~

《Revolution OS》與《The Code》心得(下):自由軟體與麥卡錫主義、駭客與女性主義
http://mropengate.blogspot.tw/2016/03/revolution-osthe-code.html




一、紀錄片《Revolution OS》與《The Code》


2001 年,J. T. S. Moore 以自由軟體和開放原始碼軟體發展為主題,導演了相當可貴的紀錄片《Revolution OS》,訪談了若干先鋒者,是理解駭客 (hacker)、 GNU 計畫、自由軟體基金會 (FSF)、Linux 核心 (kernel)、開放原始碼 (open source) 和自由軟體 (free software) 基於不同理念各自發展、Netscape 宣佈 Mozilla 開放原始碼專案、基於 Apache 和一系列開放原始碼技術的公司、在 NASDAQ 上市等等歷程的第一手資訊。

下面是《Revolution OS》的 youtube 影片,很值得一看:



《The Code》是客觀且進階的題材,如 Torvalds 家庭的採訪,Linus Torvalds 曾經開發 Linux 核心的地方,講解開放原始碼社群的開發過程,並論述其哲學與訴求。





二、自由軟體 與 開源軟體 簡介


我很喜歡《The Code》的最開頭用食譜來比喻軟體自由的重要性,有好的食譜會分享給朋友知道,有些人會變更食譜的內容,加入一點個人的元素或想法,讓菜餚變得更好吃或自己喜歡的口味,之後再回饋給他們食譜的人。

如果說有一份食譜不能任意使用或改進,對於我們來說是十分古怪的。然而對於開放源始碼部分,許多人卻是將這古怪的現象視為理所當然。過去人們把 Microsoft 視為理所當然的選擇,但現在他們更清楚自己可以有其他的選擇。


1. 自由軟體 (Free Software)


自由軟體(Free Software)的定義界定了一個特定的軟體能否乎合自由軟體的準則。如果使用者不能控制軟體,就會反被軟體操控,而軟體開發者就可以透過軟體操控使用者。這些不自由(nonfree)或專有(proprietary)的軟體就成為不公義勢力的利器。

所以「自由軟體」是自由、權利的問題,而不是價格的問題。自由軟體的性質就跟「自由言論」一樣,而不是「免費啤酒」。

如果軟體使用者有以下四項自由,那軟體就是自由軟體︰

  1. 以任何目的運行該程式
  2. 取得軟體的代碼(source code)並學習程式的運作、修改為你想要的樣子
  3. 隨意發佈軟體副本以幫助別人
  4. 隨意分發你修改的版本(包括代碼)給別人。此舉可使你的版本惠及社群。

如果使用者有以上的自由,那程式就是自由軟體。你有自由用任何方式發佈副本給任何地方的所有人,不論是原封不動還是修改過的版本、不論是免費還是收費。自由的意思是不用給任何人同意、或付費取得權限。




2. 開放原始碼 (Open source software)


開放原始碼的定義由Bruce Perens(Debian的創始人之一)定義如下:

  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)

自由軟體是一個比開源軟體更嚴格的概念,因此所有自由軟體都是開放原始碼的,但不是所有的開源軟體都能被稱為「自由」。但在現實上,絕大多數開源軟體也都符合自由軟體的定義。比如,遵守GPL和BSD許可的軟體都是開放的並且是自由的。





三、自由軟體 與 開源軟體 的差別


1998年,自由軟體社群的某些人,開始改用開源軟體(open source software)來替代自由軟體(free software)之名,自此後業界和商業媒體的反應完全和之前大轉變,之前商人和商業媒體總是貶低自由軟體的價值,但同樣的那群人現在卻開始大肆發表文章有關於開源軟體的種種優點和美好願景,事實上內容卻是在談論和早先同樣的一些軟體和開發者。

然而,自由軟體(free software)即使不以自由命名,一樣也能獲致自由的實質,但還是要這個名稱。理由是:名稱代表意味,不同字眼傳導不同理念

「開放源碼」這個詞,迅即連結到不同的心態、不同的思維、不同的價值,甚至成為自由精神的新式檢驗尺。現在,自由軟體運動與開放源碼運動,已經各有分野。雖然實務上兩者能一起工作,底子卻有不同視界與不同目標。

開源軟體(open source software)的主旨源於部分人對於自由軟體(free software)感到不安。那是事實:

談論有關自由的話題、談論道德倫理的議題、談論公眾義務以及個己權益,等同於促使群眾思及他們一向以為無關緊要的事物。那將引發情感的不悅、以及某些人士的抵制。

兩個運動在基本層面的差別,係起於他們的價值信念,與他們看待世界的方法。就開放源碼運動而言,源碼伴隨軟體散播係實質必要,不是道德訴求。

有人這麼說,「開放源碼是一種開發軟體的方法論;自由軟體則是社會運動。」

開放源碼運動認為,非自由軟體 (non-free software) 還算是湊合理想的替代案。而自由軟體運動認為,非自由軟體之存在,即表徵了社會問題的存在,針對這個問題,自由軟體就是解決方案。




四、GPL 與其他的開源協議


《Revolution OS》這個紀錄片的觀點還是以linux與GNU為主,其實現今有許多開源協議可供選擇,下面是一個很不錯的參考網頁

五種開源協議的比較 (BSD,Apache,GPL,LGPL,MIT) 整理
http://www.awflasher.com/blog/archives/939


GNU通用公眾授權條款,GPL


GNU通用公眾授權條款(GNU General Public License, GPL)是一個被廣泛使用的自由軟體授權條款,保證終端用戶執行、學習、分享(複製)及編輯軟體之自由。GNU GPL最初由理察‧斯托曼(Richard Matthew Stallman)為GNU計畫而撰寫。

  • Copyleft 利用版權法來達到與其相反的目的:copyleft給人不可剝奪的權利,而不是版權法所規定的諸多限制。這也是GPL被稱作「被駭的版權法」的原因。
  • 傳染性:GPL協議的主要內容是只要在一個軟體中使用 GPL 協議的產品,則該軟體產品必須也採用 GPL 協議,既必須也是開源和免費。這就是所謂的傳染性。





五、紀錄片《Revolution OS》中的自由軟體、開源軟體論述


Richard Stallman 探討 copyleft 的理念

影片時間: 00:17:01,588 -> 00:18:11,592

摘錄: 「一般來說,自由軟體是有著作權的,它還具備擁有人、授權證的,它不是公共財。如果把軟體變成公共財,有人就能做些小修改,將之變成私有的套裝軟體,意思就是,使用者雖然跑的是我們的軟體,卻沒有合作共享的自由。為了以防萬一,我們用了種叫 "Copyleft" 的技巧,Copyleft 就是著作權 (Copyright) 的相反。」 
摘錄: 「我們的做法就是,這些軟體是受著作權保護的,但作者賦予你散佈複製的權力、賦予你修改的權力、賦予你添加的權力,但是你要散佈的時候,也得遵守這些規範,一個不能多,一個不能少。無論誰從你那裡取得軟體,同時也得到想要與人合作的自由,如此,不管軟體所到何方,自由也尾隨而至。與他人合作並組建社群,變成不可剝奪的權力。」


Richard Stallman 講述 Open Source movement 與 Free Software movement 的差別

影片時間: 00:48:07 -> 00:48:57

「當談論由三位發起人所提倡的 Open Source 運動的時候,我想我也應該談論 Free Software 運動。Open Source 運動聚焦於實質上的好處,讓你可以利用社群的方式,可以互相交流並改進軟體程式,我完全認同這個觀點,但為什麼我會參與 Free Software 運動而非 Open Source 運動呢?原因在於,能自由自在的與其他人一起合作、一起擁有一個社群,比起強大與可靠的軟體,使我們能生活在有品質與和諧的社會中才是最重要的。」


Bruce Perens 敘述他認為自己與 Richard Stallman 理念的異同處

影片時間:00:48:48 -> 00:49:51

摘錄:「我認為一些自由軟體圈的人對於商業化感到有些畏懼。呃,你知道的,成功必然能夠推遲反抗的到來。但我認為商業化是非常重要的,我們想要推廣這個軟體。我和 Richard Stallman 共事,而我不認為我和他有任何哲學理念上的差異,我是《開放原始碼定義》的作者,他則是自由軟體運動的發起人暨組織者。『他認為所有的軟體都必須是自由公開的;而我則認為自由軟體與非自由軟體可以同時存在。』這是我們唯一的差異。」

影片時間: 01:12:37 -> 01:14:33

摘錄:「向自由軟體基金會頒發托瓦茲獎,就像反抗軍收到韓索羅獎一樣 (Han Solo, 電影星際大戰的主角)。你們有些人還沒意會到,我說這是什麼意思。讓我來告訴各位,事情是這樣的,你 15 年前如果想用電腦,唯一的辦法就是使用私有軟體,然後被分化征服。很多人不喜歡這樣,卻毫無選擇。 
我們有些人毅然決然,要做出替代方案。我們要開發出一個自由的作業系統,基於自由軟體的作業系統,賦予人們在使用電腦上,有選擇的自由。很多人說,這主意不錯,不過太困難了,不可能成功,所以我不參與,我不相信你能成功。好在不是每個人都這麼說,我們很清楚地知道,核心最後一定能完成。碰巧的是,有人趕在我們之前,寫出了更好的核心。在過去,我們的總體策略是,喚起人們對自由的重要性、喚起他們在使用電腦時,應有卻沒有的自由。」





最後,是一些站內可供對照參考的 Linux 歷史資料和簡介^^

Linux 作業系統 歷史與發展簡介
http://mropengate.blogspot.tw/2015/08/linux-linux.html

Linux 主流發行版本介紹、比較與推薦
http://mropengate.blogspot.tw/2015/08/linux-linux_11.html





References


Openfoundry.org - 關於自由軟體
https://www.openfoundry.org/tw/about-open-source

wiki - 開源軟體
https://zh.wikipedia.org/zh-tw/%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6%23.E9.87.8D.E8.A6.81.E4.BA.BA.E7.89.A9#.E9.96.8B.E6.94.BE.E5.8E.9F.E5.A7.8B.E7.A2.BC.E7.9A.84.E5.AE.9A.E7.BE.A9

wiki - GNU通用公共授權條款
https://zh.wikipedia.org/wiki/GNU%E9%80%9A%E7%94%A8%E5%85%AC%E5%85%B1%E8%AE%B8%E5%8F%AF%E8%AF%81

自由軟體,不只是開放源碼
https://www.gnu.org/philosophy/free-software-for-freedom.html#translations

GNU 作業系統 - 甚麼是自由軟體?
https://www.gnu.org/philosophy/free-sw.html






技術提供:Blogger.