DPL,RPL,CPL关系详解

【从头开始写操作系统系列】一致代码段与非一致代码段 上几篇文章,我们一直在讨论的都是 GDT 相关的一些问题,现在我们知道在系统在从实模式向保护模式跳转时,GDT 是必须要准备的结构。在介绍这一跳转之前,这篇文章我们来介绍两个概念:一致代码段和非一致代码段。 首先,我们先来看几个问题: 一致代码段和非一致代码段是什么? 为什么要有一致代码段和非一致代码段? 系统提供怎样的机制来使用户程序访问内核数据? 程序如何在段与段之间跳转? 接下来,我们将讨论上 阅读详情

RPL是段选择子里面的bit 0和bit 1位组合所得的值
但这里要首先搞清楚什么是段选择子,根据Intel 的文件(IA-32 IntelR Architecture Software Developer's Manual, Volume 3System Programming Guide)它是一个16Bit identifier (原文:A segment selector is a 16-bit identifier for a segment). 但 identifier 又是什么. identifier 可以是一个变数的名字( An identifier is a name for variables), 简单的说它可以就是一般意义的变数. 这里 16-bit identifier for a segment 可以就是一个一般意义的16bit变数但同时要求对它的值解释的时候必须跟据Intel定下的规则---也就是bit 0和bit 1位的组合值就是RPL等等…
因此在程序里如果有需要的话你可以声明一个或者多个变数来代表这些段选择子,这样的话你的程序在某一时刻就可以有很多段选择子,当然有那么多段选择子就有那么多RPL.可以这样说程序有多少个是RPL是你怎样看待你自己声明的变数.
程序的CPL(CS.RPL)是CS register 里bit 0和bit 1 位组合所得的值.在某一时刻就只有这个值唯一的代表程序的CPL.
而DPL是段描述符中的特权级, 它的本意是用来代表它所描述的段的特权级. 一个程序可以使用很多段(Data,Code,Stack)也可以只用一个code段等.在正常的情况下当程序的环境建立好后,段描述符都不需要改变-----当然DPL也不需要改变.
所有的程序转跳,CPU都不会把段选择子的RPL赋给转跳后程序的CS.RPL.
转跳后程序的CPL(CS.RPL)只会有下面的俩种可能
转跳后程序的CPL(CS.RPL) = 转跳前程序的CPL(CS.RPL)
或
转跳后程序的CPL(CS.RPL) = 转跳后程序的CodeDescriptor.DPL
以 Call 为例(只能跳到等于当前特权级或比当前特权级更高的段):
怎样决定这两种选择,这就要首先知道转跳后程序的段是一致代码段还是非一致代码段.其实也很简单,规则如下:
如果能成功转跳到一致代码段, 转跳后程序的CPL(CS.RPL) = 转跳前程序的CPL(CS.RPL),(转跳后程序的CPL继承了转跳前程序的CPL)
如果能成功转跳到非一致代码段, 转跳后程序的CPL(CS.RPL) =转跳后程序的Descriptor.DPL。(转跳后程序的CPL变成了该代码段的特权级.我在前面提到DPL是段描述符中的特权级, 它的本意是用来代表它所描述的段的特权级)
怎样才能成功转跳啦?
这里有四个重要的概念:
1).段的保护观念是高特权级不找低特权级办事,低特权级找高特权级帮忙,相同的一定没问题.(这样想逻辑是没错,事实对不对就不知道.)也就是县长不找乡长,乡长不求农民,反过来农民求乡长,乡长找县长.这个概念是最重要的。
2) 一致代码段的意义: 让客人很方便的利用主人(一致代码段)的东西为自己办事.但客人这身份没有改变NewCS.RPL=OldCS.RPL所以只能帮自己办事。比方说乡长有一头牛,农民可以借来帮自己种田,但不能种别人的田.但是如果你是乡长当然可以种乡里所有的田。
3) 非一致代码段的意义:主人(非一致代码段)可以帮客人但一定是用自己的身份NewCS.RPL= DestinationDescriptorCode.DPL这里可能有安全的问题, 搞不好很容易农民变县长。主人太顽固了一定要坚持自己的身份,有什么方法变通一下,来个妥协好不好。好的,它就是RPL的用处
4) RPL: 它让程序有需要的时候可以表示一个特权级更低的身份Max(RPL,CPL)而不会失去本身的特权级CPL(CS.RPL)。有需要的时候是指要检查身份的时候。 很难理解,看这个故事而故事的人物是来自另外的帖子的。
一个农民(低特权级)请县长(高特权级)打听一种超级种子,如果找到的话帮忙拿一点回来,听闻这种超级种子可让收成倍增。县长说:好!我认识很多当官的,我可以帮你打听一下哪里有,但是有些地方如果需要表示身分的话我只能说我是农民的代理人。县长利用自己的身份很容易找到了种子在哪里---找的时候没有人问起他代表谁。县长问种子管理员可不可以给他一点,管理员说种子不能给农民因为种子还在试验阶段,我们可以给县长让他们带回当地的专家来帮忙一起做试验,但是一定要县长来申请。那你是谁?县长说我是农民的代理人,因为县长保证他会这样回答的(他也不知道那农民是不是专家),管理员当然不给。县长没办法只能告诉农民拿不到种子。这件事里面县长是以县长的身份帮农民找到种子,但需要表示身分的时候他说只是农民的代理人。这样做县长可以帮人但也不会给别人利用。(农民可能把种子拿回来卖钱也说不定,没人知道)
在这里RPL就是县长的另一个身份---农民的代理人也就是农民---他会带在身上,人家没有问他的时候他不会告诉别人,所以别人也就以县长的身分来看待他。当查身份的时候他才告诉你---我是农民的代理人。
RPL保存在段选择子里,而段选择子可以是变数(要不然县长怎样带在身上,这样县长也有机会多代表多一些人),当你用Call的时候用上这些变数,这些变数就成了段选择子
事实上RPL跟段本身的特权级DPL和当前特权级CPL没有什么关系,因为RPL的值在成功转跳后并不赋给转跳后的CS.RPL.
还是要问怎样才能成功转跳啦?
普通转跳(没有经过Gate 这东西)
目标是一致代码段:
CPL(CS.RPL)>=DestinationDescriptorCode.DPL  就可以啦,其他RPL是不检查的
转跳后程序的CPL(NewCS.RPL) = 转跳前程序的CPL( OldCS.RPL)
上面的安排就是概念1,2的意思。
目标是非一致代码段:
CPL(CS.RPL)=DestinationDescriptorCode.DPL AND RPL<= CPL(CS.RPL)
转跳后程序的CPL(NewCS.RPL) = DestinationDescriptorCode.DPL
上面的安排就是概念3的意思和部分1的意思----主人(一致代码段)只帮相同特权级的帮客人做事。
To be continuous
Continuous
2006/04/13

