当前位置: 代码迷 >> 驱动开发 >> Linux在用户空间实现块设备驱动,该如何解决
  详细解决方案

Linux在用户空间实现块设备驱动,该如何解决

热度:84   发布时间:2016-04-28 10:08:12.0
Linux在用户空间实现块设备驱动
看见网上到处都在说在用户空间中不能实现块设备驱动,所以我又很大的疑问为什么不能在用户空间实现块设备驱动呢?
是因为中断在用户空间不可用吗?但是UIO已经解决了这个问题,使得中断可以送达用户空间。

请知道的告知一下具体原因,大家也可以讨论一下。
------解决方案--------------------
感觉是保护机制的问题,驱动程序放到用户空间的话,很容易被用户直接调用到,要知道驱动出了问题,整个机器是要挂掉的。
------解决方案--------------------
你要写驱动  你需要访问硬件地址 ,你在用户空间是无法访问的! 在用户空间你是用的是虚拟地址。
------解决方案--------------------
所谓用户空间实现的,也要在内核空间有一个可以操作的代理,通过ioctl或者mmap方法去操作硬件。有些复杂驱动的结构是把操作硬件的部分放在内核空间,然后把组合逻辑部分放在用户空间,这样的好处是灵活,害处也显而易见,效率低并且安全性差。