内核态驱动和用户态驱动的区别

tinghua   2010-6-17 16:08 楼主
RT,写wince驱动有一段时间了,但是很惭愧,到现在还没搞清楚内核态驱动和用户态驱动的区别,特来请教

回复评论 (11)

帮顶。~!!!!!!!!
点赞  2010-6-18 14:13
我也很惭愧,我最大的认识就是内核态驱动的优先级比用户态高。
我在PB帮助看到,内核态所在的进程地址和用户态隔离,其他东西太复杂了,大家一起来学习进步了。以前只是看书,但是真的不怎么深入理解。
点赞  2010-6-18 14:32
我也没搞明白。我写的都是普通的驱动,没有调用setkmode,但是好像也没什么现在啊。
不是说需要在注册表中限制访问范围吗,我没写,也没见到那个驱动有这样写啊。
点赞  2010-6-18 15:47
内核态驱动权限很高,可以访问所有地址空间
点赞  2010-6-19 09:31
刚接触学习了
点赞  2010-6-20 14:21
推荐你看两篇CE团队的一个大牛的2篇文章,看完你应该会理解内核态和用户态,以及CE6里的用户模式驱动
What is kernel mode?
http://blogs.msdn.com/b/ce_base/archive/2007/01/29/what-is-kernel-mode.aspx

CE6 Drivers: What you need to know
http://blogs.msdn.com/b/ce_base/archive/2006/11/09/ce6-drivers_3a00_-what-you-need-to-know.aspx
点赞  2010-6-20 23:44
mark
点赞  2010-6-21 00:01
6.0才区分
点赞  2010-6-25 18:58
5.0没分这么细,惭愧也
引用: 引用楼主 huangqibin888 的回复:
RT,写wince驱动有一段时间了,但是很惭愧,到现在还没搞清楚内核态驱动和用户态驱动的区别,特来请教
点赞  2010-6-25 20:14
学习了
点赞  2010-6-29 15:54
是的,wince6才区分为用户模式与内核模式。

用户模式:
驱动程序是加载在 udevice.exe进程. udevice.exe与普通应用程序一样也是用户态的进程.
应用程序希望能够与外设进行交互时,都需要通过操作系统内核转发请求到相应的驱动程序。这样一个请求就可以需要反复的进出内核多次,还需要在不同的进程间进行切换.
优点是操作系统的稳定性得到了提高,不会因为某个设备驱动中的缺陷而使整个操作系统崩溃.
缺点是完成请求的效率太低.

内核模式:
驱动程序完成一个请求不再需要在不同的进程下进行切换,也不需要反复的进出内核。
优点是内核模式下的驱动程序完成请求的效率将会大大的提高。
缺点是内核里的任何一个错误都可能引起整个操作系统的崩溃。

建议刚开始写的驱动先放在用户模式下跑,等驱动程序稳定了,再改成内核模式运行。
点赞  2010-7-1 10:44
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复