为什么要用 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/>