社区
硬件/系统
帖子详情
请详细解释下ring3,ring0和应用编程,驱动编程之间的关系?
dean350
2008-12-08 05:51:20
请详细解释下ring3,ring0和应用编程,驱动编程之间的关系?
应用编程是否通常在ring3下,驱动编程通常在ring0下?
还是通过驱动编程进入ring0是最方便的?
...全文
540
12
打赏
收藏
请详细解释下ring3,ring0和应用编程,驱动编程之间的关系?
请详细解释下ring3,ring0和应用编程,驱动编程之间的关系? 应用编程是否通常在ring3下,驱动编程通常在ring0下? 还是通过驱动编程进入ring0是最方便的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bainan
2009-01-04
打赏
举报
回复
[Quote=引用 9 楼 feeboby 的回复:]
应用程序运行在ring3 下
驱动程序运行在ring0 下
应用程序应该通过OS 提供的接口call 到驱动程序,让驱动程序执行ring0 的任务
[/Quote]
回答得已经很简洁明确了!
e_sharp
2008-12-13
打赏
举报
回复
UP
classfree
2008-12-13
打赏
举报
回复
所谓的RING0 和 RING3是操作系统的权限级别
RING0下面可以有很高的特权,应用层调用的API基本上都是RING0完成的,操作系统只是封装了一下共应用层调用.
驱动通常都是工作在RING0下面, 应用层通常工作在RING3下面,但是应用层也可以直接调用某些RING0下面的函数.
通过驱动进入RING0的确是最简单的!
feeboby
2008-12-12
打赏
举报
回复
应用程序运行在ring3 下
驱动程序运行在ring0 下
应用程序应该通过OS 提供的接口call 到驱动程序,让驱动程序执行ring0 的任务
oyljerry
2008-12-12
打赏
举报
回复
普通应用程序跑在ring3,底层驱动跑在ring0,所以他们之间需要一些通信方式来打交道
ilovedrv
2008-12-12
打赏
举报
回复
ring3,ring0是cpu硬件特权级别,应用程序和驱动程序是软件开发上的概念,是操作系统上个概念
驱动程序显然是运行ring0级别,至于应用程序一般情况下是运行ring3级别,不过也可以通过特殊的手段进入ring0级别
weidong0210
2008-12-12
打赏
举报
回复
不懂 UP
糊里糊涂
2008-12-12
打赏
举报
回复
程序通过调用win32子系统(ring3)的接口(win32 api),win32 api通过sdt调用系统服务(ring3到ring0),系统服务然后将相应的请求解释为IRP发给相应的设备驱动实现相关的硬件底层的操作。
ivan_08
2008-12-12
打赏
举报
回复
AP(Application Programming)应用编程,指MCU可以在系统中获取新代码并对自己重新编程,即可用程序来改变程序。
ivan_08
2008-12-12
打赏
举报
回复
对于你的问题,看看这句
Windows只使用其中的两个级别RING0和RING3,RING0只给操作系统用,RING3谁都能用。如果普通应用程序企图执行RING0指令,则Windows会显示“非法指令”错误信息。尽管有CPU的特权级别作保护。
ivan_08
2008-12-12
打赏
举报
回复
什么是RING3?这得从CPU指令系统(用于控制CPU完成各种功能的命令)的特权级别说起。在CPU的所有指令中,有一些指令是非常危险的,如果错用,将导致整个系统崩溃。比如:清内存、设置时钟等。如果所有的程序都能使用这些指令,那么你的系统一天死机n回就不足为奇了。所以,CPU将指令分为特权指令和非特权指令,对于那些危险的指令,只允许操作系统及其相关模块使用,普通的应用程序只能使用那些不会造成灾难的指令。形象地说,特权指令就是那些儿童不宜的东东,而非特权指令则是老少皆宜。
Intel的CPU将特权级别分为4个级别:RING0,RING1,RING2,RING3。Windows只使用其中的两个级别RING0和RING3,RING0只给操作系统用,RING3谁都能用。如果普通应用程序企图执行RING0指令,则Windows会显示“非法指令”错误信息。尽管有CPU的特权级别作保护。
dean350
2008-12-12
打赏
举报
回复
忘了加分,怪不得没人回答。
用汇编语言写了个最小的WDM
驱动
程序
ring0
内核
编程
用masm汇编写个最小的WDM
驱动
程序
ring0
内核
编程
vc++
应用
源码包_3
Inline Hook(
ring3
) 简单源码 代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题...
vc++
应用
源码包_1
Inline Hook(
ring3
) 简单源码 代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题...
基于Pasthru的扩展 在NDIS层 抓包分析
基于Passthru的扩展,抓取IP数据包,并在内核中利用队列、... 本程序可以帮助您熟悉
驱动
编写、windows
编程
、用户态和内核态交互
编程
以及网络知识的基础
应用
。
驱动
安装使用snetcfg,已集成到用户界面中。 密码:L01_ujs
[14本经典Android开发教程]-8-Linux内核阅读心得体会
3 AIO ring 63 4 异步I O事件的返回信息 64 读核感悟 文件读写 内核态AIO创建和提交操作 65 1 AIO上下文的创建 io setup 65 2 AIO
请
求的提交:io submit实现机制 66 读核感悟 文件操作 AIO操作的执行 66 1 在提交时...
硬件/系统
2,640
社区成员
17,239
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章