近幾年來,本土自由軟體社群陸續出現後起之秀,本期要介紹的就是其中之一,小至使用者的例行聚會、大到年度大型研討會,都可以看到他列名在講者名單中,談的內容從 Linux 核心開發到嵌入式 Linux 開發等,範圍廣闊,也顯示出他是獨樹一格的硬派開發者,他,就是 Jserv(黃敬群)。
◎ 學生時代 開始資訊技術探索
Jserv 與開放源碼軟體的起源始於 1997 年,當時還在念高中的他,為了設計作業系統而接觸 Linux;1998 年耳聞 Mozilla 計畫,獲得很大的啟發;1999 年接觸當時剛成立的 Jabber、成為早期前 20 名測試者。
後來 Jserv 註冊成為成功大學資訊工程系的學生,在 1999 年開始首度接觸 KDE 計畫、2001 年開始貢獻 patch、且對 KDE Konqueror 產生興趣,這段期間也接觸了 Linux、FreeBSD、Apache、Qt、Gtk+ 與 Kaffe[1] 等自由軟體專案;此外,Jserv 對 BSD kernel 產生興趣,也開始涉獵 POSIX 的技術範疇[2]。雖然大學時代開始接觸自由軟體技術,但 Jserv 表示都是自己進行研究,或直接參與國外的專案計畫,並沒有實際參與台灣本土社群活動。除了自由軟體外,Jserv 還擔任過成大夢之大地(校內最大的 BBS 站)系統站長。
雖然大學時期的 Jserv 對本科系沒有太大興趣,但他對硬體課程卻是情有獨鍾,曾修過包括電子電路、數位邏輯設計、計算機組織、BIOS 設計等課程,不但幫助他更加了解軟硬整合的重要性,對於日後在業界發展也很有幫助。到了大三,Jserv 先前為自己訂下的三個目標:寫 kernel、寫 web browser,還有寫 Java VM,已經大致完成,也做完 PC cluster 的分析與實作計畫,接著開始了數饅頭的日子。
◎ 進入職場工作 正式接觸本土社群
2002 年到 2003 年間,Jserv 在花蓮空軍雷達站服役,當時有機會接觸到許多年紀比自己大上許多的硬體,還學習到 Verilog 一類的硬體邏輯設計,對於後來在業界進行低階程式設計有很大幫助,並利用空檔、開始撰寫關於 Qt/Embedded[3] 的書籍,也利用閒暇作 Linux kernel 2.4 的分析。
2004 年元旦退伍後,Jserv 開始上班族生涯、在資訊科技產業工作,職稱就是專案經理,客戶包含竹科與台北地區的企業,他認為透過此份職務,讓他學習到很多待人處事的方法;同時,讓 Jserv 感激在心的是,工作上的主管對他都相當友善,允許他在閒暇時進行自由軟體專案開發,並適度引進優秀的自由軟體技術到公司產品設計中。
Jserv 從工作中開始觀察業界生態與國內自由軟體發展,從而發現自由軟體的開發有很大的問題。當時,許多包含政府在內等單位開始重視自由軟體,進行許多推廣的工作,但對「開發」本身卻沒有什麼著墨,許多 Linux training 如雨後春筍般開課、Embedded System 為主題的教育訓練也不少,但都收費不貲。這樣的現象激發 Jserv 開始試著去針對特定主題作免費技術分享,開始第一次在資策會舉辦的「中文應用讀書會」中分享[4],並開始與國內的自由軟體使用者社群互動,與台灣的社群朋友合力開發新酷音輸入法[5] 等一系列的自由軟體。在此之前,Jserv 遇到開發上的問題,大部分都是直接跟國外的開發者聯繫。
雖然身處資訊製造業,但根據 Jserv 在業界的觀察,台灣不是不能做軟體發展,而是台灣的軟體需要以更多元的方式來呈現,於是他開始接觸一些硬體的細節,包含自動控制、EDA(電子設計自動化)、邏輯電路等。
2005 年初 Jserv 辭去工作,開了一家小型的顧問公司,就叫 "Jserv's lab",協助客戶作全盤的嵌入式軟體設計、driver porting(包括 WirelesLAN、PCI 等)、多媒體處理、嵌入式網路瀏覽器解決方案,也開始進行 Blog 寫作分享所見所聞;那時候認識了 Debian Taiwan、Gentoo Taiwan、FreeBSD、OpenBSD 的社群朋友,是 Jserv 少數全職投入自由軟體社群的時期。Jserv 說,遇到有名的社群計劃開發者時,他都會習慣請對方簽名,短短兩、三年下來,他的簽名簿已經蒐集到許多不同領域的開發者簽名了。
隨後,Jserv 對消費性電子產品研發產生興趣,但這不是靠個人之力就可完成的項目,於是 Jserv 繼續回到業界,到某大手機代工設計公司任職,一方面進行專案開發,另一方面努力充實自己對於軟硬體設計、工廠流程,以及品質管理的技術。同樣的,新東家也給予 Jserv 很大的自由,可在非上班時間進行自由軟體開發[6]。除了正職工作,Jserv 也有半天時間可以處理一些顧問工作,項目從伺服器架設、輸入法,到繪圖軟體都有,偶爾也從事社會公益,免費協助架設網站;晚上則繼續進行自由軟體開發工作。
在社群的眾多奇才中,Jserv 認為對 svk 作者 clkao(高嘉良)的印象最深刻,他認為 clkao 給他以下數點的啟發:(1) 程式設計很有趣;(2) 要學會看書本以外的世界;(3) 由於自由軟體允許 free copy,於是創作就隨著網路散佈到世界許多角落,很可能連自己都忘記了,但有一天會有人寫信問你一些技術細節,因此寫程式是最好的記憶。
此外,2004 年 Jserv 在 Asia BSD Conference 遇到 DragonFly 與 FreeBSD 的開發者也給他很大的啟發,決定投入系統層面的軟體設計,陸續做了一些 kernel hacking,也設計了 RT nanokernel for Embedded Linux 等一系列作業系統等,簡單地說,就是允許多種作業系統並存,針對特定需求而進行服務的基礎建設。(下期待續)
[1] Kaffe 是第一個自由軟體的 Java 虛擬機器實做,以 GNU GPL 授權發行,網址:https://www.kaffe.org/
[2] POSIX 是 IEEE 規範各種 UNIX 作業系統而定義一系列的 API 標準總稱,國際標準名稱為 ISO/IEC 9945,網址:https://standards.ieee.org/regauth/posix/
[3] Qt/Embedded 是 Trolltech 的嵌入式圖形系統解決方案,以 GPL 與商業授權發行,現稱 Qtopia Core,網址:https://trolltech.com/products/qtopia/
[4] 內容可至 https://wiki.debian.org.tw/User:jserv 查詢
[5] 新酷音計畫是第一個跨越多種軟硬體平台的智慧型注音輸入法的實做,以 GPL/LGPL 授權發行,貢獻者不限於台灣人,甚至有 SuSE/Novell、RedHat 與 Sun Microsystems 等公司的貢獻與推廣,網址:https://chewing.csie.net/
[6] Jserv 在工作之餘進行的自由軟體專案,可以在 https://jserv.sayya.org/ 下的 "Open Projects" 查到