为什么有些设备在 Linux 上不需要 USB 驱动程序,但在 Windows 上需要?

use*_*569 4 windows linux usb drivers

我现在已经看到了几个使用USB接口的项目。它们通常需要用于 Windows 的特殊驱动程序,但对于基于 Linux 的系统则不需要。这是为什么?我的意思是,即使 Windows 也有一些基本 USB 设备类的通用驱动程序,那么 Linux 支持哪些 Windows 不支持?

Jas*_*n C 6

此外,您会发现在 Linux 上,标准发行版(有时是内核构建)往往已经包含大量有趣且特定的硬件驱动程序,这主要是由于用户随着时间的推移做出的贡献。Windows 没有办法让任意开发人员为通用硬件创建驱动程序,然后将其包含在 Windows 的所有新发行版中。这是一种不同的软件和分发模型。随着时间的推移,Linux 的很多东西都会成为主流。

不仅仅是 Linux 有更多的“通用”驱动程序(但这通常是真的,尤其是当贡献者有兴趣编写尽可能广泛的驱动程序而不是供应商为他们的特定硬件编写专有驱动程序时),它只是附带了一个大的人们可以贡献并快速进入主要发行版的集合,永远。

我看到 Linux 附带的各种奇怪的东西。例如,CAN 是用于工业自动化和控制的串行接口和协议。使用相对较少,但 Ubuntu 附带的内核内置了通用的 CAN 支持,并且控制器卡供应商特定的接口内核模块随 Ubuntu 标准一起提供。对于 Windows 或 OSX 等更受控制的操作系统,这种分发是不可能的。如果我最近没有从事机器人项目,我就不会发现这一点,令我惊讶的是,不仅接口驱动程序内置在内核中,而且我的供应商控制器卡的模块也已经(令人惊讶地)包括在内.


题外话:

还值得注意的是,即使对于不提供标准的驱动程序,这两个操作系统都比过去要好得多。流行的 Linux 发行版一直在努力使获取软件尽可能简单以保持竞争力,因此在许多情况下,系统中尚未存在的驱动程序可以通过软件包存储库轻松获取(15 年前,这是很多很难让随机硬件在 Linux 上工作)。近年来,Windows 在拥有一个大型驱动程序存储库方面做得越来越好,以便在连接硬件时自动下载 - 如今,至少对我来说,遇到“此设备的驱动程序无法位于”在 Windows 上。

它也只会变得更好(在所有操作系统上)。软件和驱动程序的安装方便在今天如此普遍(特别是由于移动设备推动的“应用程序”风格平台的进步——现在看看;你有 Ubuntu 的软件中心、Windows 8 市场、iTunes Store、Google Play,甚至Chrome、Firefox 等个别软件都有新功能,完全专注于轻松查找和安装新软件),这几乎是预料之中的;如果您必须四处寻找软件,这是一个错误,如果您不这样做,它曾经是一个奖励。