上二 (5/13) 來到國立中山大學聆聽自由軟體之父-Richard Stallman 的演講。前幾個月就知道他最近會來到台灣演講,不過一直以為只有台北場,而且又是英文演講讓我有些卻步。然而,台北場開放報名時我竟然還傻傻的沒有及時搶票,導致自己後悔莫及。在得知原來還有高雄場,而且又不用報名時頓時欣喜若狂,決定儘管自身英文聽力不是很好,也一定要去朝聖一下這位真正的大師!
是說那天在會場等待 Richard Stallman 到來時,剛好聽到前面有些人在討論到底可不可以錄影的問題。他們認為這是 opensource 的場合,哪有不能錄影的道理。但是詢問主辦單位時,似乎告知不能錄影,主辦單位會自行錄影。但是,這些人還是照錄了就是。而當 Richard Stallman 開始演講時,就先宣告了關於錄影/錄音與拍照的事項。他說,他歡迎各位錄影/錄音與拍照。但是,檔案必須要透過自由軟體的精神散佈,而且必須讓下載的人不會為了下載該檔案而使用到任何非自由軟體,甚至是檔案格式也必須要是自由軟體所採用的格式,像什麼 .MP* 或是 Flash 之類的一律不行。所以,不能把這檔案上傳到 Facebook、Instagram 或是 Youtube 等網站,因為他們都使用到了非自由軟體。這一開場的宣示就讓我震撼了一番,沒想到 Richard Stallman 的偏執程度實在有點誇張。
自由軟體
(photo credit: Lotus Carroll, CC-BY-NC-SA 2.0)
演講從自由開始講起,自由的英文單字為 free,然而 free 在英文的解釋中也有「免費」的意思(是說 Richard Stallman 連「免費」的中文都會講!),也因此導致許多人認為 free software 就是免費軟體。但其實 Richard Stallman 他主張的並不是免費 (gratis),而是自由 (libre)。
在演講中 Richard Stallman 談到了自由軟體 (free software) 與專有軟體 (proprietary software),講述這兩者與使用者的關係。
Richard Stallman 認為專有軟體會傷害民主,侵犯人民的自由。並主張自由軟體應該要有以下的特性:
- Run the program for any purpose.
- Study how the program works, and change it to make it do what you wish.
- Redistribute copies so you can help your neighbor.
- Improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits.
(以上順序雖然由 1 到 4,但在 Richard Stallman 的主張中,是從 0 到 3,這或許是工程師的浪漫?!)
然而專有軟體大概第二點到第四點都無法做到吧…甚至連第一點都是,很多軟體都會附上一些使用者授權來限制使用者的使用方式。
其中第三點,幾乎大部份的專有軟體都有限制使用者不能任意散佈,一旦進行散佈,就是進行盜版的傳播。所以當我們的朋友請求我們給予專有軟體的副本時,就會遇到一個兩難的問題:法律道德與友情道義。其實,這個問題好解決,Richard Stallman 給了兩個解決辦法:
- 不要擁有任何朋友(這就是為什麼有些專有軟體開發者沒有朋友XD)
- 不要使用專有軟體
專有軟體與惡意軟體
(photo credit: Nick Allen, CC 2.0)
Richard Stallman 說許多專有軟體都是惡意軟體,他們會進行一些惡意軟體的行為:
- 傳送使用者資訊到遠端伺服器
- 可以強制修改使用者的軟體
像 Apple 的 i 系列產品會搜集使用者的許多資料並傳回 Apple。而 Windows 可以強制更新系統,表示 MS 其實在 Windows 上留下了後門可以對使用者的軟體進行操控。甚至是 Angry Bird,也會搜集玩家的地理資訊並回傳至 Ravio 的伺服器中。
這個話題也引發了一位聽眾會後的提問,他想請問,若是為了改善使用者體驗而搜集資料,那麼也算是惡意軟體嗎?
Richard Stallman 的回答是:
只要能讓使用者選擇是否願意提供資訊,那麼一來就不算是惡意的行為。
另外,還有看似開放的作業系統 Android 在 Richard Stallman 眼中也是惡意軟體,儘管 Android 是開放原始碼的,但 Richard Stallman 說裡頭還是存在惡意軟體,不過他沒有明確指出是什麼。他說到現在的手機,其實就像是個監控裝置,使得政府可以完全的監控我們的生活。而這樣的現象,根本就是當初史達林的夢想。也因為這樣,Richard Stallman 拒絕擁有一支手機。
Richard Stallman 說到手機不是只有開機時才能監控,儘管再關機時仍然可以進行位置或是聲音的監控。最好的方法就是把手機電池拔掉,沒有電力就什麼都不做了了。但是,現在有些手機連電池都不讓你拔掉了XD。
突然也讓我覺得手機跟網路實在很可怕,想想以前喜歡在 Facebook 上打卡,似乎就讓我的許多行蹤得以被預測。Facebook 可以監控我的行蹤與動態,並進行預測。或許如果拿來進行使用體驗的改善或許不錯,但哪天若是我成為了政府的追緝對象,那麼是否我將無所遁形?!或許需要好好思考一下科技對我們的自由所帶來的影響。
而至於自由軟體呢?自由軟體就不是惡意軟體嗎?基於前面提到的自由軟體定義,即使自由軟體內存在惡意軟體,使用者也可以自行將該惡意軟體移除,使得該軟體不再是惡意軟體。
不過,這也是需要擁有技術能力才可行。突然覺得軟體工程師擁有非常強大的能力,但套句蜘蛛人片裡的台詞:
With great power, comes great responsibility.
身為擁有強大力量的軟體工程師,更應該肩負更大的責任來為這個世界上的軟體進行把關。
GNU 與 Linux
(photo credit: Wikipedia, CC-BY-SA 2.0)
GNU 是 Richard Stallman 所發起的自由軟體運動,GNU 的全名是個遞回縮寫「GNU Not Unix」,其目標是發展出一套 Unix-like 的作業系統。而當今有數以百萬計的人都稱呼 GNU 作業系統為 Linux,但其實這是錯的。一個作業系統不僅僅只有一個 kernel,還需要其他如編輯器、編譯器等等必要的軟體。只是 GNU 的 kernel 不夠好用,且花費了大量的時間在測試,所以 GNU 作業系統一直遲遲無法推出。然後碰巧 Linus Torvalds 寫了一個 kernel,並且讓 GNU 的其他軟體可以很好的與這個被稱之為 Linux 的 kernel 一起運作。所以,我們應該稱這套作業系統為 GNU + Linux。如果只稱呼該作業系統為 Linux,那麼就是在抹滅 GNU 的貢獻。
Richard Stallman 說道:
你只要多花一秒,就可以叫出該作業系統的全名。
自由與開放原始碼
(photo credit: Christopher Schmidt, CC 2.0)
Linus Torvalds 並不主張自由軟體的精神,其主張開放原始碼的精神。而 Richard Stallman 也不認同開放原始碼的理念,他認為開放原始碼貶低了「自由」的概念。兩者在所著重的面相不同,自由軟體相當強調「自由」,其宗旨是在捍衛人民的自由。而開放原始碼則叫著重於將原始碼以開放的方式散播,並由夠過社群的合作將專案推至完善。
我認為其實自由軟體的結果之一就是開放原始碼,為了達到自由軟體的特性 2 ~ 4,開放原始碼是必須的。因此,Richard Stallman 也說了許多開放原始碼軟體都是自由軟體。所以他不認同的是開放原始碼的理念,而非開放原始碼的專案。
在會後的提問中,有一位聽眾想詢問關於開放原始碼的問題。但每當這位聽眾講到「opensource」這個詞,Richard Stallman 就會回答:「我不談論我不認同的事物。」其偏執的性格在此也表露無遺。
對於 Richard Stallman 來說,現在的 Linux 並不是一個自由軟體,因為裡面包含了許多非自由軟體的 BLOB。這是因為 Linus Torvalds 認為只要方便就好,並沒有強烈的主張自由軟體,所以有些存在一些非自由軟體的套件在其中。而且 Richard Stallman 的激進理念認為,若是在軟體產生的過程中使用了非自由軟體,那麼該軟體就不該被視為自由軟體。
由於 Linux 並非自由軟體,因此 GNU 開啟的另一項計劃-Linux-libre。該專案會將 Linux 之中的非自由軟體的部分去除在進行發佈,所以這幾年 Linux 的快速更新大概累死了很多工程師。
為了消滅專有軟體,GNU 需要許多逆向工程師來對專有軟體進行逆向分析。Richard Stallman 認為,所有的學校都應該要教導逆向工程,像是他現在所身處的中山大學。唯有逆向工程的技術才能破解專有軟體的秘密,並利用來開發出該專有軟體的自由軟體版本。
學校與專有軟體
(photo credit: Vancouver Film School, CC 2.0)
學校應該要教導學生如何使用自由軟體,甚至是開發自由軟體,而非與編寫專有軟體的公司購買授權,或是接受專有軟體公司的免費授權。因為這樣一來,學校只是在培育出依賴這些專有軟體的奴役,這些學生畢業後勢必還是受這些專有軟體所控制。這也是我一直以來非常認同的觀點,我一直希望學校電腦的作業系統是 GNU/Linux,不要再要求學生使用 Matlab,改用 GNU Octave。還有像是什麼 M$ Office、Adobe 系列軟體或是資料分析軟體,如:SAS 等等。
不過成大近幾年似乎一直在推動自由軟體,常常看到有自由軟體免費課程。雖然影響力可能還不是很大,但我想繼續做下去一定可以使得學生減少對專有軟體的依賴!
另外,如果學校老師在課程上教導使用專有軟體,那將扼殺一些優秀的工程師。因為,當學校向老師詢問軟體如何運作時,老師可能無法告知學生。但如果今天使用的是自由軟體,老師可以直接把原始碼交付給學生,並與學生討論。修改現有的軟體才算是真正的開發,也才會有所進步。
自由軟體與雲端服務
(photo credit: perspec_photo88, CC-BY-SA 2.0)
近幾年雲端服務非常流行,SAAS (Software as a Service) 這詞相信大家都有聽過。這些服務會要求使用者將資料傳至遠端伺服器,由這些伺服器幫忙使用者進行運算。這其實也是一件不公的事情,因為這些服務就像專有軟體一樣,不能被使用者所掌控。伺服器擁有者擁有絕對的權力來決定該如何進行運算,然而使用者卻不一定擁有這樣的權力。
甚至這些軟體可以對使用者的資料進行監控,誰知道擁有者會不會偷偷將使用者的資料交付與其他人?!
而自由軟體就不會有這樣的問題,因為自由軟體是跑在自己的電腦上,使用者擁有絕對的權力與自由來決定軟體的運作方式。
民主與爆料者
(photo credit: Wikipedia, CC-BY-SA 3.0)
所謂的民主就是由人民當家,人民有監督政府的權力。但是政府常常背地裡暗自行動,因此我們該如何監督政府呢?就是靠告密者,像是 Edward Snowden 或是 Julian Assange。他們是民主英雄,Richard Stallman 請我們為他們歡呼!
但是政府會把告密者關入大牢以防止他們告密,當政府能夠追蹤通訊資料,就可以找出誰是告密者,並將他們送入大牢。因此我們必須要讓這些告密者更安全,不會被政府抓到。所以,防止資料被政府搜集是必要的手段。我們必須要知道究竟裝在路邊的攝影機是監控攝影機還是保安攝影機?!Richard Stallman 解釋了兩者的差異:
保安攝影機 | 監控攝影機 |
---|---|
拍攝固定區域且定時刪除資料 | 連上網路即時查看 |
法令應該規定這些攝影機的使用規範,並且在沒有法院的命令下,是不得查看這些攝影畫面的。不過,法院也是政府開得我想政府很難不監控人民。
Emacs 傳教時間與義賣
(photo credit: Wikipedia, CC 3.0)
突然,Richard Stallman 變身了。他戴上光環並穿上斗篷,突然變身成了 St. IGNUcius。
I am St. IGNUcius of the Church of Emacs and I bless your computer, my child. Long may you run.
然後開始宣揚 Emacs,並說 vi 是野獸的編輯器。使用 vi 不是最,是贖罪的方式,也太好笑XD。不過每次我打開 Emacs 都不會用…都默默把它關閉,看來我沒機會當聖人了。
在傳教後,Richard Stallman 開始義賣牛羚娃娃。並建議得標者把這隻娃娃跟企鵝放在一起。因為企鵝 (Linux) 必須要有牛羚 (GNU) 才能一起運作。是說最後這隻娃娃以 15000 新台幣賣出…得標者是凍仁XD。他還拿出了 HHKB 給 Richard Stallman 簽名,真是太酷了!
在演講結束後是簽書時間,只要購買 Richard Stallman 的書籍來贊助 GNU 就可以獲得本人的親筆簽名!想說這可能是我這輩子唯一可以見到他的一次,所以立馬衝到提款機領錢買書簽名!簽完書其實一直想找他合照一下,但是手中只有一隻 Android 手機,剛剛聽他一直說 Android 是惡意軟體讓我很不敢拿手機去問她能不能合照。索性去問了一下工作人員能不能用他們的相機幫我們拍,雖然我覺得 Canon 的相機系統應該也不是自由軟體啦XDD。
這場演講下來,其實最讓我感到深刻的體會是 Richard Stallman 對追求自由的精神。雖然我覺得他如此偏激的態度,其實或多或少也限制了他人的自由就是。但若是沒有存在一些激進份子,我想社會最終還是會被極權所統治。畢竟大部分人民其實不知道自己所享有的自由,這時就需要有些激進份子來喚醒人們的自由意識了。