请详细解释下ring3,ring0和应用编程,驱动编程之间的关系?

dean350 2008-12-08 05:51:20
请详细解释下ring3,ring0和应用编程,驱动编程之间的关系?
应用编程是否通常在ring3下,驱动编程通常在ring0下?
还是通过驱动编程进入ring0是最方便的?
...全文
440 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
忘了加分,怪不得没人回答。
回复
相关推荐
发帖
硬件/系统
创建于2007-09-28

2594

社区成员

VC/MFC 硬件/系统
申请成为版主
帖子事件
创建了帖子
2008-12-08 05:51
社区公告
暂无公告