【Linux 驱动】第二章 构造和运行模块(2)

用户空间驱动程序的优点:
            1)可以和整个C库链接
            2)驱动程序不用借助外部程序(对于复杂的外设,常常需要和驱动一起发行用户提供策略的应用程序)就可以完成许多非常规的任务。
            3)在驱动中可以使用浮点数,在某些特殊的硬件中,可能需要使用浮点数,而linux内核并不提供浮点数的支持。如果能在用户态实现驱动,就可以轻松解决这一问题
           4) 驱动的问题不会导致整个系统挂起,有过驱动开发经验的人一定会对调试深有感触,一些错误常常导致整个系统挂起。而用户态的驱动在调试上就要方便很多。
           5) 用户内存可以换出
           6)设计良好的驱动仍然可以支持对设备的并发访问
           7)可以给出封闭源码的驱动程序,不必采用GPL,更为灵活


      用户空间驱动的最常见例子是X-server,很多USB设备的驱动也可以放到用户空间。目前,很多人尝试在用户态为PCI设备提供驱动

用户空间驱动的缺点:
         1)中断在用户空间不可用,最新的UIO接口已经解决了这一问题
         2)响应时间较慢
         3)只能支持字符设备,无法支持块设备和网络设备
         4)可靠性较低,很多驱动都是闭源的,我们没法通过阅读代码解决问题
         5)有些硬件厂商只提供和某些linux开发版(常常早就过时了)相匹配的用户空间驱动

相关阅读:

【Linux 驱动】第一章 设备驱动程序简介 

【Linux 驱动】驱动开发第一步----开发环境搭配 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://127.0.0.1/wyyxfy.html