到目前为止,我已经看到几个使用 USB 接口的项目。它们通常需要针对 Windows 的特殊驱动程序,但不需要针对基于 Linux 的系统。这是为什么呢?我的意思是,即使 Windows 也有一些针对基本 USB 设备类的通用驱动程序,那么 Linux 支持哪些 Windows 不支持的驱动程序呢?
答案1
您还会发现,在 Linux 上,标准发行版(有时是内核版本)往往已经包含大量有趣且特定的硬件驱动程序,这主要是由于用户长期以来的贡献。Windows 实际上没有办法让任意开发人员为常见硬件创建驱动程序,然后将其包含在所有新的 Windows 发行版中。这是一种不同的软件和发行模式。随着时间的推移,Linux 上的很多东西都进入了主流。
这不仅仅是因为 Linux 拥有更多“通用”驱动程序(但这通常是正确的,特别是当贡献者有兴趣编写尽可能广泛的驱动程序而不是供应商为其特定硬件编写专有驱动程序时),它还附带一个大型集合,人们可以为其做出贡献并快速进入主要发行版,永远如此。
我发现 Linux 附带了各种奇怪的东西。例如,CAN 是一种用于工业自动化和控制的串行接口和协议。使用相对较少,但 Ubuntu 附带的内核内置了通用 CAN 支持,并且控制器卡供应商特定的接口内核模块随 Ubuntu 标准一起提供。这种分布在 Windows 或 OSX 等受控制程度更高的操作系统上是不可能的。如果我最近没有从事机器人项目,我就不会发现这一点,令我惊讶的是,不仅接口驱动程序内置在内核中,而且我供应商的控制器卡的模块也已经(令人惊讶地)包含在内。
离题啦:
还值得注意的是,即使对于未提供标准的驱动程序,这两个操作系统在这方面都比过去好得多。流行的 Linux 发行版一直在努力使获取软件尽可能简单,以保持竞争力,因此在许多情况下,系统上尚未存在的驱动程序可以通过软件包存储库轻松获得(15 年前,让随机硬件在 Linux 上运行要困难得多)。近年来,Windows 一直在不断改进,在连接硬件时,可以在线提供大量驱动程序存储库以供自动下载 - 至少对我来说,现在在 Windows 上遇到“无法找到此设备的驱动程序”的情况要少得多。
它会越来越好(在所有操作系统上)。如今,软件和驱动程序的安装非常方便(特别是由于移动设备推动的“应用程序”式平台的进步 - 现在看看;你有 Ubuntu 软件中心、Windows 8 市场、iTunes 商店、Google Play,甚至 Chrome、Firefox 等单个软件,都具有完全专注于轻松查找和安装新软件的新功能),这几乎是意料之中的;如果你必须到处寻找软件,那是一个错误,而以前如果你不这样做,那是一个奖励。
答案2
据我所知,Linux 将所有“驱动程序”都包含在内核中,但 Windows 将它们分开。因此,Linux 确实有驱动程序,但它们已包含在系统的核心中。此外,Linux 使用更通用的驱动程序,而 Windows 有更多针对特定设备的特定驱动程序。