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

huangqibin888 2010-06-17 04:08:35
RT,写wince驱动有一段时间了,但是很惭愧,到现在还没搞清楚内核态驱动和用户态驱动的区别,特来请教
...全文
1508 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mcughost 2010-07-02
  • 打赏
  • 举报
回复
 最直接的就是 用户态无法直接操作GPIO
davisyzhou 2010-07-01
  • 打赏
  • 举报
回复
是的,wince6才区分为用户模式与内核模式。

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

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

建议刚开始写的驱动先放在用户模式下跑,等驱动程序稳定了,再改成内核模式运行。
Wangyuluyulu 2010-06-29
  • 打赏
  • 举报
回复
学习了
AMOROUS 2010-06-25
  • 打赏
  • 举报
回复
5.0没分这么细,惭愧也
[Quote=引用楼主 huangqibin888 的回复:]
RT,写wince驱动有一段时间了,但是很惭愧,到现在还没搞清楚内核态驱动和用户态驱动的区别,特来请教
[/Quote]
winamp123 2010-06-25
  • 打赏
  • 举报
回复
6.0才区分
xdkui 2010-06-20
  • 打赏
  • 举报
回复
推荐你看两篇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
quansui 2010-06-20
  • 打赏
  • 举报
回复
刚接触学习了
domworldjohn 2010-06-19
  • 打赏
  • 举报
回复
内核态驱动权限很高,可以访问所有地址空间
  • 打赏
  • 举报
回复
我也没搞明白。我写的都是普通的驱动,没有调用setkmode,但是好像也没什么现在啊。
不是说需要在注册表中限制访问范围吗,我没写,也没见到那个驱动有这样写啊。
gooogleman 2010-06-18
  • 打赏
  • 举报
回复
我也很惭愧,我最大的认识就是内核态驱动的优先级比用户态高。
我在PB帮助看到,内核态所在的进程地址和用户态隔离,其他东西太复杂了,大家一起来学习进步了。以前只是看书,但是真的不怎么深入理解。
InsaneCode 2010-06-18
  • 打赏
  • 举报
回复
帮顶。~!!!!!!!!
[14本经典Android开发教程] 8 Linux内核阅读心得体会 读核感悟 2 读核感悟 Linux内核启动 内核的生成 2 读核感悟 Linux内核启动 从hello world说起 3 读核感悟 Linux内核启动 BIOS 5 读核感悟 Linux内核启动 setup辅助程序 6 读核感悟 Linux内核启动 内核解压缩 8 读核感悟 Linux内核启动 开启页面映射 9 读核感悟 Linux内核启动 链接脚本 11 读核感悟 伪装现场 系统调用参数 13 读核感悟 伪装现场 fork 系统调用 15 读核感悟 伪装现场 内核线程: 17 读核感悟 伪装现场 信号通信 19 读核感悟 kbuild系统 内核模块的编译 22 读核感悟 kbuild系统 编译到内核和编译成模块的区别 24 读核感悟 kbuild系统 make bzImage的过程 26 读核感悟 kbuild系统 make menuconfig 31 读核感悟 文件系统 用C来实现面向对象 32 读核感悟 设计模式 用C来实现虚函数表和多 32 读核感悟 设计模式 用C来实现继承和模板 33 读核感悟 设计模式 文件系统和设备的继承和接口 34 读核感悟 设计模式 文件系统与抽象工厂 36 读核感悟 阅读源代码技巧 查找定义 37 读核感悟 阅读源代码技巧 变量命名规则 42 读核感悟 内存管理 内核中的页表映射总结 43 读核感悟 健壮的代码 exception table 内核中的刑事档案 44 读核感悟 定时器 巧妙的定时器算法 45 读核感悟 内存管理 page fault处理流程 45 读核感悟 文件读写 select实现原理 47 读核感悟 文件读写 poll的实现原理 49 1 功能介绍: 49 2 关键的结构体: 49 3 poll的实现 49 4 性能分析: 50 读核感悟 文件读写 epoll的实现原理 50 1 功能介绍 50 2 关键结构体: 51 3 epoll create的实现 53 4 epoll ctl的实现 53 5 epoll wait的实现 54 6 性能分析 54 读核感悟 同步问题 同步问题概述 55 1 同步问题的产生背景 55 2 内核用户区别 55 读核感悟 同步问题 内核自旋锁的实现 56 1自旋锁的总述 56 2非抢占式的自旋锁 56 3 锁的释放 57 4 与用户的自旋锁的比较 57 5 总结 58 读核感悟 内存管理 free命令详解 58 读核感悟 文件读写 2 6 9内核中的AIO 59 1 AIO概述 59 2 内核AIO的使用 61 读核感悟 文件读写 内核AIO相关结构体 61 1 内核AIO操作相关信息 61 2 AIO上下文: 63 3 AIO ring 63 4 异步I O事件的返回信息 64 读核感悟 文件读写 内核AIO创建和提交操作 65 1 AIO上下文的创建 io setup 65 2 AIO请求的提交:io submit实现机制 66 读核感悟 文件操作 AIO操作的执行 66 1 在提交时执行AIO 66 2 在工作队列中执行AIO 66 3 负责AIO执行的核心函数aio run iocb 67 4 AIO操作的完成 67 读核感悟 文件读写 内核是否支持非direct I O方式的AIO 67 已上传7本: [14本经典Android开发教程] 1 Android开发从入门到精通 http: download csdn net detail cleopard 8355245 [14本经典Android开发教程] 2 Android开发手册 API函数详解 http: download csdn net detail cleopard 8374487 [14本经典Android开发教程] 3 Android SDK 中文开发文档 http: download csdn net detail cleopard 8380429 [14本经典Android开发教程] 4 Android应用程序开发36技 http: download csdn net detail cleopard 8380495 [14本经典Android开发教程] 5 linux Android基础知识总结 http: download csdn net detail cleopard 8380529 [14本经典Android开发教程] 6 Android驱动开发入门及手机案例开发分析教程 http: download csdn net detail cleopard 8388019 [14本经典Android开发教程] 7 Android编程入门教程 http: download csdn net detail cleopard 8388043 剩余8本稍后上传 @或直接从这里寻找@ http: download csdn net user cleopard album @更多@ http: cleopard download csdn net 福利 http: xuemeilaile com 17份软件测试文档 http: download csdn net album detail 1425 13份WPF经典开发教程 http: download csdn net album detail 1115 C#资料合辑二[C#桌面编程入门篇] http: download csdn net album detail 957 C#资料合辑一[C#入门篇] http: download csdn net album detail 669 [Csharp高级编程 第6版 ] 共8压缩卷 http: download csdn net album detail 667 10个[精品资源]Java学习资料合辑[一] http: download csdn net album detail 663 10个C#Socket编程代码示例 http: download csdn net album detail 631 6份GDI+程序设计资源整合[全零分] http: download csdn net album detail 625 2014年移动游戏行业数据分析 http: download csdn net detail cleopard 8340331 一文读懂2014年全球互联网广告新生 http: download csdn net detail cleopard 8340303">[14本经典Android开发教程] 8 Linux内核阅读心得体会 读核感悟 2 读核感悟 Linux内核启动 内核的生成 2 读核 [更多]

19,500

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