目录
前言
于许多类型的设备,创建Linux内核驱动程序是过分的。真正需要的只是某种方式来处理中断并提供对设备存储空间的访问。控制设备的逻辑不必一定要在内核之内,因为设备不需要利用内核提供的任何其他资源。这样的一种常见的设备类别是用于工业I / O卡的设备。
为了解决这种情况,设计了用户空间I / O系统(UIO)。对于典型的工业I / O卡,只需要一个非常小的内核模块。驱动程序的主要部分将在用户空间中运行。这简化了开发并降低了内核模块中严重错误的风险。
请注意,UIO不是通用驱动程序接口。已经被其他内核子系统(例如网络,串行或USB)良好处理的设备不适合使用UIO驱动程序。最适合UIO驱动程序的硬件满足以下所有条件:
- 设备具有可以映射的内存。通过写入该存储器可以完全控制该设备。
- 设备通常会产生中断。
- 该设备不适合标准内核子系统之一。
关于UIO
如果您将UIO用作卡的驱动程序,则将获得以下信息:
- 只需编写和维护一个小的内核模块。
- 使用您习惯的所有工具和库在用户空间中开发驱动程序的