自由軟體之春秋繁露

陳建勳
Frank J.S. Chen
立鋼工程顧問 結構工程師
frank63@ms5.hinet.net

Tel: (02) 2937-3219
Fax: (02) 2937-3230

摘要

倒數計時的二十世紀末,數位0與1的魔幻天堂即將成為下一世紀真實的生活情境; 改編的生活步調,彼此互助合作的社區精神將是未來生活的簡單藝術。 你猜怎麼著?是誰有這樣通天的本領創造革命性的新遊戲規則?不是誰,正是你和我。 資訊時代由你我所創造,也應由你我所共享共有共管; 資訊先鋒GNU首先作出了資訊自由化的回應。近年來發燒的Linux作業系統, 喚起廣大沉默的電腦用戶資訊自覺的能力。 瞭解自己,瞭解資訊,正是資訊時代來臨的徵兆。 我們無須有「資訊焦慮」之感,信手捻來的數位資訊, 打破傳統單向傳輸的被動狀態,贏得主動,贏得自主和自我, Linux正是這樣的時代背景下所產生的新一代作業系統。 且聽我娓娓道來……

前言

對一般人而言,GNU是很遙遠的東西。甚至於光是看到這三個字母分別看都看得懂,合起來卻不知為何意、如何發音的單字,就感到畏懼害怕了。GNU其實很簡單,GNU只想告訴你少數人合作的力量就成就了GNU。有了GNU,才有Linux;有了Linux,才出現了具體的開放軟體的觀念(Open Source Software,OSS)。

文章標題取義文史哲軌跡的鋪陳,有論有史,以史及論。釋例重義輕事,內容大多是述而不作的。基於尊重原文的原創性,篇末附有參考文獻的網站,讀者不妨上線查閱相關的文獻資料,以正本源。

本文的目的在於提供國內愛好或心嚮往自由軟體的大眾一個對焦的鏡頭,著力描摩自由軟體世界傳奇的色彩及其來龍去脈;然而,自由軟體已經走得很遠了,鳳毛麟爪的介紹也只能盡到勾勒角隅之概況而已。

