用户态驱动

一般来说 Linux中的设备驱动程序运行在内核态中,但也允许运行在用户态中

用户态驱动的的优点

  • 不必以GPL许可证发布
  • 灵活进程管理
  • 可以使用XML或其他配置方法的库
  • 可以不仅使用C语言开发(正则解析)
  • 避免从用户模式切换到特权模式降低调用开销
  • 方便调试
  • 不依赖完整的已编译内核

用户态驱动的缺点

  • 无法单独实现中断处理,需要借助轮询 or 小型内核态驱动,内核驱动通过阻塞 or POSIX信号通知用户态
  • 多进程访问并且存在抢占问题时,用户态程序可能难以实现
  • DMA不容易实现