/var/opinion - 走到一起

作者:Nicholas Petreley

整个 PC 世界都深受缺乏良好标准之苦。一些最令人沮丧的标准问题与硬件相关。例如,哪个天才认为将主板上的 FireWire 连接器和 USB 连接器做得相同是个好主意?主板手册通常会小心地指出,如果将它们混淆,可能会损坏主板。这很好,但是是谁首先让混淆它们成为可能?真蠢。

同样令人困扰的是,看到 Linux 发行版之间持续缺乏良好、全面的标准。与硬件一样,如果您小心谨慎并了解自己在做什么,几乎总能找到使某些东西工作的方法。但这不能成为跨发行版缺乏标准以及现有的一些不充分标准的借口。

这就是引发此抱怨的原因。如果您一直在关注我的专栏,就会知道我一直在尝试组装一台 MythTV 盒子。我按照几个操作指南页面安装了我尝试过的调谐器卡的特殊驱动程序。大多数已发布的说明,包括某些硬件供应商链接的说明,都告诉您将固件放在除了 Ubuntu 存储固件的位置之外的任何地方。Ubuntu 在 /lib/firmware/<内核版本> 目录中查找固件。大多数说明告诉您将固件放在 /usr/lib/hotplug/firmware 中。一张卡,Hauppauge PVR-150/500,希望固件文件位于多个位置,包括 /lib/modules/ 目录。它使用不同的文件名,具体取决于内核和驱动程序的版本。到目前为止,我已经测试了三张卡,我最终失去了耐心,并使用了霰弹枪方法。我将固件副本放在几乎所有地方,除了我儿子的袜子抽屉。现在所有驱动程序都工作了。我不知道它们正在查找哪些固件文件副本,但我再也不在乎了。

就个人而言,我喜欢 Ubuntu 定位固件的方法。Ubuntu 使用 udev,许多人认为它优于 hotplug。它允许您根据内核版本安装不同版本的固件。

有些人可能会争辩说,这种差异化正是开源的意义所在。如果 Ubuntu 的选择足够好,其他发行版将会借鉴它,并使其成为标准。这没错,但是如果发行商 просто 就 udev 和固件的放置位置等基本原理达成一致,对于客户来说不是更有效率吗?至少这样一来,我们就更不可能遇到不适用于我们选择的发行版的操作指南页面。

尽管我喜欢 Ubuntu 的这一点,但在建立或遵守标准方面,Ubuntu 远非完美。尝试在 Ubuntu 上安装一个 vanilla 内核,亲自看看。您会注意到您无法再挂载某些磁盘分区。默认情况下,Ubuntu 安装并使用逻辑卷管理器 (LVM) 和企业卷管理服务 (EVMS),如果您使用 vanilla 内核,其中一个或两个会破坏 Ubuntu 的工作方式。我通过编辑 LVM 和 EVMS 的配置文件以忽略系统上的所有驱动器,设法解决了挂载问题。下一个版本的 Ubuntu 将添加 ivman,另一个卷管理器。我迫不及待想知道当新 Ubuntu 准备就绪时,我必须重新配置什么。

不幸的是,我关于发行商合作的建议是乌托邦式的,不切实际的。他们甚至没有以最有利于他们的方式作为一个团队工作,例如向硬件供应商施压以预装 Linux。在标准方面,大多数发行商甚至不愿意就软件包格式达成一致,更不用说构建一个软件包系统,您可以在其中在 Fedora 中安装 Mandriva RPM 而不会遇到依赖性问题。他们无法就固件文件的放置位置或 EVMS 是否应成为基本系统的一部分达成一致。

最好的解决方案是所有主要发行商都基于单个基础发行版构建。这是 Linux 标准库最初成立时提出的最初想法之一,但尽管这会为他们所有人节省大量重复工作,但发行商拒绝了这个想法。为什么发行商不愿意就全面的标准发行版达成一致?竞争。标准基础发行版将降低新竞争发行版的进入门槛。更坦率地说,尽管 Linux 发行商口头上都说他们对开源和自由的承诺如何赋能最终用户,但他们实际上确实喜欢拥有一定程度的客户锁定。他们的锁定只是没有微软的锁定那么严重、明显、破坏性或有效。

别误会我的意思。我不希望看到 Linux 市场变得如此同质化,以至于发行版开始消失。我很高兴有许多发行版可供选择。我只是希望看到他们在更高的层次上区分他们的发行版,这个层次可以消除不必要的兼容性问题。但我承认,有时挫败感会让我产生发起一场运动以让每个人都运行 Debian 的念头。你怎么看?

Nicholas Petreley 是 Linux Journal 的主编,也是一位前程序员、教师、分析师和顾问,他从事 Linux 工作和写作已超过十年。

加载 Disqus 评论