拍案驚奇——GNU(Gnu's Not Unix)

GNU本身是一套完整而且自由的軟體系統,是1983年GNU計畫成立的主要動機,也是核心計畫。這項計畫是由理察.史托曼(Richard M. Stallman)一手開創主導,並由最初匯集熱愛程式設計不憂慮名利地位的程式設計高手一齊合作,到最近幾年透過網際網路無遠弗屆的通訊能力整合世界各國有心人士共同努力而成的。

GNU計畫不僅讓GNU系統相容於著名的Unix作業系統,還包含了開發各個不同領域所需的應用軟體。GNU計畫打出響亮的誓言,決心要讓軟體世界變成人間的一塊淨土,沒有惡性競爭,只有良性的合作;只要有人有需求,GNU便有求必應。

GNU是Gnu's Not Unix的縮寫。意思是說Gnu這套作業系統的確跟Unix很像,但絕對不會是Unix那一類的產品。字面上採遞迴的縮寫手法,乃是源自於一項MIT的傳統命名手法,像是TINT指的是“Tint Is Not Teco”,SINE指的是“Sine Is Not Emacs”,FINE是“Fine Is Not Emacs”,EINE是“Eine Is Not Emacs”,而ZWEI則是指“Zwei Was Eine Intially”。現在則延續到了GNU了。

如果去查Webster字典中gnu的本義,說的是一種頭長得像公牛,頭頂雙角彎斜,而身軀像馬的動物。自由軟體基金會(Free Software Foundation,FSF)的動物形象就是gnu,上網瀏覽時看到的牛頭圖像便是了。

GNU計畫開始後不久,理察.史托曼即發表了一篇GNU宣言,指出參予GNU計畫的人其所一貫認同、堅信的黃金定律就是:「假若我有個我很喜歡的程式,那麼我就應該把這個程式和其他同樣也喜歡這個程式的人一齊分享。」

理察認為販賣軟體的商人總想要分離廣大的用戶並主控用戶的思考邏輯,使得所有的用戶都同意不應該把自己手邊以金錢購得的軟體隨自己的自由意志隨興與他人分享。理察堅絕相信軟體和資訊不應該有人單獨擁有,軟體和資訊是為了人類的進步與和諧而生的,絕對不會因為這是某某人發明或發現的,其他人就都不可以運用這些資源。

GNU計畫一展開,旋即引起許多程式設計師的興趣。就理察於GNU宣言中所指出的,有一群程式設計師相當不認同商業的軟體。沒錯,商業經濟的發展固然得以增加程式設計師的年薪,然而失去更多的竟是程式設計師之間的友誼關係。在商業機密和商業競爭的環境之下,原本以互助合作為生產基礎的工作人士變得必須彼此防範,嚴禁共享程式資源。即使是購買軟體的人也得在遵守國際公約避免觸犯法律條文和友誼之間作出抉擇,以放棄自由意志而維繫公眾秩序。

當然我們不能知法犯法,古中國儒家那種知其不可為而為的阿Q精神在現代講法治的社會中是不合時宜的士大夫風範,然而平凡如你我,還是可以以個人的力量響應GNU計畫的。

消極面而言,你可以拒絕採用版權私有軟體(proprietary software),加入GNU計畫的陣營裡。這是理察的最高指導原則。以台灣現況而言,GNU計畫的推展也不過是近五、六年的時間而已,真正進入軌道,相信應在最近這兩年的時段左右,倘若斷然革命,恐怕難逃百日維新的厄運。當前建議的緩和作法是在電腦上同時擁有兩個以上的作業系統。其中一個便是GNU計畫所發展的GNU系統,或是核心程式改採Linux的GNU/Linux系統。以Linux而言,本身附有多重開機程式,有如OS2的一般,不會因為裝了Linux而造成終身遺撼。此外,所需的硬體資源要求往往都比時下時髦的超炫設備來得低上許多,果若真的要考量經濟不經濟,花小錢買服務、買品質、買自尊,有何不好的呢?是不?

積極面來說,你可以參與GNU計畫的各項小計畫,不論是發展程式,還是撰寫文件,還是贊助銀兩,還是訂購自由軟體基金會出版的各項印刷圖書等等,都是最有力的支持。理察認為寫程式這種事根本就應該是一種娛樂,而非人類賴以維生的手段。他以為喜歡寫程式的人平時應該忙於工作上的職責,等到了週末日假期時,才憑一己之喜好寫程式,彷若如切如磋,如琢如磨的君子風範,提供人類更多的未來遠景。這才是高度發展成熟的社會價值觀,絕對不是靠買賣來應驗供需平衡的物理準則。

加入GNU,不僅不悖於法律規範,還得以體驗人本主義的意含,指導我們明白分享資訊其實是一件最合於自然之道的生存法則,唯有親切、合作沒有敵意、防備的生活環境才是我們真正想要的純淨社區。

在工作職場翻滾的人想必都有一個共同的感慨,咱們左手裡握有的經驗和右手中掌控的資源十之八九是憑著血淚一點一滴偷偷的積攢而成的。市面上已有「呆伯特法則」,「不要跟豬打架」的摩西十誡之類的作品出現,顯然思潮已逐漸由早先講求兵法、研究戰術的強硬對戰轉變成目今的柔性轉彎,可見得近幾年來,在這世紀末的最後一刻,人們已經感受到彼此以鋒利的刀劍互砍,可不是什麼明智的作法,不過徒然增加「傷口」罷了;何不放下武器,合作過生活呢?

GNU計畫標榜資訊透明化的精神,在資訊社會中是最值得喝彩的創舉。未來學家都說未來誰能善用資訊誰就是最大的贏家。誠然,是也。然而,我們也必須意識到一點,是否我們所接收的資訊都是第一手的呢?這固然牽涉到未來二十一世紀的人處理和選擇資訊的能力,然而這卻是保證人生而自由的根本信念的延伸。資訊即自由,自由即資訊。數位化的世界應由全體人類所共有、共享、共同開發、共同監督,這應該是無可否認的基本人權。GNU計畫在程式設計的領域裡跨出了第一步,所有符合GNU精神的程式碼,都必得提供可行的管道,讓任何想一窺程式碼的人都有辦法看到原本的程式碼是長得什麼模樣的。這樣便保證了資訊的傳遞過程中不會被刻意地中斷、竄改甚或終止了(詳情請參閱GNU GPL與GNU LGPL)。

有了GNU這套公開原始程式碼的作業系統,諸子百家不用再寒窗十年自創品牌;眾家大可省下重覆浪費的發展時間,直接採用現成的成果作為發展的基石,便能花更多的時間追求設計藝術的境界,以更快的腳步取得更好的品質,排除因商業私利的訴求而延遲的軟體研發時間和功能的提昇。

專精的用戶可依自己的需求更改系統和軟體,而一般大眾則不用再受限於某人或某家公司的箝制,可依情況逕行轉換別的服務管道,節省成本,掌握主控權。 學校單位更可以提供最佳的教育環境,不僅有知性的功效,還兼具感性的人文關懷,是學習生活和增長知識之間最完美的組合模式。理察說道:「哈佛大學的電腦實驗室就曾實際要求任何未公開的程式碼不得安裝至電腦裡執行。這正是影響我最深的想法。」例如柏克萊的Unix,其實就是一群學生的傑作;到後來的FreeBSD,都留有這些歲月的痕跡。

軟體廠商為了圖謀利潤,發明了使用執照的觀念。更運用資訊管道協同商業組織強力推銷,灌輸一般大眾接受這是正確無疑的觀念,指出所有想使用軟體的人都應該付費購買軟體的使用權,而不是擁有這套軟體?對軟體而言,推展這樣的制度是否本身就是個錯誤,也許得等上個上百年,待後來的子孫替二十世紀末的軟體觀念變革冠上諸如「軟體文藝復興」之類的歷史定位詞之後,才有辦法回過頭來否決版權制度的錯誤發展方向吧。

強勢文化主導世界思潮的方向和主流,然而今日強勢文化中在商業動機主導下出現的金錢利益導向的使用執照制度,同時期也有一股反對的道德勢力奔湧而出,並茁壯成熟至遍及世界各地的人都普遍認同的觀念。由此,我們便有更堅固的信念來質疑軟體版權的觀念是否正當了。由歷史觀察可知對與錯的準則往往隨時代的更迭而有不同的看法和認定。物亟必反,陰陽相生,兩股勢力原來就是互為消長的,這點在流行時裝上更容易看得出來。

GNU的精神支柱根源於人類互助合作的天性;原始時代茹毛飲血的人互助合作,是為了能在那惡劣的氣候和環境底下博得生存的空間和食物;今日,文明人類的互助合作,應是為了全人類共同的福址而努力的,你說是不是呢!

醒世恆言——資訊自由

「軟體(softwares)」的發展較諸人類的歷史,猶如滄海之一粟。一般認為人們大約是在50年代前後,開始散佈軟體的。差不多在60年代時期,才開始有人把商業腦筋動到軟體頭上。就軟體這個領域而言,過去的歷史根本沒有傳統的法則來規範行為和道德的尺度,事情該怎麼做,眾人有那些權力,都沒有可供借鑑的傳承經驗。於是從別處生活領域裡擷取相類似的事物以明其內外連繫的類比方法便是人們最容易找到的方法論了。

歐洲大部份的教授比較贊同的類比方法就是把軟體類比成數學。軟體其實是一連串的數學公式的組合和應用,而現今所有的數學公式是為全人類所共有的,並沒有人能獨享或壟斷。任何人都能做備份,都能自然地應用公式解決問題,把公式的符號改成自己喜歡的符號等等。

另一項類比就是食譜了。對大眾而言,這是相當切實的類比方法。食譜一經公開,有誰不能逕自取得、套用,甚或修改配方成為個人所喜愛的菜色的?食譜當然可以販售,然而一道菜裡的香料和烹調方法卻是因人而易的;食譜的原創人並不能以某道菜是他發明的,就強制規定任何想做這道菜的人都得按照食譜上的要求全數做到,一點也不能更改啊。

當然食譜也可以秘而不宣,私相授受,代代相傳下去,成為祖傳秘方。不過,這已經不是GNU世界的精神源頭了。類比不過是取其意義相近、相合之處做為比較說明,若想全靠類比以覆蓋天地,那是鄉愿的說法。

今日版權私有軟體的類比想法其實是來自於書本的發行。這是因為寫程式的人有權決定程式碼的發行方式,而不是使用程式的廣大群眾。以人性來推論,人本來就傾向於做出對自身有利的決定,就如同人一出生就具備了說謊的本領一樣,純乎來自天性。然而理察認為這是人的自覺中最自私的作法,不值得效法。

當理察開始他的MIT生涯時,那時的程式碼根本沒有不能分享給他人的這種想法出現,史丹佛、CMU還有即使是迪吉多公司的人,大伙兒都是這樣的。理察說他那個時候常常可以從迪吉多的系統,像是PDP-11上面找到許多的程式碼,如交叉編譯器等,並把它移植到ITS上去,且增添了許多新的功能——那時的程式碼是沒有版權的。

共享的精神深深地影響著理察的行為舉止,他希望自己所寫的一切程式都是有用的,而且如果有人願意去使用的話,那最高興的莫過於他了。所以當理察發展出第一版的Emacs時,理察便規定所有想用Emacs的人,都得成為Emacs社區的一員:亦即這個社區的所有成員都有義務把自己新添加的功能貢獻出來分享給所有的人;所有更新的功能都得把原始程式碼寄回給理察,以便整合成下一版新的Emacs的更新功能,如此便得以確保這個社區的任何一份子都可以得到新版的程式。

理察說道:「程式設計的領域已變得其醜無比了,諷刺的是現在這個領域的人想的只是他到底能從中抽取多少的錢,而不再是對這個領域裡的其他人和用戶好不好了。」

對理察而言,「擁有資訊」本身就是一件邪惡的舉措。他認為擁有資訊對大眾而言,不論在物質上還是在精神上都有三種不同層次的傷害和污染,每一種物質傷害都對應到一種精神污染。現在依序列述如下:

﹒降低了軟體的使用頻率:當軟體標上價格,便造成軟體的普及率下降。版權執照的發明被軟體廠商歌頌為開創之舉,事實上,這樣的開創之舉恰足以造成使用人數下滑,於是形成了無形的浪費。在GNU的世界裡,任何想要你的程式的人都不需要太過於麻煩,你只需要把程式寫好,然後清虛無為,任憑人來處置你的程式便可以了,就這麼簡單。版權軟體的觀念造成人與人之間的冷漠和自私,原本應該是彼此分享的軟體,如今卻為了遵守版權軟體的法律規範,形成了軟體私有的觀念,一旦花錢購買軟體之後,這套軟體就死了。這便是理察以為的第一種精神污染,人不再和藹的彼此對待了。

﹒用戶不再有辦法更改程式碼:一套程式不可能滿足所有人的個別需求,故而自行更改軟體是非常符合人權的基本觀想。當軟體套上版權制度後,用戶們不再有權利拿到原始的程式碼,更別說是去變更功用或者改善性能了。對大多數的程式設計師而言,都是很沒有意義的精力和時間的浪費,同一種功能的程式碼只能在各自的象牙塔裡重覆撰寫,許多人都在做相似的工作,為的都是發展功能雷同的軟體?這不就是浪費了嗎?間接地,當人們認識到這項無奈的事實時,便容易因循現有的軟體水平,不再深思改進了。這就是理察以為的第二種精神污染,故步自封。

﹒程式設計師之間的互動消失:任何領域的知識要暴漲,肯定與前人所累積的知識經驗和成果有密切的關聯在。如今資訊的擁有制度卻是設計出來妨止人們汲取前人的成果作為後續的研究發展之用。任何進入此一領域的人,一切都得從零開始,整部人類的文明發展史終將因軟體版權的發明而停緩下腳步來。若軟體全以GNU的精神作為號召,程式設計師的需求便降到了最低量,只需有高品質的程式設計師而不用那些學不精、藝不純的半吊子來充任這神聖的事業。程式設計如同其他領域的科學活動一樣,秉持的都是熱誠而已。科際間的互助合作,期望的都是人類長遠的福址,而非一己之私。現今,程式設計領域裡的人,再也不關心這項重大的議題了,這就是理察以為的第三項精神污染了。

程式設計是一門藝術,媲美數學家、音樂家之類的生活理想。這世上總有許多人不在乎是否得以發大財,坐黑頭車,只想成為理想中的理想人物,為自己的興趣而活,為了生活中的樂趣而追尋夢想。果若真有大筆金錢落在這些人頭上以展現其才華,最終的結局多半是整個人莫名的消失收場,而程式設計家也頗同於此類族群。眾人總以為這些人是因為待遇不夠好才留不住人的,然而人性中那股追求理想的熱誠總是被金錢抹煞的一無是處,彷若只有金錢是維繫人類進步的唯一動力一般,殊不知人還有尊嚴、還有熱誠的心、還有追求人生真善美的本能。

高薪不是壞事,壞的是程式設計的理想全被商品代替了。理察看見人工智慧實驗室獨特風格的世界被摧毀後,便也看出了軟體商業化是破壞的主因。GNU計畫便頂著巔覆軟體商業世界的旗幟,風雨飄搖的走過了近二十個年頭。

信念本來就是個人的信心所致。你可以虛懷地接受GNU的精神並相信這一切存在近二十年的努力是非常重要的,而且是引領人類進入二十一世紀最重要的突破性觀念;同樣的,你也可以說服自己,這一切不過是歷史洪流的一點兒小漣漪,起不了大作用的。然而,接下來登場的Linux會讓不信的人得到永生的。

野菊花—GNU/Linux系統

歷史點滴

GNU/Linux是一套仿Unix的作業系統,一般都簡稱為Linux。若溯本探源於歷史發展,可知Linux最先是由芬蘭赫爾辛基大學一名學生Linus Torvalds所撰寫、於新聞網路群組散佈的作業系統核心程式碼,係1991年8月首次問世於軟體園地的。由Linus張貼的佈告可得知,Linus發展Linux的靈感是來自於GNU計畫的自由精神,蓋以發展一套比Minix還要好的Minix為宗旨而努力。同年10月,Linus散佈0.02版的核心程式碼,宣佈已成功地將bash、gcc、gnu-make等等的程式移植到他所發展的自由版Minix作業系統。

原來Linus是以Minix作為發展的藍圖的,而且並沒有用到任何Minix的原始程式碼,故而任何有心想參與協助發展的人都得以免除侵犯軟體版權的憂慮;再加上Linus採開放的發展模式,公開原始程式碼,透過高速的網際網路聚集各地的設計高手共同合作發展,最後再奇蹟似的與GNU計畫吻合地連結一氣,終於創造了二十世紀末最引人長期高度關切的軟體新聞:GNU/Linux系統。

當初赫爾辛基大學ftp站的管理人認定這套全新的自由核心程式是「Linus的Minix」,ftp站上的目錄名稱便命名為「Linux」,以供玩家下載測試改良;Linux的大名就這樣定了下來。

理察•史托曼指出一般人都把GNU和Linux搞混了,殊不知Linux實質上只能算是優良的核心程式。一台電腦之所以能發揮強大的運算能力並非僅止於提供核心程式即可,還得有諸多的應用軟體和公用程式輔助,方得以稱為「作業系統」。然而,就在Linux這套核心程式發展成熟時,GNU計畫的核心目標GNU系統也只剩下核心程式Hurd還未完備而已;又因為Linus以GNU GPL的條款來規範Linux核心程式的發行條件,而且Linus早期所移植的應用程式也都是由GNU計畫所發展出來的,於是Linux便順理成章的成為GNU旗下的一員大將。由於這套同樣是來自於GNU計畫的作業系統,其核心程式並非是GNU計畫所發展的Hurd核心,因此便改稱為GNU/Linux系統。不過現在,即使是程式設計師也習慣於以Linux來稱呼這套自由作業系統了。

任何一位身處於資訊時代的人都會為這套作業系統的生成而感到驚訝和興奮的,尤其對國內廣大的莘莘學子而言,更是難有的機會得以握有完整、效能優良、近百萬行的系統核心程式碼;相信無論從那個地方著眼,對提昇國內軟體工程的技術而言,都有絕對的優勢的。

Linux的特色

Linux支援多種硬體設備,諸如x86、Motorola 68k、Digital Alpha、Sparc、Mips、Motorola PowerPC和ARM等等。由於程式碼公開,硬體廠商無須多付額外的版權費用,便得以替自行生產的硬體設備開發適用於Linux的驅動程式,提高產品銷售率。

軟體方面,如X,為視窗系統的工業標準;另外,由理察•史托曼主導的Emacs,提供視窗版和文字版的文書編輯環境,功能複雜強大,有一套完整的線上說明文件;而眾人合作開發的SpreadSheet,是視窗版的試算表,任何熟稔Lotus 1-2-3的人,看到這樣豐碩的成果,都會有莫名的感動的。當然,最為人稱道的,是Linux的網路能力,不論是SLIP、PPP、NetBEUI、DDP、X.25還是ISDN等等,Linux都有相應的軟體供應;而穩定的伺服器功能,適用於架設Intranet和Internet。

一般用戶受益於GNU GPL和LGPL的保護,可以不同的管道取得完整的Linux,故而Linux可以是「免費的(gratis)」。相對於Unix昂貴的版權費用,Linux稱得上是物美價廉。

除此以外,Linux還具有如下的特色:

• 具備多人多工:這表示Linux可以在同一段時間內服務許多人各別的需求。形象一點講,你可以一邊聽鐵達尼號的原聲CD,一邊編輯文書,一邊又在列印文件,還可以隨時玩X版的俄羅斯方塊。

• 支援多CPU:這絕對不是NT的專利,Linux也支援這種硬體架構,代表著更快速的運算和革命性的演算法即將成為時代的主流。

• 記憶體保護模式:程序(processes)之間不會互相干擾,保證系統能常久運作無誤。根據許多人下載系統評量程式(benchmarks)以測試Linux的執行效能,結果發現單單是配備486CPU的PC,效能便足堪媲美昇陽(Sun)或是迪吉多的中級工作站了。

• 動態載入程式:當程式載入記憶體執行時,Linux僅將磁碟中相關的程式模組載入,有效地提昇了執行的速率和記憶體的管理。

• 動態連結共享程式館:這表示執行檔的大小大量地減少,有助於節省磁碟空間。

• 支援多種檔案系統:如Minix、Xenix、System V等等著名的作業系統。將來NT的NTFS也會列入支援的。

• 看得見DOS:這是所謂的透明化(transparency);把DOS的FAT檔案系統視為特殊的遠端檔案系統,不需任何特別的指令便可以靈活運用,就如同一個在Linux底下存在的目錄一樣。

Linux文件計畫

Linux文件計畫(Linux Documentation Project,LDP)是為了替Linux寫出高品質、高水準的文件而成立的。截至目前為止,已成書的共有八冊,依續簡介如下:

• Installation and Getting Started Guide:這本安裝和入門手冊是專程替Linux的初學者而寫的,任何新手都可以從中獲得應有的啟發。

• The Linux Kernel:這本書專談Linux的核心程式是如何運作的,有如一本專為Linux而寫的作業系統導論,書中作者以自己移植Linux的經驗作為全書的基本架構,雖非為PC而寫,流暢的文筆,仍有一讀之處。

• The Linux Kernel Hacker's Guide:本書是The Linux Kernel的姊妹作,任何有心探索Linux心藏的駭客,有此導遊在旁,如入無人之境,桃花源泉。

• The Linux Kernel Module Programming Giude:這本書算是近期較新的Linux文件,由此可見文件的內容不斷地朝更深的水準邁進。此書是引領網路遊俠如何寫出好的核心模組程式。

• The Linux Network Administrator's Giude:有心想掌握Linux系統網路管理技巧的人千萬別放過此書。上天下海,左右逢源,從TCP/IP聊到NNTP和NFS的設定,無所不包。

• The Linux Programmer's Guide:此書是作者群中人數最龐大的一本合著本。以C語言作為全書的主軸,介紹系統呼叫函數、ncurses程式館、硬體I/O和移植程式至Linux等等的實務技巧,文字精練,是難得的好範本。

• The Linux System Administrator's Guide:這本書是針對中等程度的Linux人而寫的,讀者需熟悉整個安裝和設定的過程,還有對系統的操作有一定的靈活度,才比較適合進階系統管理人的身份。

• The Linux User's Guide:讀完安裝學習手冊,再來讀這本教你怎麼在Linux的系統底下四處逛街且不會迷路的好書。一般而言,即使是Unix的用戶,這本書也是適用的。

以上這八本書都有HTML的格式可供線上閱讀,也有各種排版好的檔案(如LaTeX原始檔、DVI或是PostScript檔)可以自行下載列印。目前已有人著手中譯這些成書的英文文件。若作為教學的素材,不僅教導學生施比受更有福的精神,使其明瞭社會的溫暖和仁人的尊嚴,況且這類圖書的宗旨多半鼓勵教學研究而不帶商業的氣息,印刷只須自付工本費,絕無盜版的虞慮,豈不一舉兩得?(當然,詳細的規則還是得遵循LDP發表的版權聲明。)

除了這些正規的說明文件,LDP還有一系列的HOWTO文件。每一份HOWTO都指向特定的主題,提供讀者“how to”解決問題的技巧和方法,故而總名為HOWTOs。目前HOWTOs有Linux HOWTOs和mini-HOWTOs兩種,國內業已成立HOWTOs中譯計畫,由一群愛好自由軟體精神的人士所組成的翻譯團體共同合作,而且造就了豐碩的成果。

Linux在網路上還有各種雜誌發行,如Linux Journal(由SSC發行,需付費)、Linux Gazette和LinuxFocus等。國內已有中譯版的LinuxFocus正如火如荼地進行中譯計畫,同樣是由一群致力於推展自由合作精神的人士所組成的翻譯人力資源,孜孜不倦地學習和奉獻一己之心血。

LDP的總目標是以提供所有和Linux有關的資源為己任的,除了最初的文件計畫,LDP也是各類Linux發展計畫的匯合之處,有關硬體、軟體、商業計畫等等的最新資訊大都可以從LDP的網站上得到。

Linux的發展

近幾年的發展,已使得Linux成為微軟、昇陽的另一大敵手。Linux挾其價格低廉、品質良好與穩定的競爭優勢,正無形無影地擴散至眾多以PC為主的工作平台上。早期因缺乏商業性應用軟體,單憑學術味道濃厚的工具程式,是無法打入一般商家的主流作業系統的。然而,今日的Linux已非吳下阿蒙,KDE、Gimp、Gnome等計畫相繼地開展,為X提供了更多圖形介面的桌面操作環境和應用軟體。

約1993年左右,Linux首先以發行軟體(distribution)的型態出現。這是一群完整的軟體,包含安裝程式、核心、應用軟體、X、驅動程式等的套件,經由Internet下載至磁碟片進行安裝。那時的安裝程式簡陋,難以成功地安裝妥當,介面親和力不足和硬體支援不良是最大的障礙。

後來出現了光碟機,光碟片的傳播媒體也應運而生,現今Linux廠商所製作的發行軟體也都是以此為主要的發行媒介。國內常見的有Red Hat、Slackware和Debian這三種。其中以Debian算是至今仍維持非商業型態的重量級發行軟體了,FSF曾經以基金援助過其初階段的發展。任何人都可以從Debian的FTP站上下載整套的發行軟體。當然,像Red Hat這樣的商業組織,Red Hat發行軟體一樣也可以從FTP站上下載,不過如果花一點小錢買光碟片的話,就可以得到額外的技術支援和有用的說明文件。

要得到這些光碟片,最簡單的方法便是買有關Linux的書籍,不論中文版或是英文版的書本,書背面都會附上一片載有該公司或組織所製作的發行軟體。一般書內多會有專章講解安裝和設定的過程,讀者可善加利用。不同的發行軟體有不同的安裝機制,然而都是Linux。

對國內用戶而言,最關切的莫過於Linux中文技術的發展情況了。X視窗系統已有穩定的中文版問世,各種中文輸入法和中文模擬視窗也已進入成熟的階段,相信未來會朝向應用軟體中文化的層面發展,使X的操作環境符合國內用戶的需求。

Linux的應用

沒有商業活動,就沒有Linux;沒有資訊自由的自覺,更不可能有Linux。

Linux除了是優良的軟體發展平台之外,也是工作、家居的好伙伴。有人說:「有了Linux,就等於有了阿拉神燈。」此言不假矣。又有人說:「到現在還沒有移植到Linux的軟體,肯定是一點價值也沒有的。」這話也不差呀。

Linux的發展證實了資訊會愈來愈便宜的趨勢;因為便宜,市場便無限擴張。商業活動也轉向為以服務為導向的型態。最直接的案例便是ISP的應用。

Linux可以用來架設ISP!

Linux Journal的發行人SSC(Specialized System Consultants)便是以Linux做為網路撥接服務平台的。要成為ISP業者,需要有連接至網際網路的能力,多序列阜撥接服務(如Cycades、Maxspeed、Gtek等公司所提供的軟體系統),PPP和SLIP的服務,Usenet新聞群組(如INN),郵件遞送(如sendmail),網頁伺服器(如Apache),備份功能(如tar、cpio)等等的應用軟體。由此觀察,主要的控制成本會落在網際網路的通訊租費上,投資Linux的費用是非常低的。

蝶與蛹—開放碼(Open Source)

開放碼的定義源自於Debian自由軟體的發行綱要,由布魯斯•派倫(Bruce Perens)起草,並經Debian GNU/Linux系統的發行人多次email的建議和修正而完成;時間約在1997年6月前後。

1998年1月網景宣佈將要公開其Netacape瀏覽器的原始程式,亦即Netscape Communicator 4.0版以後的瀏覽器都會附有完整的原始碼。到了2月,「開放碼」的標準名稱正式出爐,網景便於2月23日所發表的另一份聲明中引用了開放碼的字眼,自此Netscape便成為開放軟體了。

隨後網景也成立了Mozilla軟體開發中心,提供原始碼、文件和技術支援給任何想提昇該軟體功能的發展人士下載所需的資源。

開放碼的定義並非僅止於程式碼的規範,基本上,開放碼整合了至今各種組織,如GNU GPL、BSD、X協會和Artistic等等的發行執照,企圖建立一適用性和解釋層級更高更完整的通用定義,將資訊自由的普遍精神應用至商業上的軟體發展。因此,Linux也得稱為開放軟體。

Linux證明了將程式碼釋出於公眾匯集的網路上探討修正,不僅加快了軟體的開發速度,比之過去軟體IC的製程,更具備了網絡般有機的自給系統,進而得到更可靠更優良的軟體系統;較諸傳統封閉的軟體發展模式,Linux的確是十足的贏家。

最知名的開放軟體還有下列幾種:

• Apache:全球有超過一半以上的網頁伺服器是Apache,由C2Net軟體公司發行。1998年6月中旬,連IBM都選擇了Apache來支援WebSphere呢!

• Perl:著名的網頁設計用程式,其它諸如Python和C/C++也同樣受人矚目。

• BIND:提供DNS服務的軟體。

• sendmail:電子郵件傳遞的重要功臣。

值得注意的是,BIND和sendmail至今仍無任何足以與之匹敵的商業軟體可以替代!

結論

沒有電腦,人一樣可以活得很好;有了電腦,人卻可以活得更精彩。平面文字的單工系統早已成了恐龍時代的暴龍,如今多媒體的影音組合,聲光色彩毫不遜於大自然的風情萬種。

想像以滑鼠點覽古埃及金字塔秘密通道的趣味;置身於巴黎羅浮宮飽覽名畫的藝術之旅;藉由網頁進入電子大學遊玩的樂趣……。凡此種種,都是資訊科技帶給現代人的新型態的娛樂模式。

速度減少了空間相對的距離;網路打破了人我無形的藩籬。五四運動造就中國的新文學和新思潮;自由軟體革命則指出人類的互助合作是基因中的本能,一如語言的本能。

自由軟體來了,就在你我的身邊。

參考網站

  1. http://www.fsf.org/
  2. http://cle.linux.org.tw/CLDP/
  3. http://www.apache.org/
  4. http://www.debian.org/
  5. http://www.gnome.org/
  6. http://www.gnu.ai.mit.edu/
  7. http://ccss.cc.nccu.edu.tw/
  8. http://www.ssc.com/
  9. http://www.opensource.org/
  10. http://www.mozilla.org/
  11. http://www.linuxgazette.com/