现在说明一下gate 的用法:
gate简单来说可以想象成政府为人民提供的一个政府诉求中心,它可以集中收集人民对政府的要求和投诉。。。。。。然后把这些诉求发给相关的政府部门来处理。
这里继续用农民想要一种超级种子的故事来说明一下。我觉得上面的故事还是不太贴切RPL的用法,在这里一起加上gate的用法再说明一下。
Intel政府为了收集广大市民的意见在政府的土地上建立了一所诉求中心,在它的入口放了一块告示写着:我们这里只欢迎普通的市民,如果你是当官的就不要来啦。Intel 政府的诉求中心总是有这样的告示,要求你的身份如果是这档次或者在这个档次以下的我们就欢迎,不是的就不要来了。这是Intel政府的特色,谁也改不了。
农民想要超级种子,不知道找Intel政府那个部门帮忙。但是他知道可以向Intel政府的诉求中心反映一下。他来到了诉求中心并通过了身份检查,交了申请文件就回家等消息。身份检查在这里须要说明一下,原来身为Intel的市民徐了有出1)世纸外,在身上还可以带上两种证件2)身份证,3)工作证, 在身上带多少张工作证是没问题的,只是在身份检查的时候你只能拿一张出来,这种工作证上的身份是自己填的,填什么身份都可以,这次发财了,填上一个大官不是很好。你想得美,在身份证里也有就放着你天生的身份(身份证的资料是依照世纸外来填),在身份检查的时候身份证跟工作证一起对比,政府只认档次低的那一个。这样看来工作证对农民来说是没有什么好处,是的,真的是没有什么好处。农民只要把那张工作证填上身份证的资料就是了。通过了诉求中心的身份检查,诉求中心的人员就把你的文件交给相关政府部门,相关的政府部门也会再次对你的身份进行检查,但这一次它不会检查你的那张工作证,它只会检查你的身份证。以办事原则的不同,Intel政府的部门可以分为两种类型1)一致代码段类型,2)非一致代码段类型。 不同类型的部门对于这种已通过诉求中心的人的身份检查的规则是一样的(如果不是通过诉求中心”gate”, 身份检查的规则可以不一样,请看上面的说明)。它们都要求身份证的身份等于或者小于该部门的人员天生身份---写在出世纸上的那一个身份。它们的不同在于身份检查过关后它们会用什么方式来为你办事。它们的办事原则也就是我在提到的概念2及概念3。写得太累了,我就把前面已有的东西拷贝下来吧:
2) 一致代码段的意义: 让客人很方便的利用主人(一致代码段)的东西为自己办事.但客人这身份没有改变NewCS.RPL=OldCS.RPL所以只能帮自己办事。比方说乡长有一头牛,农民可以借来帮自己种田,但不能种别人的田.但是如果你是乡长当然可以种乡里所有的田。
3) 非一致代码段的意义:主人(非一致代码段)可以帮客人但一定是用自己的身份NewCS.RPL= DestinationDescriptorCode.DPL这里可能有安全的问题, 搞不好很容易农民变县长。主人太顽固了一定要坚持自己的身份,有什么方法变通一下,来个妥协好不好。好的,它就是RPL的用处
诉求中心的人员就把你的文件交给了一个一致代码段类型的县长,如果他答应帮你忙的话,他就一定会把自己的身份变成农民的身份(身份证上原本是县长现在变成是农民)。那么县长变成了农民怎样帮忙,他不能问其他的县长,但我们不能排徐县长认识的农民比你多,他可以问更多的农民有关的消息,他是有可能把种子的消息带给你的。这样的做事原则是很小心,但帮忙不多。
如果诉求中心的人员就把你的文件交给了一个非一致代码段类型的县长。这个县长的个性是怎样我们还没有确定。他可能是一个1)热心又谨慎的人,2)热心但不谨慎的人,3)不热心但谨慎人,4)不热心又不谨慎的人。3 跟 4 是一样的,就是不热心,他不会帮你的,所以我们不谈这种人。我们现在就假设县长是热心又谨慎的人。他的合理做法就会像第一个故事里的县长一样,用自己的身份找资料,用代理人的身份要东西(在有需要的时候他拿出那张农民的工作卡让检查人员认为他是农民)。如果县长是热心但不谨慎的人,麻烦可能会发生,因为他可能只会用县长的身份来做事,这样的话,他的身份证和工作证都是县长,他可能为农民拿了他不该拿的东西。在这里要明白一个事情,就是县长是有权自己决定以哪一种方式为农民服务,他可以选择小心,他也可以选择不小心,还可以选择不帮忙。这里要注意的是非一致代码段类型的县长是永远不会改变身份证上的身份的,同时他有权在任何时间改变工作证上的身份。
总结一下:
DPL = 出生证的身份
CPL = 身份证上的身份
RPL = 工作证上的身份
Gate = Intel政府的诉求中心
县长的谨慎不谨慎就是程序员的编程态度的谨慎不谨慎。
事实上没有RPL你也可也做到同样的事情,只要你有方法知道农民是不是农民,只要检查一下它的CPL就可以啦,然后检查一下农民提交的请求是不是合理,然后决定帮不帮忙或者怎样帮忙就行了。
RPL 只是提供了一个硬件的支持让你做起来方便一点。只要大家按着这个方法来做,这些保护的工作就变得容易,但这样就变成机器依赖了。
对于特权级高的进程RPL是作用是防止自己不小心访问到一些资料段。 比方说,如果进程A的CSL=0,它知道它的委托进程B的CPL=3,也知道资料段C的DPL=2,而这资料段是不能让CSL>2的进程访问的。那么如果你是进程A的程序员根本不需要RPL的帮助,也不会试图让进程A访问资料段C的资料, 因为这样做只会浪费时间。当然如果你一定要访问资料段C的资料然后把资料传给委托进程B,这就是你的选择,你真的可以这样做,但后果自负。只是有时候要访问的资料段我们不知道它的DPL是怎么,也不知道能不能让进程B访问,其中的一个解决方法就是把委托进程B的CPL以RPL的方法告诉资料段C让它决定接受或不接受。
由上面的故事可能发现如果没有一致代码段这东西,能成功转跳后的NewCS.RPL= NewDestinationDescriptorCode.DPL,如不能转跳NewCS.RPL=OldCS.RPL= OldDestinationDescriptorCode.DPL。事实上你的程序不用一致代码段也是可以的。
你还可以发现RPL对特权级=3的进程是没有意义的。因为特权级=3的进程只会找人帮忙。
还是要问怎样才能成功经过Gate 这东西转跳转吗?

