Related Posts Plugin for WordPress, Blogger...

前言

本篇採訪 Clive 文章是 Debby 在2002年時所寫的,有感於 Clive 對於我在 FreeBSD 學習路上的幫助,之前看到這篇時就一直想收錄下來(不知為何有這樣強烈的念頭!!),經過與採訪作者 Debby 及 Clive 溝通後,採訪作者 Debby 同意讓我收錄此篇。非常感謝 Debby !!

下列文字的內容來源為 Debby‧療癒之島:BSD Committer@TW之一 ——Clive的電腦世界回顧與展望

BSD Committer@TW之一 ——Clive的電腦世界回顧與展望

作為BSD Committer之一,Clive是國內 FreeBSD社群中少數幾個活躍的人,並曾短暫地接觸過Linux。然而,在網路世界外,Clive自陳因為身份敏感,因此不太願意露臉。但透過社群朋友的幫助,他還是接受本刊的採訪,讓更多人可以知道這位愛貓的BSD Committer的養成過程。

出身教師家庭的Clive,爸媽都是老師,有個小弟亦任教職,本身也在師範體系求學。然而,他卻不修教育學分,未來沒有為人師表的打算,從小就對電腦有著莫大的興趣,因此自認是他們家中最不像他們家的人。

和同年紀的人相比,Clive接觸電腦的時間算早,小學五年級就開始玩親戚家的第一台電腦(PC/XT)。當時讓他狂熱的是上面的電玩,好比青蛙過街、水果盤、酒保等老遊戲。光看他對那麼古早的記憶猶新,就可知道他對那段時間有著相當程度的懷念。他說,除了打電動,那部電腦對他的啟發,就是讓他認識dir 「密碼」(即指令),就好像阿里巴巴大叫「芝麻開門!」般,有了這些「密碼」就可以進入奇異詭譎的電腦世界。那時候他背不起來fruit(水果盤遊戲)這個「密碼」,只知道打dir可以列出那張磁片上有什麼「密碼」可以打。還有結尾是「.EXE」或者「.COM」的「密碼」,可以試著輸入看看的。

Clive回想這段過程,認為當時的認知很天真。不過知道「打dir可以看某些東西,再去嘗試看到的東西」的概念,對他有十分深遠的影響。他認為,對於 hacking(Clive採用jargon file的定義,指得是不屈不撓地克服各種障礙,以得到他想要的電腦知識,而非一般被污名化的駭客行為)這種自我探索的行為,要說是始於dir也不為過。

跟所有好奇的孩子一樣,Clive對電腦旁的書也產生興趣。那是他當時在讀大學的舅舅的書,大概是C語言概論、Lotus 1-2-3之類,只是國小的他看不懂。但他很開心地發現有本施威銘寫的《MS-DOS 實務手冊》中,有「一頁」他看得懂一點點。那一頁就是在講dir指令,讓他很高興看著同一頁不斷嘗試。閱讀文件的觀念,就在那時養成。不過,玩遊戲還是他碰電腦的原因,因此國小畢業時,他仍只會dir,外加/w等參數。

Clive真正認識「指令」這個詞,要到國中二年級。那時他家中買了第一部386電腦。學校的工藝課開始上電腦課程,老師教倚天中文、慧星一號、大易輸入法等現在看來十分過時的東西。Clive覺得老是操作這些軟體,或者背字根,實在沒什麼意思。因此跑去問老師,有沒有dir et之外的「密碼」可以打。老師愣了一下,指正他,那叫「指令」,不叫「密碼」。之後他還學到autoexec.bat、config.sys等檔案的概念,以及format、a:、c:、copy、edit、批次檔的觀念,然後對於相關實務手冊才比較有概念,從此建立電腦的正確觀念。

