為什麼要用 Linux?在 Linux 已經發展了十二年多的今天,其實我倒要問:為什麼不用 Linux?以前人們不願意使用 Linux 的原因不外三大類:沒有所需的應用軟體、不想花時間多學一套作業系統、或是沒有廠商支援,這三大理由,除了不想學這個永遠在那兒的主觀意願問題之外,都已經不存在了。
廠商支援的部分,早在 1996 年筆者和幾位同事說服美國費米國家加速器實驗室採用 Linux 的時候就已經測試過,碰到自由軟體的技術問題時,在網路上問社群,和碰到買來的軟硬體的問題,打電話問簽了維護合約的廠商,兩種情形比起來,猜猜看,平均起來哪一種比較快得到答案?再猜一猜如果是軟體的瑕疵,哪一種比較快得到修正?
當時人們發現自由軟體在「支援」項目竟然打敗傳統商業模式的簽約廠商時,不由得大吃一驚!這實在是顛覆了軟體部署專家們數十年來的傳統,挑戰他們累積的智慧。可是在 2004 年的今天,讀者應該很熟悉網路效應了吧?
Linux 是你的好朋友
那多學一套作業系統呢?好像沒什麼必要吧?
這就要看你對電腦的要求是什麼了。如果只是打打字、玩玩遊戲,當機時 @#$% 一下,而且你面對不知下一秒鐘會不會當機、檔案寫得太大會不會毀掉這些風險無畏無懼的話,94% 的人在用的平凡的桌面系統就夠了。可是如果你希望從進辦公室到下班之間,要免於在會議報告前一分鐘當機的恐懼;在回家之後,要輕輕鬆鬆的上網、玩遊戲、不想去擔心中毒的問題;如果你要做那頂尖的 3%,那麼 Linux 是你的好朋友,花點時間接近她、了解她,絕對值回票價。
不過呢,電腦是用來幫助我們的,「會抓老鼠的才是好貓」,不管是提升工作效率、還是提供娛樂、還是尋找資料,Linux 這隻「貓」,到底有沒有足夠的應用軟體來幫助你?我試著列一些軟體和解決方案出來,給讀者們參考。每個項目經常有許多軟體,我無法一一列出,而每個軟體的特色為何、如何使用等,限於篇幅,只能在文末列出參考資料,請讀者見諒。
應用系統 |
自由軟體解決方案 |
商業解決方案 |
文書處理軟體 |
OpenOffice |
MS Office、SmartSuite
|
上網 |
Mozilla、Konqueror
|
Internet Explorer、KK
Man |
收發 e-mail |
Mozilla、K-mail
|
Outlook |
即時通訊 |
Gaim、許多
ICQ client |
MSN |
專業文件排版 |
TeX*
|
? |
繪圖及圖片處理 |
Gimp |
Photo Impact、Photo
Shop |
桌面排版 |
Scribus |
Adobe Illustrator
|
行事曆 |
Mozilla Calendar、KDE
calendar |
Exchange |
繪製流程圖 |
dia、xfig
|
visio |
圖形介面 |
XFree86、GNOME、KDE
|
Windows 中不可分離的介面
|
資料庫 |
MySQL、PostgreSQL
|
Oracle、MSSQL、Sybase、Informix、DB2...
|
網站架設 |
Linux + Apache
|
Windows + IIS
|
BBS 架站
|
Maple |
Cola BBS |
IRC 架站
|
ircd |
? |
路由器 |
自己架 Linux + gated/zebra
|
Cisco、Extreme、...
等公司的路由器 |
防火牆 |
iptables |
Checkpoint
等公司的防火牆產品 |
檔案伺服器 |
NFS、Samba
|
網路芳鄰 |
列印伺服器 |
Cups、LPRng、Samba
|
網路芳鄰 |
Proxy 伺服器
|
Squid |
MS Proxy Server
|
目錄服務伺服器 |
Openldap |
MS Active Directory
Server |
電子郵件伺服器 |
Sendmail/postfix
|
MS Exchange Server
|
名稱伺服器 |
Bind |
MS DNS |
網路設定伺服器 |
DHCP |
DHCP Server |
對時伺服器 |
ntp |
Windows |
企業流程管理 |
Compiere |
商業產品 |
個人資產管理 |
GNU Cash |
Quicken、MS
Money |
群組軟體 |
Evolution、php
Groupware |
Lotus、Exchange
|
網頁開發及電子商務應用 |
LAMP+
|
Windows + IIS + ASP +
MSSQL |
圖形介面程式庫 |
gtk+、qt、Xlib
|
Windows SDK |
交叉編譯 |
GNU Compiler Collection
|
商業平台上也以 gcc 為大宗
|
網路應用伺服器 |
Jboss/Jakarta-tomcat
|
MS MTS |
共同創作網頁平台 |
Zope |
? |
+ LAMP: 是 Linux + Apache + MySQL + PHP/Perl/Python 的標準縮寫,是當今最受歡迎的自由軟體網站開發平台。
* 嚴格說起來 TeX 並不完全算是自由軟體,但因為 TeX 可自由下載、悠久的歷史和大家對作者 Donald E. Knuth 的尊敬,也經常在談論自由軟體是被提及。
? 表中打問號的部分是作者才疏學淺沒有找到商業軟體。
知名自由軟體介紹
(表一)所列的,有些是非常知名的軟體,像 OpenOffice、Mozilla 等等,有些早就是「叫我第一名」的軟體,像 BIND、Apache、sendmail 等,世佔率(是世界佔有率,不是市場佔有率喔)第一名好久了,但大多數還等著你去挖寶!以下簡介幾個知名的軟體與開發方案:
Apache
網站架設 Apache 是全世界市場佔有率最高的網站伺服器。 除提供基本的 http 通訊協定外,對於虛擬主機、網路安全傳輸規格 SSL 及 PHP 等程式模組的擴充功能都有支援。 在各方面的測試下所展現的高穩定性與高效能使得它成為網站伺服器的首選。 目前可以在 Linux、Windows、Solaris 等多種平台上執行。
PHP
網頁開發 PHP 是動態網頁的支援模組,提供程式師開發瀏覽器界面 (WEB-BASE) 系統的功能。擴充性強,幾乎支援包括 Oracle 在內的所有資料庫的 SQL 查詢,與包括 LDAP、POP3 在內的多種通訊協定,與 XML/XSL、PDF、FLASH 等多種文件處理。由於其易學、功能完整的特性,全世界使用 PHP 的網站已經超過七百萬個。
MySQL
資料庫 MySQL 是 SQL 關連式資料庫,由於執行效能與穩定性高,操作簡易所以使用者眾多。 PostgreSQL 則是物件關連式 (object-relational) 資料庫,功能完整,支援 SQL92/SQL93 資料庫查詢規格。這兩種資料庫都是資料庫網站建置的最常見的選擇。
e化應用程式開發平台
網站伺服器 Apache、資料庫 MySQL/PostgreSQL 和 PHP 程式模組的連結,形成一個網站資料庫的開發平台。目前平台上已開發的各種應用程式,可以提供入口網站 (Portal)、知識管理(KM)、客戶關係管理(CRM)等服務,是目前相當流行的一種 e 化方式。
Java應用
應用伺服器 Java 的物件特性非常適用於大型的應用系統的開發,Java Servlet 與 JSP 都是網路伺服器上常用的 Java 技術。Apache 團隊所開發的 Jboss 及 Jakarta-tomcat 等軟體,就是支援這些技術的引擎,提供 Java 應用程式執行所需要的環境。目前雖然還在發展中,但極被重視,已擊敗 IBM 與 SUN 獲得多項獎項。
結論
因為自由軟體實在太多了,一般人沒去用自由軟體,常常是不知道他的問題已經有自由軟體可以解決,而不是知道了但不願意用。因此軟體自由協會在 2001 年寫了「自由軟體總藍圖」,而聯合國教科文組織 (UNESCO) 也於 2003 年開始支持美國自由軟體基金會的「自由軟體目錄」,現在已經分 26 類共羅列了 2884 個自由軟體,我想,在那裡面找到對你有用的軟體,應該不是太難吧?
所以呢,只要你願意去找一找,遍地都是可用好用的自由軟體!你需要的,是將這些軟體當作上游的原物料,好好的整合起來,成為為你所需量身打造的電腦系統,達到極致的效能!當你擁有了這種才能之後,你就可以用來幫助你的家人、你的朋友、你的老闆、你的客戶。不要小看這種才能喔!你仔細想想看,家裡水電壞了,來的水電師傅,他的才能到底是什麼?是很會做水管嗎?不是,是知道你的問題要用哪種水管最好。台北市要建 101 大樓了,請來的建築師,是很會做木工嗎?是很會立鋼骨嗎?是很會灌水泥嗎?都不是,是有滿腹的設計知識和材料新知,知道用什麼材料、用怎樣的設計,可以在給定的地點和環境中,造出最合客戶需求的大樓。套到軟體工程上來,除了商業軟體之外,自由軟體也是你打造電腦系統的好材料,適當地挑選自由軟體和商業軟體,會給你最優良的系統!
<作者為台大物理系客座助理教授,pyeh@softwareliberty.org, http://www.pingyeh.net/>