目标是一致代码段:
1) CPL(CS.RPL) <= GateDescriptor.DPL AND RPL <= GateDescriptor.DPL
2) CPL(CS.RPL) >= DestinationDescriptorCode.DPL, RPL不再检查
转跳后程序的CPL(NewCS.RPL) = 转跳前程序的CPL( OldCS.RPL)
上面的安排就是概念1,2的意思。
目标是非一致代码段:
1) CPL(CS.RPL) <= GateDescriptor.DPL AND RPL <= GateDescriptor.DPL
2) CPL(CS.RPL) >= DestinationDescriptorCode.DPL RPL不再检查
转跳后程序的CPL(NewCS.RPL) = DestinationDescriptorCode.DPL
上面的安排就是概念3的意思和1的意思。
(7)数据段权限检查 一、数据段权限检查 DPL是段的权限属性,要想访问一个数据段,段选择子和CPU当前权限必须高于DPL。要注意,权限数值越低,权限越高,比如我们常说的0环,就是权限最高的。 RPL:段选择子的权限 DPL:段的权限 CPL:CPU权限 综上所述,数据段权限检查遵循以下规则: CPL <= DPL 并且 RPL <= DPL (数值上的比较) 只有满足上述条件,才能成功访问数据段。 总结: CPL CPU当前的权限级别 DPL 如果你想访问我,你应该具备什么样的权限 RPL 用什么权限去访问 阅读详情

相关推荐

操作系统篇-调用门与特权级(CPL、DPL和RPL).docx

操作系统篇-调用门与特权级(CPL、DPL和RPL).docx

一致代码段和非一致代码段

之所以出现这个定义是因为系统要安全:内核要和用户程序分开..内核一定要安全.不能被用户程序干涉.但是有时候用户程序也需要读取内核的某些数据,怎么办呢?操作系统就引入了访问特权等级(0-3)的机制.这些特权等级,通过三个符号来体现CPL/DPL/RPL.其中CPL是存寄存器如CS中,RPL是代码中根据不同段跳转而确定,以动态刷新CS里的CPL.DPL是在GDT/LDT描述符表中,

feijj2002_的专栏 1万+

intel DPL RPL详解

intel X86中寄存器段寄存器的DPL RPL介绍 CPL是当前进程的权限级别(Current Privilege Level),是当前正在执行的代码所在的段的特权级,存在于cs寄存器的低两位。 RPL说明的是进程对段访问的请求权限(Request Privilege Level),是对于段选择子而言的,每个段选择子有自己的RPL,它说明的是进程对段访问的请求权限,有点像函数参数。而且RPL对每个段来说不是固定的,两次访问同一段时的RPL可以不同。RPL可能会削弱CPL的作用,例如当前CPL=0的进程要访问一个数据段,它把段选择符中的RPL设为3,这样虽然它对该段仍然只有特权为3的访问权限。 DPL存储在段描述符中,规定访问该段的权限级别(Descriptor Privilege Level),每个段的DPL固定。当进程访问一个段时,需要进程特权级检查,一般要求DPL >= max {CPL, RPL}

X86之操作系统之DPL,RPL,CPL

1、DPL,RPL,CPL 之间的联系和区别是什么?RPL和CPL是必须相同吗?如果相同,为什么要采用两个而不改用一个呢? 答:特权级是保护模式下一个重要的概念,CPL,RPL和DPL是其中的核心概念,查阅资料无数,总结如下: 简单解释: CPL是当前进程的权限级别(Current Privilege Level),是当前正在执行的代码所在的段的特权级,存在于cs寄存器的低两位。

BOKE 2834

一个操作系统的实现–关于CPL、RPL、DPL

保护模式中重要的一个思想是通过分级把代码隔离了起来,不同的代码在不同的级别 ,使大多数情况下都只和同级代码发生关系。 Intel 的80286以上的cpu可以识?4个特权级(或特权层) ,0级到3级。数值越大特权越小。一般用把系统内核放在0级,系统的其他服务程序位于1、2级,3级则是应用软件。一般情况下代码都在自己的级别下做自己 的工作,同一级别之间可以相互访问,而一般是不允许不同级别的代码间随意访问的。但有时候不同级别的程序之间一定要访问,比如系统的接口函数等,必须能够 使得应用程序能够随意调用。于是Intel将代码分为:   1.非一致码:受到隔离的代码,只能在同一级别间相互访问

高分思路!挑战7天完成一篇网状meta DAY1-7

PASSION!继续析挑战,7天完成一篇网状meta分!

MR_SCI_help的博客 786

CPL、DPL和RPL

(1)CPL   CPL是当前执行的程序或任务的特权级。它被存储在CS和SS的第0位和第1位上。通常情况下,CPL代表代码所在的段的特权级。当程序转移到不同特权级的代码段时,处理器将改变CPL。只有0和3两个值,分别表示用户态和内核态。 (2)DPL   DPL表示段或门的特权级。它被存储在段描述符或者门描述符的DPL字段中,当当前代码段试图访问一个段或者门(这里大家先把门看成跟段一样),DPL将会和CPL以及段或者门选择子的RPL相比较,根据段或者门类型的不同,DPL将会区别对待。 GD..

jadeshu的博客 4959

基于车辆运动学的规划算法 - Hybrid A*/ State Lattice Planning (前置知识:自行车模型、Dubins、Reeds Shepp、多项式曲线、螺旋曲线)

本文将按顺序讲解基于车辆运动学的规划算法,以及需要的前置知识:自行车模型、Dubins和Reeds Shepp曲线、多项式曲线和螺旋曲线

BigDavid123的博客 4859

CPL RPL与DPL 之间的区别和联系

众所周知,特权级是CPU保护模式的核心,那么CPL,RPL与DPL就可以称得上是特权级的核心了。因为这三个概念之前一直没弄懂,于是今天一狠下心,决定一定要将其弄明白,于是,来记录一下。 (本文的图来自于Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3) 疑问一:RPL是用来限制什么的? 我们先来明确一个检...

Yannie's Blog 9428

知识图谱初步学习(一)——本体+Protege新手学习

文章目录前言(本体详解)1.本体概念2.本体分类3.本体组成4.本体构建方法一、protege简介二、软件使用步骤1.安装2.使用三、问题解决方案汇总 前言(本体详解) 在开始学习知识图谱的过程中,首先就是要了解什么是本体(ontology)。 1.本体概念 本体的概念最初源自于哲学领域,在哲学中的定义为“对世界上客观事物的系统描述,即存在论”。哲学中的本体关心的是客观现实的抽象本质。而在计算机领域,本体是可以在语义的层次上来对知识进行描述,可以看做是某一个领域知识的通用模型。 本体是从客观世界中抽象出来

qq_43654669的博客 3万+

Synology-群晖(三)DSM7.0系统Video Station无法播放DTS eac3解决方案

群晖升级DSM7.0后,发现部分DTS eac3解码的视频无法通过Vedio Station 3.0.1-2067进行播放,提示不支持该格式视频,初步判断是无法加载ffmpeg解码导致,网上搜了很多处理办法都没有办法解决,最终在知乎上看到一片文章,按此办法解决了这个问题,目前经过验证,该方案完美支持最新版本Video Station 3.0.1-2067,验证系统为DSM7.0和DSM7.0.1,这里使用的NAS为 Vmware虚拟机 黑群晖 演示。大概步骤如下: 添加这个社群来源 http://p

weixin_45827203的博客 3万+

详解 RPL、DPL、CPL 的关系

保护模式中最重要的一个思想就是通过分级把代码隔离了起来,不同的代码在不同的级别,使大多数情况下都只和同级代码发生关系。Intel的80286以上的cpu可以识別4个特权级(或特权层) ,0级到3级。数值越大特权越小。一般用把系统内核放在0级,系统的其他服务程序位于1、2级,3级则是应用软件。一般情况下代码都在自己的级别下做自己的工作,同一级别之间可以相互访问,而一般是不允许不同级别的代码间随意访问...

qq_40627648的博客 1174

Python广度优先搜索BFS - 蓝桥13届省赛污染海域

请问这片N * M海域中有几块是没被污染的独立海域(没被污染的独立海域是指该块海域上下左右被已污染的海域包围,且N * M以外的海域都为已被污染的海域)有一片海域划分为N * M个方格,其中有些海域已被污染(用0表示),有些海域没被污染(用1表示)。第二行开始输入N行,每行M个数字(数字只能为1或者0,1表示没被污染的海域,0表示已被污染的海域)这块4 * 5的海域,有3块海域(绿色)没被污染,因为每一块的上下左右都被污染的海域包围。输出一个整数,表示N * M的海域中有几块是没被污染的独立海域。

m0_69865359的博客 264

DPL, CPL及RPL之间的关系

DPL: Descriptor Privilege Level 1) GDT/LDT表中的描述符 GDT/LDT表中的描述符,描述的是一段内存。 其中的DPL代表着GDT/LDT中的描述符描述的内存段的特权级别。 比如,当前正在执行的代码,它的特权级别就是当前的CS段选择子指向的段描述符中的DPL所决定的。 即DPL是描述一段内存的特权级别。 2) IDT表中的描述符 IDT表中的描述符,...

weixin_33725239的博客 1076

Python中优化模块scipy.optimize的优化算法介绍

如果你有一个特殊的优化问题,你可以使用对象来自定义问题的求解。# 自定义目标函数# 自定义优化问题custom_problem.fun = custom_objective_function # 目标函数custom_problem.x = [1, 1] # 初始猜测# 执行优化# 打印结果在上述例子中,我们自定义了一个对象,并指定了目标函数和初始猜测,然后使用minimize函数进行求解。Scipy的优化模块提供了丰富的功能,适用于各种优化问题。

Pandas120的博客 3047

从 OPEN CURSOR 到 SELECT INTO TABLE:把 ABAP 数据读取的底层机制与性能差异讲透

ABAP数据库访问性能优化关键点 摘要:ABAP程序性能的核心在于数据读取方式的选择。本文分析了三种常见数据库访问方式的技术原理:显式游标(CURSOR)、SELECT-ENDSELECT循环和SELECT INTO TABLE。重点揭示了数据从数据库到应用服务器的传输机制,包括OPEN/REOPEN与FETCH操作、Array Fetch批量传输原理以及SAP游标缓存机制。通过VBAK表的性能测试数据对比,证明了不同场景下最优访问方式的选择依据:大数据量时显式游标性能优势明显,而SELECT INTO T

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 172

不同特权级代码段之间的跳转(CPL DPL RPL之间的关系)

1、特权级 2、一致代码段和非一致代码段 3、DPL、RPL、CPL分别代表的含义,存储在什么位置,以及它们之间的关系 4、不同特权级数据段之间的访问规则 5、不同特权级代码段之间的转移 6、代码段之间的转移对堆栈的影响 7、结合pmtest5.asm来见证不同特权级代码段之间的跳转 一、特权级 在IA32的分段机制下,特权级总共有4个特权级别,从高到低分别是0、1、2、3

Ydoing的专栏 2170

【ARM Trace32(劳特巴赫) 高级篇 20 -- SNOOPer 使用介绍】

在 Lauterbach TRACE32 调试系统中,Snooper是一种特殊的监视工具,它能够在不中断处理器执行的情况下监视和记录特定内存地址的数据变化。这对于系统级调试、性能分析、数据流监视以及实时系统的问题追踪特别有用,尤其是在无法使用中断的情况下。当你设置了一个或多个Snooper时,TRACE32 硬件将不断地监视指定的内存地址,一旦发生了读写操作,就会将相关信息记录下来。这样你就可以看到某个地址的数据是什么时候以及如何被修改的,而不会影响目标系统的运行。

CodingCos的博客 2764

CPL,RPL和DPL的关系

摘自《Intel® 64 and IA-32 Architectures Software Developer’s Manual Combined Volumes1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D and 4》

RToax 530

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

简析CPL RPL DPL的关系

跳转到调用门的步骤及相关检查 参考资料:1.《X86汇编语言 从实模式到保护模式》 2. https://www.cnblogs.com/chenwb89/p/operating_system_004.html

小张的妙妙屋 386

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

CPL RPL 和DPL的个人总结

CPL、RPL和DPL 一、 Current Privilege Level 1.物理位置 CS寄存器低二位,实际为CS寄存器的RPL字段。 2.作用 表明当前所处的特权等级,一般情况下与DPL相等,不如说CPL实际的来源就是DPL,除向一致性段的跳转以外。 二、 Request Privilege Level 1.物理位置 段选择子寄存器低二位。 2.作用 作为请求跨段跳转的请求特权级,一般情况下与CPL相等,RPL是由用户提供的段选择子寄存器指定,所以用户能够定义不符合规定的RPL,不相等只存在与以下两

jifeidanda123的博客 1730

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

关于CPL、RPL、DPL

保护模式中最重要的一个思想就是通过分级把代码隔离了起来,不同的代码在不同的级别 ,使大多数情况下都只和同级代码发生关系。 Intel的80286以上的cpu可以识別4个特权级(或特权层),0级到3级。数值越大特权越小。一般用把系统内核放在0级,系统的其他服务程序位于1、2级,3级则是应用软件。一般情况下代码都在自己的级别下做自己的工作,同一级别之间可以相互访问,而一般是不允许不同级别的代码间随意

xyjikl 7295

特权级1——RPL、DPL、CPL

保护模式中最重要的一个思想就是通过分级把代码隔离了起来,不同的代码在不同的级别,使大多数情况下都只和同级代码发生关系。Intel的80286以上的cpu可以识別4个特权级(或特权层) ,0级到3级。数值越大特权越小。一般用把系统内核放在0级,系统的其他服务程序位于1、2级,3级则是应用软件。一般情况下代码都在自己的级别下做自己的工作,同一级别之间可以相互访问,而一般是不允许不同级别的代码间随意访问

fisher_jiang的专栏 3038

windows内核保护模式段权限检查(CPL / RPL / DPL)

第一句:Windows 只使用 0 和 3。第二句:CPL 在当前CS,RPL 在选择子,DPL 在描述符。先看这一刻CS的低两位,再看要装的那张选择子,最后看目标段自己的门槛。第三句:数据看 max,栈段要同级。检查只发生在装段寄存器的时候,不是每条访存指令都做一次。上面结论对照 Intel SDM 第 091 版核过,主线落在 Vol. 3A 的 §6.5、§6.6、§6.7。文中三张图均从该版手册截取,未做改动。觉得这种把一条规则拆到手册原图上的写法有用,就点个「在看」。

微尘网络安全 441
上一篇: 浮点寄存器
下一篇: Intel(R) WiFi Link 5100 AGN 破解无线网络 BT4正式版U盘启动
TypeCool
博客等级 码龄22年 58粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值