usb 接口支持是通用的,然而 usb 设备本身确是千差万别的,其驱动操作系统并不可能预先提供。由于 windows 把驱动放到应用层,所以开发它的驱动可以由厂商解决,但是 linux 采用内核驱动,有些情况下必须对内核打驱动补丁,重新编译才能驱动。然而这就需要厂商公开源代码,这很难实现。而且由于内核频繁更新,导致厂商很难做出一个通用的驱动补丁,而且各大发行版普遍自己对内核打补丁,导致补丁间可能存在冲突,也限制了驱动补丁的使用。现有的万能驱动很少,例如 ide 硬盘驱动、xfree86 显卡驱动、ALSA 声卡驱动...由于 SATA 硬盘技术混乱,缺乏统一标准,现在要做到完全支持也不容易。
关键在于厂商是否支持开放源代码操作系统。现在的局面是,厂商普遍不愿意公开驱动源码(等同于技术泄密),硬件驱动普遍由 linux 黑客(并非骇客)来写,而不是厂商。