2016-01-24 118 views

回答

2

内核的工作是检测设备,因为它具有对可用硬件的最低级访问。当内核扫描所有可用地址时,它会维护一个供应商和设备ID列表。

要使用PCI总线设备作为示例,有一个供应商ID和与所有PCI设备关联的设备ID。

设备驱动程序的编写方式是向内核标识驱动程序能够控制的设备类型。司机可能会宣称他们可以处理多个供应商和设备类型组合。

内核将根据这些ID为每个设备分配一个驱动程序。 USB设备也采用了类似的流程。传统设备(串行端口,并行,PS2鼠标/键盘)等较旧的技术将明确硬编码将特定驱动程序与设备相关联的方法。

您可以使用Linux命令的lsusblspci的看到您的系统上可用的设备和ID。

所以直接回答你的问题 - 设备驱动程序通常不会检测设备,至少在第一个例子中。一旦驱动程序与设备相关联(由内核),驱动程序可能会进一步询问设备,以确保它包含正确的固件或是正确的硬件修订版等。

+0

这至少我是如何理解它的。几年前我写了一些PCI驱动程序,并且了解使用设备分配驱动程序的最初方式是需要掌握的第一件事。 – Wossname

+0

谢谢您的信息! –

相关问题