Linux-UIO机制
发布时间
阅读量:
阅读量
如何深入理解inner kernelexplanation
前言
对于很多不同类别的设备,
创建Linux内核驱动程序没什么用处。
实现一种能够处理中断并提供对
其所在主机系统进行操作的方法。
控制这些硬件组件的逻辑通常不必位于
操作系统核心代码中,
因为这些硬件组件不需要使用操作系统
提供的额外资源。
例如这类常见的硬件组件之一就是工业I/O卡。
为了应对这种情况,开发了一个用户空间 I/O 系统 UIO(User Interface Output)。常见的工业I/O卡通常仅需要一个相对较小的内核模块。驱动程序的核心部分将完全位于用户空间中运行。这种设计大大简化了开发流程,并显著降低了内核模块出现重大错误的可能性。
请特别注意的是,在这种情况下(UIO),它并不是通用驱动程序接口这一类情况。已经由其他内核子系统(如网络、串行或其他USB设备)处理良好功能的设备不属于UIO驱动程序候选范畴。而只有完全符合UIO驱动要求的硬件设施才能满足以下各项条件:
- 设备支持可配置的内存。通过配置此内存可以实现对设备的完全控制。
- 设备往往会触发中断。
- 设备不适配于标准内核子系统中的任何一种。
UIO 的工作原理
所有 UIO 设备均可通过一个设备文件和多个 sysfs 下的属性文件进行访问。首台设备的设备文件标识符为 /dev/uio0,请注意后续
全部评论 (0)
还没有任何评论哟~
