硬件才是限制自由软件的 No.1

昨天舍友看到我在 Ubuntu 9.10 下 Coding,觉得界面比较炫,然后突然想起自己的机器上曾在 07 年装了一个 Redhat 9.2 Desktop 中文版。重启一下,怀念了一下往日疯狂装系统的时光。然后发现上不了网,为什么呢?

由于之前在学校使用的有线连接,目前屋子里头使用的是无线,他电脑上插着一个从京东买来的 TP-Link WN322G+ 2.0 的无线网卡,之前一直在 Windows 下装着驱动,自然跑得飞快,时常在网上“ 草蛋 ”。可惜的是在 Redhat 中,他也不知道如何设置无线,更别说安装驱动了。突发奇想的他,突然问我要 Ubuntu 的安装盘,那我倒是有,8.04 和 9.04 的都有 CD。

Ubuntu 的安装非常方便,在安装的过程中,他让我给他讲一讲我认为的 Ubuntu 的易用性和值得推荐的地方。我说其实我用的也很少,也就偶尔写写代码的时候会跑到 Ubuntu 中去,为了学习一些命令和常用的编译知识和 Linux 平台中的特性才会去使用,娱乐的时候还是选择 Windows。那么为什么当时会选择 Ubuntu 而不是别的 Linux 发行版呢?其实最早知道有 Ubuntu 操作系统是在 07 年冬天,那个时候开始泡 JavaEye,在社区中看到很多前辈们都在赞 Ubuntu。后来开始想学习一下 Linux 的时候就完全从零开始了,自己刻了一张光盘 (很高兴当时自己的台式机的光驱是个刻录机),开始慢慢的学习安装。第一次使用的还不是光盘安装,刻好了之后一直放在抽屉里头,安装时使用的 wubi 安装,真是简单方便快捷无副作用啊,和装迅雷、QQ 一类的 Windows 应用程序一模一样,一阵 next 就 OK 了。回到话题中来,其实自己觉得选择 Ubuntu 后,觉得很庆幸的一点是,自己选择了一个社区强大的免费软件。正式因为有社区中的人们无私的奉献和共享。我才能从一个连 swap 分区时什么都不知道的人,成为了一个可以指导别人使用 Ubuntu 系统的人。当然这也从另一个角度说明了一个问题——那就是 Ubuntu 的易用性还不是很好,因为它至少还是需要别人指导的——不过从零开始学 Windows 同样也是需要人来教的。社区的强大,相对的易用,绚丽的 UI,免费开放,这是我给出的四点。其中我个人的排序时这样的,社区强大,绚丽的 UI,免费开放,相对的易用。因为我认为社区的强大,完全可以解决易用性的问题,只要你敢问就肯定有人帮你解答。绚丽的 UI 是我一直追随最新版本 Ubuntu 的原因,因为每一个版本中都会有一些很明显的改进,不过最近发现其实内核的高低并不是问题,时尚其实可以掌握在自己的手中,保持一个比较稳定版本的内核和显卡驱动,之后你就可以在 gnome-look.org 中畅快的遨游了,想把自己的桌面整成啥样就整成啥样。就在闲扯之中,舍友的机器已经跑起来了,他的第一感觉是很不错,至少默认的挂载 Windows 分区的功能是让他狠狠地赞了一个(当年在 Redhat 中折腾的时候想必是很痛苦滴啊)。

之后就是准备安装软件了,提到 Ubuntu 安装软件,我们首选的自然是 apt-get 命令了,只可惜该命令只在你保证自己的机器能连接到一个有效地软件源上才能生效,要么有挂载的 DVD 映像文件,要么就得上 Internet。又回到了最开始的问题了,Ubuntu 中配置无线是很方便简单,但是驱动呢?我的机器是笔记本,自带的无线网卡在系统安装的时候已经装上了相应的驱动,而他就只能自己再次放狗搜索了。找了段网线,先连上有线网,把常用的几个软件搞定之后。开始尝试着去搜寻如何安装无线网卡驱动的文章,找到一箩筐还有得多啊。看来大家均碰到过这样恶心的问题啊。有很多的兄弟都在文中号称自己解决了,但是我们按着他的步骤来就是无耻的失败鸟。这是为什么呢?

我们可以来分析一下,主要应该有两个原因:

  • 内核的版本不一致。大部分宣称自己解决了问题的兄弟肯定是解决了自己特定的问题,比如针对 WN322G+ 2.0 这个无线网卡的文章就有好几篇 (看来这款无线网卡的销量还不错哦!),但是撰文时间大都是 2008 年的,甚至更早。而我的舍友装的系统是 Ubuntu 9.04 版本,内核极有可能高于别人。
  • 编译环境不一致。有一些文章直接都是给出源码,从源码开始编译,最后进行设置,将问题搞定。但是源码编译这个事情很多时候是受限于系统开发环境的,那么也有可能导致安装不正确问题。

回到标题。为什么说硬件阻碍或限制了自由软件的发展呢?

  1. 硬件厂商仅提供 Windows 下的驱动程序。当然这个问题其实很奇特,因为 Windows 市场最大,而且 Windows 本来就是要在所有兼容机上运行,导致出现驱动程序开发这么一个环节,兼容机的硬件标准非常迥异,导致各家生产厂商要自行开发或者外包开发驱动程序。那么为什么不提供 Linux 和 Mac OS X 的呢?谁傻谁才提供呢。Linux 市场太小,不赚钱,而 Mac OS X 是和硬件绑定销售的,不需要自行安装驱动,而且也不可能和别的硬件去兼容。
  2. 提供的驱动并不靠谱。ATI 的显卡也有 Linux 下的驱动程序,开源的闭源的都有,但是就是没有官方的,官网上挂的也是社区驱动的项目开发的驱动。Nvidia 虽然提供官方的驱动,但是问题也是一堆堆。这明显成为了诸多 Linux 潜在用户最怕碰到的棘手问题,我想我的舍友的激情也就在昨夜凌晨 4 点半的时候被耗尽了 (昨天跟舍友一起整这个问题,足足整了 3 个小时)。
  3. OEM 的程度还是很不够,其实如果能提供非常好的 OEM 套件也是很不错的。机器出厂时,已经保证其驱动和系统均是 OK 的,那么到了用户那里,他就不需要再去为这些原本不属于他关心的问题去费神费时了。现在的 Windows 也开始默认安装绝大多数通用驱动了,从 XP 开始 (Vista 不算) 到 Win7,系统自带的驱动越来越多,标准也越来越完善——作为兼容机首选操作系统生产商的微软完全有能力也很有责任把这个事情做好,让 Windows 的用户远离驱动程序,让用户知道他们之需要一键安装 Windows 便是了。解决了标准的问题之后,生产厂商开心了,微软其实也赚了好彩头——用户的体验提升。

就这样,我的舍友又回到了他盗版的 Windows 下面,继续“DOTA”和“ 草蛋 ”。你那该死的硬件,让我又失去了一个可能成为学习伙伴的 Ubuntu 发烧友。