技术开发 频道

2011尝试完全用GNU/Linux工作

  【IT168 评论】首先,请允许我依然把王垠称之为学长,虽然他选择了一条完全不同的道路。(顺便提一句,现在他在国外做编译器理论方面的研究,希望他做的是自己真正喜欢的事)他创作的长篇文章《完全用 GNU/Linux 工作》,洋洋两万多字,从不同角度居高临下的阐述了他眼中 Linux 较之于 Windows 的各种优点,这篇文章并不简单的是一篇论述 “ Windows 能做的事 Linux 都能做” 这样的文章。文章中通篇洋溢着一个计算机应用和计算机教育体系的人的万丈豪情,尽管可能偏激,但不乏详细的推理论述。不得不说,学长的很多想法,在近几年开源被越来越多的人所认识和了解的过程中,得到了证实。而另一方面,随着互联网的飞速发展, GNU/Linux 又迸发出了新的活力。以下的部分,就借用学长文章的小标题,从学长这篇文章之后的几年中展开。

  1 “UNIX 是简单的,你不需要成为天才也能理解这种简单。”

  学长在这里说的是什么问题呢?很简单,大多数 Linux 用户把 Linux 作为一个玩具来使用,而不是一个代表先进生产力的工具。很不幸的就是,时至如今,依然如此,而且一系列发行版带来的图形化,傻瓜化的浪潮几乎把所有的新用户卷进了这个漩涡。我身边的同学,凡是到大学后接触 Linux 的,往往使用 Linux 的唯一原因就是 Linux 有很酷的 3D 桌面,或者别人看到你在用 Linux 上网听歌的时候觉得你是一个勇于接受新鲜事物的人。一旦要真正做点事情,还是一边骂着微软的独断专横,一边默默地重启,等待 Windows 7 的四片叶子转啊转,然后挂上飞信,打开 QQ,启动迅雷,最小化,然后开 Word 写写东西,开 PowerPoint 看看课件什么的。

  并不是说这样不好。事实上,苹果的成功大致也可以归结于此。但是 Linux 少了折腾,还是 Linux 吗?归根结底,什么系统从现在看来并不是那么重要,Chromium OS 甚至要用浏览器颠覆整个操作系统的功能。而 Linux 上的开源软件,UNIX 的简单哲学,却成了更加重要的东西。举个例子来说。作为一个计算机系的同学,当你需要批量重命名很多文件的时候,是满世界的去找无数款不知好不好用的软件呢,还是自己动手写个小脚本来解决问题呢?按照 Larry Wall 所讲的程序员的美德——懒,不耐烦,狂妄自大,那答案一定就是后者,省时省力,又不怕病毒,正则表达式抑或信息提取,都不是什么问题。可是事实上那么多人还是选择前者,还把这个 Windows 下的习惯自然而然带到了 Linux 里面来。再比如 PDF 文件合并分割等等,明明 Ghostscript 一行命令的事情,就是有那么多人愿意特意下载一个小工具,小软件,哪怕这个软件唯一的功能就是后台调用 Ghostscript。不用说 Windows,就是 Linux 下这样的小工具也开始泛滥了。

  但是也可以看到一些同学不满足于此,并且开始尝试去理解 Linux。可惜这些同学往往过得比较纠结。虽然 Linux 往往是高效的,简单的,但是那么多“友好”的发行版是不是依然简单就是一个问题了。本来 Linux 的机制足够简单,修改一下 /etc/fstab 实现自动挂载,在 HAL 配置里写几行就可以挂载 USB ,想换个显卡驱动就直接修改 /etc/X11/xorg.conf ,想设置启动项就调调 runlevel 设置,想看看内核模块就直奔 /etc/modules。但是“友好”的发行版里面一切都没这么简单。为了迎合图形化的配置方式,所有这些都是自动生成的,要么是空空的,要么是复杂到让人无从下手的,总之让你想动也动不了,让用户永远做小白。这里不点名批评一个用的人很多的发行版,因为不管用几年还是搞不懂 Linux 是怎么跑的。“Make Easy Things Easy While Hard Things Possible”,前者做得越来越好是应该的,但是让人易用难懂,就又回到 Microsoft 的老路上去了。

  2 微软的地位

  自从有了 Apple 和 Google,这两年喷微软的人越来越少了。人们总是倾向于同情弱者,而且王者不再的时候大家就能念起他的好。学长写那篇文章的时候,微软把开源作为自己最大的敌人(比尔大叔是这么说的),但是现在俨然换成了苹果。和苹果一比,微软就成了一个比较开放的公司。至少人家产业链开放,API 开放,苹果倒是好,连 Flash 都不让用,脚本语言都不让写了。眼看 IE 的份额被开源浏览器一点点吃掉,卖终端卖软件的收入来源在互联网时代又不是那么靠得住,必应搜索又起色不大,不知道退休的比尔大叔还能不能坐的住。

  反过来讲,微软也不是开源的最大敌人了。很多开源软件现在都有 Windows 版本,而网络应用的出现把很多依赖 Windows 的软件跨平台化了。之前,我们还在抱怨为什么 QQ 没有 Linux 版,飞信没有 Linux 版,什么什么没有 Linux 版。我们在抱怨 Windows 平台的开发环境怎么怎么不好。现在 Web QQ,云输入法非常方便,Vim & Emacs 的 Windows 版也用着感觉还不错。想想自己有很长一段时间,当开机出现操作系统选单的时候,真的是随机地开一个来用。反正浏览器是一样的,编译器是一样的,写文档用的 TeX 都没啥区别。在这种情况下,开源也真的不屑于和微软较劲了。

  现在真正的问题是苹果,正如当年咄咄逼人的微软。当软件和硬件被结合起来,制造商帮助用户做出每一个选择的时候,我们仿佛看到了一个更为强大的“微软”的幽灵。如果你想知道 Linux 世界对此的反应,看看 Linus Torvalds pans Apple with ‘utter crap’ putdown。但是未来怎样就不知道了,螳螂补蝉黄雀在后,会不会是 Google 的云计算一统天下?那时的软件会不会重现 UNIX 大型机时代的辉煌吗?那时的我们有多少自由?这些都不是我们现在可以回答的问题。

  3 Windows 笼罩下的中国计算机教育

  只能说,习惯和体制化的力量依然非常大。大学依然在这么教,学生依然要这么学。没办法,开源软件罕有中文文档,所有资料难成体系,大家都是业余很热情,真正普及起来有难度。但是我能非常高兴地看到,至少在清华大学,很多课程对开源软件已经是非常友好了。虽然 Windows 下的参考资料较多,有些官方的课件也只有 Windows 下的范例,但是一般也会鼓励有兴趣的同学用 Linux 来完成大作业和大实验,反正至少不会限制基于 Linux 的解决方案。理论中心的很多课程作业都鼓励使用 LaTeX 排版来做,其他作业也大多可以用 PDF 格式上交,程序与工程可以用 VC 的 project,也可以用 makefile 和 GCC 工具。网络登录现在有了网页版,信息门户现在同时支持 IE 和 Firefox。不得不说,所有这些,都是非常有益的尝试。

  上面我批评过的那个发行版,这里需要表扬。以前 Linux 用户有一种单打独斗的中世纪英雄的感觉,出了问题就要求每个人都能和黑客一样一眼看穿。现在拜这个发行版所赐,有什么问题大家一起解决一下也成了惯例,宣传力度也上去了。这才是开源的力量。

  4 Linux,中文与国际化

  写到这里觉得没有必要按照学长的思路继续了。关于 Linux 可以做什么,不适合做什么,那篇文章中的东西完全适合现在拿来看——这就是经典的魅力。但是对于我们来说,还有一个重要的东西原文没有涉及,那就是中文与国际化。

  Unicode (常用的是 UTF-8 编码方式)正在逐渐淘汰掉 GBK 时代的那些老软件。Windows 一再地强调本地化,但现在,更重要的变成了国际化。无疑 Linux 在这方面做的非常之好。GNU 几乎所有的软件都有国际化支持,这得益于代码贡献者遍及全世界的优势。GTK+ 和 Cairo 的成熟,发行版开发者对全球用户的重视,使得现在多语言基本已经不再是问题。记得几年之前,安装好 Linux 最大的一件麻烦事就是配置中文支持。又要装字体,又要设地区,想让文件名不乱码还必须手动更改一堆参数,即使这么折腾下来 Adobe 的没点阵的宋体还是看得人各种不舒服,而且时常有基于 X 的应用程序动不动就乱码。而现在最重要的突破就是文泉驿正黑(独立开发)和微米黑(基于 Droid 字体),基本上把 Linux 的中文显示质量提高到了超越 Windows XP,达到 Windows 7,直追 Mac OS X 的水平。很明显的一个变化,之前各大论坛求宋体美化 fonts.conf 文件的人络绎不绝,现在已经很少有人用了。

  回头说说 TeX。TeX 的 CJK 宏包有大量的 Dirty Hack,现在更好的解决方法是 XeTeX,直接调用 Linux 系统的 fontconfig,可以使用 TrueType 和 Type1 字体,从而用轻量级的 XeCJK 宏包解决了中文字体和标点微排版的问题。由于用了 Linux/X11 的 fontconfig,所以在 Linux 下用就成了原生支持,效果很好。同样,喜欢 GUI 也没有错。用 LyX,一样能感受到所见即所得的好处,数学公式的即时显示,让看着屏幕想数学题也成为了可能,日常写点东西比 Word 方便,而且更加严谨。学长提到的 ConTeXt 也是个好东西,适合喜欢折腾的人来用。这个的好处就是可以像 HTML 的 CGI 一样,用脚本语言来“写”文档,这是 Word 之类的字处理软件所不能企及的。可惜的是这么多年 ConTeXt 没有一个像 XeCJK 这么专业的包来处理中文,否则的话一定更受欢迎。

  5 附录——最近出现的好用的 Linux 程序

  学长的文章附录中给出了一些好的工具,但并不是全部。现在来看,对比几年之前,很多工具都逐渐从新生走向了成熟。这是一件好事,因为我们有了更多的选择。

  GUI 编辑器:Gedit, Geany, Scite.

  绘图工具:Asymptote(矢量图), Gnuplot(统计图), Geogebra(几何图), Google 绘图(流程图)

  特别推荐 Google 绘图,好处是容易上手,用来做点不那么正式的东西非常方便。

  ftp 客户端:gftp

  自动下载工具:aria2(可以多线程,支持多服务器)

  桌面环境:Xfce 和 LXDE 两个轻量级的桌面环境。

  功能日臻完善,但是保持了必要的简洁和适度的可定制性。既没有 Gnome 或 KDE 那么多用不到的附件,又不像 FVWM 和 Openbox 一样欺负懒人。大多数人应该会不难上手吧。

  中文输入:轻量级的小企鹅输入法,终于又开始更新了。云输入法及其客户端,值得期待。

  浏览器:Firefox, Chrome, Opera. 现在只有在很旧的工作站上能看到 Mozilla。

  PDF & Flash:Google Chrome 自带,其实够用。

  BBS:Qterm 居然也一直在更新。

  英汉字典,Email 客户端,QQ 客户端,甚至放音乐(谷歌音乐,支持正版)都变成网页版了。

  看 Word 文档:上传到 Google Docs。如果嫌麻烦,写几行,DIY 一个 handler 出来就行。

  6 后记

  用 Linux + XeTeX + LyX 写完了这点东西。再次向王垠学长致敬。可能很多东西,这里的理解不够深刻,毕竟只是一个用户的所谓“感觉”而已,也不免掺杂了自己的主观感受。如果这点东西能让更多的人关注 Linux,更多的人去理解 Linux,作者也就感激不尽了。

0
相关文章