一般来说 Linux中的设备驱动程序运行在内核态中,但也允许运行在用户态中
用户态驱动的的优点
- 不必以GPL许可证发布
- 灵活进程管理
- 可以使用XML或其他配置方法的库
- 可以不仅使用C语言开发(正则解析)
- 避免从用户模式切换到特权模式降低调用开销
- 方便调试
- 不依赖完整的已编译内核
用户态驱动的缺点
- 无法单独实现中断处理,需要借助轮询 or 小型内核态驱动,内核驱动通过阻塞 or POSIX信号通知用户态
- 多进程访问并且存在抢占问题时,用户态程序可能难以实现
- DMA不容易实现
一般来说 Linux中的设备驱动程序运行在内核态中,但也允许运行在用户态中
用户态驱动的的优点
用户态驱动的缺点