The*_*eer 5 linux drivers devices
有人可以解释一下设备控制器的概念(硬盘控制器、NEC PD765 兼容控制器等)。
以下是解释可能需要的一些关键术语的定义。只是为了保持术语同步:)
内核- 为访问硬件设备提供抽象的软件
驱动程序- 由硬件制造商编写的低级程序,作为内核模块加载并为内核提供有关如何控制设备的知识
固件- 定义硬件内部逻辑的硬件特定程序。内核通常与它们无关,除了在每次启动时将固件上传到设备的情况,在这种情况下内核会上传
设备控制器安装在哪里,它是否位于主板上的设备本身?
驱动程序是否为内核提供了与控制器的接口,而不是直接与设备本身的接口?
控制器背后的想法是否能够使用相同的驱动程序控制来自不同制造商的设备?
设备控制器通常是总线仲裁器。您通常不是直接与给定总线上的设备交谈,而是与控制器交谈。然后,控制器会根据您通过控制器的请求来确定何时以及如何向其总线上的设备发送命令。
维基百科在这个主题上有以下内容,http://simple.wikipedia.org/wiki/Device_controller。
摘抄
设备控制器从连接的设备接收数据,并将其临时存储在控制器内部的一些专用寄存器(即本地缓冲区)中。然后它与设备驱动程序通信数据。对于每个设备控制器,都有一个等效的设备驱动程序,它是设备控制器通过中断与操作系统通信的标准接口。设备控制器是硬件,而设备驱动程序是软件。
控制器背后的想法是否能够使用相同的驱动程序控制来自不同制造商的设备?
不是。主要目的是提供设备和处理器之间的部分接口。控制器有自己的驱动程序;这是连接到它的设备所需的任何驱动程序的补充。
之所以需要接口,是因为处理器是高度专业化的;控制器是从处理器的专业世界到设备的多元世界的某种翻译器。处理器与外部的物理数据连接只有一个(总线),而不是多种,实际上,控制器和处理器之间的中介通常是将处理器连接到主板的桥梁。然后设备控制器连接到主板并通过桥接器进行通信。所以链中有四个离散的物理实体:处理器->网桥->控制器->设备,所有 其中涉及他们自己的软件驱动程序(处理器的驱动程序,桥接芯片组的驱动程序,然后是每个控制器的驱动程序,以及每个设备的驱动程序)。
如果您查看此维基百科文章中的下图,底部的蓝色框代表设备控制器。

[作者:Alexander Taubenkorb,知识共享署名-相同方式共享 3.0]