我正在阅读 Linux 中的 misc 驱动程序,但我对它们与 char 驱动程序之间的区别感到有些困惑。一个来源,Linux 杂志,写道:
Alessandro 告诉我们如何使用 misc 驱动程序注册需要单个入口点的小型设备。
有时人们需要编写“小型”设备驱动程序,以支持自定义 hack——硬件或软件。为此,除了托管一些真正的驱动程序外,Linux 内核还导出了一个接口以允许模块注册自己的小型驱动程序。misc 驱动程序就是为此目的而设计的。
好的,从这里我知道有一个简单的驱动程序(在这种情况下只有一个入口点),这是一个 misc 驱动程序。然后另一个来源 Essential Linux Device Drivers 指出:
杂项(或杂项)驱动程序是具有某些共同特征的简单字符驱动程序。因为 misc 驱动程序是 char 驱动程序,所以前面关于 char 驱动程序入口点的讨论也适用于 misc 驱动程序。
现在这似乎是说 misc 驱动程序只是char 驱动程序,但可能是函数的子集,并且 char 驱动程序可以有多个入口点(例如 an ioctl()
or an open()
or a read()
call)
那么,在 Linux C 编码术语中,char 和 misc 设备驱动程序之间的区别是什么?(除了所有杂项驱动程序的明显主要编号分配(10))。支持的入口点有区别吗?我的假设是否正确,即 misc 设备驱动程序只有您在完整 char 设备驱动程序中可以获得的子集?