谁能比较系统的解释一下Windows下的Ring 谁能比较系统的解释一下Windows下的Ring,希望详细一点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 处理器有4个级的优先权:Ring0,Ring1,Ring2,Ring3. 众所周知,在Windows95/98的Win32 on Intel x86 体系中利用了处理器的三环保护模型中的零环(Ring0,最高权限级别)和三环(Ring3,最低权限级别)。一般应用程序都运行在Ring3下,受到严格的"保护",只能规矩地使用Win32API。如果我们想进行一些系统级的操作,例如在嵌入汇编中使用诸如"Mov EAX,CR0",或像在DOS下那样调用一些必不可少的系统服务(如BIOS,DPMI 服务)而用"Intxx",都会导致"非法操作"。但这种能力有时是必不可少的,一到这种时候Microsoft就"建议编写一个VxD"。VxD大家早有所闻了,在VxD里,不但可以执行CPU 的所有指令,而且可以调用VMM(虚拟机管理器)和其他VxD提供的上千个系统级服务。获得这一能力的最本质原因在于它运行在Ring0,与系统内核同一级别。但是它体系的复杂性、开发工具的不易获得、帮助文档的不完备, 使Microsoft排除了一大批程序员和竞争对手。而将在Windows2000(Windows98也开始支持)中取代VxD的WDM对Win95程序员也是个噩梦,它需要了解Windows NT核心驱动模型。大多数程序运行于Ring3这个级别。Ring3有很多限制,如: 我们不能读DR(debug-registers,调试寄存器),所有关于 DR的指令都不起作用。(如:mov eax,dr7).对我们来说当然是优先级越高越好,所以我们要使我们的 程序运行在Ring0.但是只有少数的特殊的程序有Ring0的优先权。设备驱动程序运行于Ring0,但它的代码可不简单! "对我们来说当然是优先级越高越好,所以我们要使我们的 程序运行在Ring0.但是只有少数的特殊的程序有Ring0的优先权。"那些特殊的程序有Ring0的优先权啊?我们用API设置的进程的优先级是不是也只是在Ring3的范围之内? 但是最高的优先级不是可以达到系统的程度吗?那ring1,ring2运行的是些什么? 但是最高的优先级不是可以达到系统的程度吗?那ring1,ring2运行的是些什么?请大爷解释一下,谢谢,呵呵 我不记得 ring1 和 ring2 运行些什么但我记得 ring0 运行什么:系统内核 & 驱动 & CIH 为了和ALPHA等CPU兼容,WINDOWS没有使用RING1和RING2 WINDOWS系列只分系统级(RING0)和用户级(RING3),RING1和RING2不用的 RING0的代码段可以访问RING1 RING2 RING3 的数据内存单元RING3的代码段只能访问RING3的数据内存单元RING3的代码段可以通过调用门或中断门调用RING0 RING1 RING2的代码,反之则不行 原来X86的设想是:ring 0 系统内核ring 1 系统应用服务ring 2 应用内核服务ring 3 应用程序但为了兼容,所以Windows只采用了ring 0和ring 3先搞清楚: ring 是CPU的概念!不是操作系统概念! MFC的TRACE,不输出是怎么回事。 全局变量的值不能在watch窗口查看的问题? WSAAsyncSelect 谁移走了我这个贴子,帮我把它移回来! 枚举本进程内所有线程,并获得handle,能想到几种方法? 求《COM技术内幕--微软组件对象模型》一书的CD中的源代码 用ShellExecute打开htm文件,如何定位 求哈答案 急用啊 谢谢大家 拖动窗口后,在松开鼠标左键的一瞬间弹出个消息框,这个MessageBox应该放在哪里呢? 问:关于读取文件的小问题。 愿意为这个问题出一千分:有谁知道知道32位色下的点的颜色混合怎么算吗? 如何获得属性表中各页上的数据
但我记得 ring0 运行什么:系统内核 & 驱动 & CIH
RING1和RING2不用的
RING3的代码段只能访问RING3的数据内存单元
RING3的代码段可以通过调用门或中断门调用RING0 RING1 RING2的代码,反之则不行
ring 0 系统内核
ring 1 系统应用服务
ring 2 应用内核服务
ring 3 应用程序但为了兼容,所以Windows只采用了ring 0和ring 3先搞清楚: ring 是CPU的概念!不是操作系统概念!