那時他詳讀《MS-DOS實務手冊》和《倚天中文實務手冊》之類的書,因為他對於操作彗星一號、打文章、拚打字速度等沒興趣。為了想學些跟其他同學不一樣的,半年後又去找老師,問了一句他其實不太確定的話:「老師,我想學寫程式,該學什麼好?」那時他壓根不知道寫程式是怎麼一回事,只是脫口而出一個好像聽過的字眼。於是當老師告訴他「BASIC」時,他像鴨子聽雷般回答:「喔……杯吸扣……怎麼寫?」老師很有耐心地再告訴他一次。但他聽了仍一頭霧水,只覺得心虛,想要趕緊閃人。

許多人可能因此覺得丟臉而打退堂鼓,但有hacker精神的Clive在這件事的刺激下,趁著到親戚家時,去翻找BASIC的書,並且找到了一本講 GWBASIC的書,和一片GWBASIC磁片。但這也只是他的一頭熱,在知道行號、PRINT、GOTO、加減乘除後,熱情不再,依舊在玩電腦遊戲中度過。

高中時,他加入台中一中的電腦資訊研習社(http://www.cirx.org)。這個社團在中部的重要性,就像北部的建中資訊社一樣,培養不少人才。但Clive覺得沒學到什麼,因為學長熱心地教C,他仍在寫 BASIC。那時Turbo C的整合開發環境介面搞得他一頭霧水,認為還是DOS 6.x內建的QBASIC比較好學。Clive呼籲大家不要覺得QBASIC一無事處,因為他可是花過不少時間,苦思code要怎麼寫才會簡潔,要怎麼改才會漂亮,還靠它拿過中區資訊月程式設計比賽的獎。Clive因此力陳,「如果某某語言可以實作某某人想得到的任何抽象程設概念,那對某某人而言,某某語言就是好語言」。即使他現在已經不會BASIC,但當初苦思如何寫好程式時給他的啟發,仍是相當深厚的。

那時有趣的事相繼出現,讓他脫離遊戲的懷抱,例如開始玩撥接式BBS,Windows 3.1、Windows 95也相繼出現了。那時DOS依然風行,很多事都要在 DOS下做。Windows 3.1還不太能用,常常壞掉。那時除了Clive父親要用 Word打碩士論文,所以他要安裝Windows 3.1給爸爸用外,大部分時間他還是覺得待在DOS命令列模式之下比較愉快。Windows 95 出來後,由於電腦配備太差,他仍待在DOS底下。直到上高三的事,接觸網路和Unix,進入他人生重要的轉捩點。

Clive高三時,高一來了目前在FreeBSD社群也是赫赫有名的人物——高嘉良(clkao)。對老鳥來說,clkao是個知道很多新奇事物的小鬼頭,程式功力也是數一數二的。Clive從clkao身上學到的第一件事,就是如何免費取得網路管道(free internet access or cracking)。當時要上網際網路,要付費用HiNet帳號撥接。而clkao神通廣大地得知某省立單位的撥接查詢系統,按了某熱鍵就可以 telnet到任何地方去。這對迷上bbs的Clive來說,是個福音,因為上網只要付電話費就好。

高三這年,Clive踏入IT業。因為網咖開始風行,中一中附近有間網咖開張。他本著一試的心理去打工作,從此就待在IT產業了。一開始他只是外場人員,因為除了BASIC還精通之外,其他的不會了。那家網咖也挺簡陋,只有一條專線,有顆 router,裡面有台陽春的Linux(1.xx版)伺服器。雖然現在的網咖形同新版的電動間,但以前的網咖還兼營內容網站。由於部分伺服器的問題沒人能解,所以Clive介紹當時在玩Linux的clkao做網管。但是光靠clkao,還是有些事做不完,有些程式來不及寫。於是會寫BASIC的 Clive就被老闆趕鴨子上陣了。他因此接觸Linux 0.9X、FreeBSD 2.X,認真地寫C,以及在NT上寫ASP。Clive說,用C寫cgi,可能有人覺得很不可思議,但他一寫就寫到大二。

前述的免費撥接系統是用FreeBSD架的,clkao和站長挺熟的。原本玩Linux的Clkao,跟那票人常接觸後,轉進FreeBSD領域。由於當時的Linux不夠好用,clkao便把那間網咖的Linux servers換成 FreeBSD,Clive也跟著把開發環境換到FreeBSD下。他當時的桌上型電腦是Windows NT workstation或是Windows 95/98,使用netterm連進FreeBSD server拿vi寫程式。Clive在大二之前對作業系統沒有特別偏好,之後由於擁有自己的電腦,花不少心力調整慣用的桌面和程式,如mutt、tin (讀新聞群組)。由於當時也接案子,得同時有server端和client端的環境,因此他在電腦上裝了FreeBSD,使用X window做為他的client端,從此開始習慣BSD。剛開始有問題就靠AltaVista.com搜尋網站,找關鍵字搜尋,看到指令就抄下來試看看。

Clive覺得用FreeBSD是件很有趣的事。因為想要試新東西,不必另外再找 server測;而且自己就是root,可以玩許多FreeBSD系統面的新事物。他對FreeBSD的認識,因此寬廣起來,不只是做為server用而已。用久了,能解決的問題多了之後,開始在新聞群組上回答別人的問題,也結交更多玩 FreeBSD的朋友。舉凡各種設定Q&A、新消息散佈、文件翻譯、程式修改,都玩過幾輪。他自認過去在 FreeBSD@TW出力最多的地方,該是i18n方面關於繁體中文的部份。在累積一些信譽後,作為FreeBSD@TW 的committer之一的vanilla,便寫了篇proposal把他拱上去,Clive因此成為committer,這是2000年12月的事。

FreeBSD Committers究竟是做什麼的呢?Clive解釋說,Committers是指能直接修改 FreeBSD CVS repository的人,也就是能修改原始碼的人。Committer最高階層是core,大約11人,然後依權力階層分為三群:src committer、ports committer和doc committer。三個之間的權力有所差別,src最高,ports其次,doc最末。Clive是ports committer。要做那個group的committer是自己決定,但其他人會審核資格。好比想做src的committer,要由core決定;想做ports的committer,則由ports的port manager決定。

由於最近工作和課業兩頭燒,Clive沒有力氣像之前去研究某個主題。目前頂多修修ports,然後幫台灣的submitters commit patch,仍會注意一些新發展,當作觀察與瞭解。他的首要焦點,是FreeBSD 5.0。5.0是目前發展中的版本,許多的功能都讓人十分期待。與FreeBSD 4.x 版比起來,5.0有許多的大改革,所以是一個大躍進。其次是注意FreeBSD 的 Java支援,因為他本身也是一個Java coder。Clive謙虛地說是看reference湊code出來交差的coder。

相較於 FreeBSD 4.x,Clive認為,FreeBSD 5.0最令人興奮的新功能,便是 KSE和 SMPng了。KSE 目前還在發展中,不過現在userland thread已經可以接上kernel thread了。5.0-RELEASE 之時,KSE 應當還不會發展完備,大概要等到5.2或5.3版本。簡單地說,SMPng是更善加利用多重處理器的計劃。SMPng做很多其它的改進,最顯而易見的好處是,大量減少了giant lock的使用;也就是kernel有更多機會可以同時在多顆處理器執行了!另外5.0令人期待的還有ipfw2、GEOM、c99等。ipfw2是完全重寫的ipfw,可以過濾任何的封包,支援 rule set等。GEOM則是基於分層架構的概念,將磁碟IO的動作分層拆解為各自獨立的layers,提供了更多彈性以及發展性。c99及 POSIX相容計劃,讓身處CJK(中日韓)語系的Clive更加的期待。FreeBSD i18n的發展,目前已有相當程度,但若要更加完備,則有賴將包含w_char的c99標準引進FreeBSD計畫。

還有FreeBSD的Java支援,相信也是很多人關心的議題。Clive進一步說明,Java本身雖然是跨平台的語言,但其實最難跨越平台藩籬的,就是JVM本身。Java執行的效率要好,有賴於和作業系統結合良好的JVM。FreeBSD現在已經有了native jdk1.[123],但是還沒有jdk 1.4,也是因為 porting JVM的難度很高。Native jdk 1.3的效率不夠好,要歸咎於FreeBSD 4.x及 4.x之前都沒有 kernel thread,只有user thread。這部分因此就要看5.0 出來之後能改善多少了。還有,目前Java在 FreeBSD/Linux的中文支援也不夠完美。前陣子有空的時候Clive曾經想要改善,至少得跟日文支援一樣。由於過於忙碌,因此工作停滯。於是 Clive在此號召,希望有人能hack一下。中文支援不良會遇到的困境,主要是在使用Java 設計UI方面。若能有完善的解決方案,因此受益的人應該會很多。

至於FreeBSD的未來發展,Clive認為,它會繼續保持低曝光率,這是本質上的差異。FreeBSD因為授權條款的關係,可以轉成私有化商品,未來仍有人用FreeBSD,但永遠不會像Linux那麼紅。即使目前用FreeBSD的公司不少,如Yahoo、Sina、FedEx、 Hichanel、中視等。由於Linux用GPL,GPL會吸引到的人,比較有熱血的傾向,而FreeBSD不是。Clive聳聳肩表示,吸引人的問題「不重要」,因為會用的人自己就會來用FreeBSD,不必特別去吸引人。FreeBSD在作業系統的設計概念上,其實是比較進階的prototype,使用者介面設計並非讓它受歡迎的原因。

看過Clive網頁的人,會對他網頁上的貓照片印象深刻。因為那隻貓被拍成一種奇怪的表情,「這是什麼臉啊!」難免讓人蹦出這個疑問。Clive放了不少貓的照片在網站上,供同好觀看、交流。Clive家裡的機器甚至以其中一隻來命名,叫「皮公公(fatpipi)」。為什麼那麼喜歡貓呢? Clive笑說,小動物很可愛啊, 如果有空間、閒錢可養,家人或者室友也都同意,有機會看到對眼的小動物,就會養了。而且許多FreeBSD committers都養貓,一群人常在網路上交換養貓經和趣事,像clkao有次在網路聊天室上出現一堆亂打的文字,讓一群FreeBSD網友一頭霧水,後來才發現是clkao的貓踩到鍵盤所致。因此有養寵物的念頭時,他第一個會想要養貓。

有次到通化夜市,看到有隻小母貓滿可愛,就帶回家成為他的第一隻貓,叫做奶油。奶油是隻很黏人的貓,跟狗差不多,Clive甚至覺得奶油自以為是人。後來便找了叫紅豆的母貓陪她,這隻有貓格多了。也許太有貓格了,有天蹺家後就再也不回來。其他貓都是奶油或紅豆生的。目前他家中有三隻,除了奶油之外,而還有皮公公和小雞。皮公公是奶油的兒子,小雞是紅豆的兒子。這三隻貓都已經閹掉了,以免過度繁殖或亂小便。「皮公公」就是因為被閹了,最近跟食慾不佳的主人一起減肥。

為什麼那麼多FreeBSD committers養貓?Clive說,貓是滿有趣的動物,有好奇心,會跳上跳下很可愛,會幫忙殺蚊子、蟑螂等,家中因此沒有人和貓以外的生物。貓撒嬌的時候也滿好玩的,會用頭拱來拱去,發出呼嚕呼嚕的聲音。最重要的該是照顧貓不必太花什麼力氣,自己會上廁所,自己會找東西玩,比狗獨立。有時沒空陪她的話,只要記得餵飼料、清貓砂就好了,其它的事貓會自理。可是養貓也會讓Clive無奈,因為貓聽得懂的人話沒幾句。大概只聽得懂「吃飯」和「滾」。聰明點的貓聽得懂「過來」,不過她懶得理人的時候也沒輒。

當然,養貓和玩FreeBSD沒有直接關連性,但Clive的經驗,或許可供一些不知怎麼打發閒暇時間的電腦玩家一些參考。

相關網址(Clive常會流連的地方):

  • FreeBSD Chat
  • FreeBSD.TW
  • KSE
  • SMPng
  • c99
文章標籤: