Linux 2.4 亮点:ISA 即插即用

作者:Joseph Pranevich

Linux 2.4(即将发布)中新增或改进了大量功能。在上个月的文章“Linux 2.4 要点”中,我描述了其中一些功能。我认为,在未来几年内最能改变发行版面貌的功能(即使仅就其对旧设备的支持而言)是 ISA 即插即用支持。

在过去的好日子里(在 PCI 成为英特尔级 PC 的标准总线架构之前),总线本身并不十分智能。即插即用功能在这些旧机器中基本上不存在。人们期望,如果您拥有这台机器,您或多或少地了解其中包含的确切硬件以及每个设备在计算机内部空间中的“位置”。例如,添加新的声卡通常是一个“放入—重启—拔出—更改跳线—重复”的过程,因为绝大多数 ISA 卡都需要硬件跳线或类似的东西才能进行配置。这种情况对于 PC 的消费者用户来说非常糟糕,他们对机器内部结构的理解正在慢慢退化到新用户几乎不被期望知道鼠标插在哪里的程度。

在世界各地计算机制造商的会议室里,人们举行会议并就如何克服这一用户障碍展开辩论。(至少,在我的个人世界里是这样发生的。)当然,拥有更好的总线会很好,但这需要改变一些东西。一些聪明人想出了一个主意,通过可配置卡片的标准来临时解决这种情况,这些卡片可以由智能 BIOS 或操作系统配置。ISAPNP“标准”由此诞生。

ISAPNP 填补了我们在 ISA 世界中遭受的所有即插即用空白。我们不再需要盲目地探测设备,因为它们会很乐意(或多或少地)向任何愿意倾听的人宣告自己。我们不再会被迫更改跳线设置,因为我们有了一个简洁的 DOS 实用程序来为我们做这件事。但这才是问题的真正症结所在:PnP 兼容很快就意味着“仅限 DOS/Windows”,因为当时的其他操作系统发现它们无法理解 PnP 规范的魔术语言。Linux 也落入了这一陷阱;人们经常建议应该在 DOS 下初始化他的卡,然后(软)重启进入 Linux 以使事情正常工作。

幸运的是,如果你给 Linux 社区一个问题,很快就能找到某种解决方案。对于某些人来说,loadlin 和 DOS 分区仍然是唯一的答案,但对于另一些人来说,还有 ISA PnP 实用程序,直到最近,这些实用程序还是在 Linux 和其他地方配置 PnP 设备的 唯一 方法。这个实用程序虽然方便,但对于许多用户来说,弄清楚它却很痛苦。它要求用户自行解决资源冲突。它要求驱动程序被编译为模块,以便在用户空间实用程序运行后加载它们。随着时间的推移,这个实用程序的界面得到了改进;它甚至可以很好地自动配置卡片。发行版开始支持它,并在漂亮的对话框的保护罩下掩盖其功能,以便即使是茫然无措的人也有机会让它工作。尽管如此,它仍然不是一个完美的解决方案。

Linux 2.4 将首次在内部支持 ISA PnP 设备。不再需要用户空间实用程序来配置要使用的卡;内核本身现在可以做到这一点。一般来说,这将是透明地完成的:串行驱动程序或声霸卡驱动程序将简单地搜索 PnP 设备,就像它们现在搜索和配置 PCI 设备一样。当找到兼容设备时,内核可以配置并激活它,并将它使用的资源传递给负责的驱动程序。内核甚至可以处理资源冲突。当然,可能有一些内核无法正确处理的设置和配置,并且始终可以选择“回退”到旧的用户空间手动配置。但是,在我看来,这是桌面 Linux 的一大进步。

现在,警告来了:Linux 2.4 甚至还没有发布,那么你如何才能在你的机器上利用这些卓越的新功能呢?您可以下载最新的 Linux 2.3(仅限开发人员)内核的快照并为您的系统编译它。它会工作吗?可能。它会支持您的卡吗?嗯,可能不会。如果您是程序员,那么现在是参与 Linux 2.3 开发并帮助主流内核黑客消除错误以使 Linux 2.4 成为有史以来最好的 Linux 的最佳时机。如果您不是程序员,您可以通过下载、编译和安装最新的内核并报告结果来提供帮助。Linux 是由社区开发的,当我们接近下一个稳定里程碑时,社区成员可以发挥作用。下次您坐在电脑前试图调整您的 isapnp.conf 以与您的新调制解调器一起工作时,请想想那些键盘背后的勇敢灵魂,他们如此努力地使 Linux 成为最好的操作系统,并伸出援手帮助他们。

Joseph Pranevich (jpranevich@lycos.com) 是一位狂热的 Linux 爱好者,在不为 Lycos 工作时,他喜欢写作(各种类型)并参与许多开源项目。

加载 Disqus 评论