保护模式下的汇编语言
文章平均质量分 73
手写的从前66
这个作者很懒,什么都没留下…
展开
-
详解 RPL、DPL、CPL 的关系
保护模式中最重要的一个思想就是通过分级把代码隔离了起来,不同的代码在不同的级别,使大多数情况下都只和同级代码发生关系。Intel的80286以上的cpu可以识別4个特权级(或特权层) ,0级到3级。数值越大特权越小。一般用把系统内核放在0级,系统的其他服务程序位于1、2级,3级则是应用软件。一般情况下代码都在自己的级别下做自己的工作,同一级别之间可以相互访问,而一般是不允许不同级别的代码间随意访问...转载 2018-12-13 12:51:46 · 796 阅读 · 0 评论 -
关于CPL、RPL、DPL生动形象地解释
保护模式中最重要的一个思想就是通过分级把代码隔离了起来,不同的代码在不同的级别 ,使大多数情况下都只和同级代码发生关系。Intel的80286以上的cpu可以识別4个特权级(或特权层),0级到3级。数值越大特权越小。一般用把系统内核放在0级,系统的其他服务程序位于1、2级,3级则是应用软件。一般情况下代码都在自己的级别下做自己的工作,同...转载 2018-12-12 12:51:41 · 1163 阅读 · 0 评论 -
分段分页机制
意义:分页机制是为了充分利用空间,将琐碎的地址空间利用起来; 分段机制是为了解决冲突问题,它是一种机制,这种机制使得很方便地管理内存; 1. 内存分段 1.1 为什么分段? 在x86-16体系中,为了解决16位寄存器对20位地址线的寻址问题,引入了分段式内存管理。而CPU则使用CS,DS,ES,SS等寄存器来保存程序的段首...转载 2018-12-11 16:55:44 · 353 阅读 · 1 评论 -
虚拟内存详解(2)
一、定义以及基本思想定义:系统对主存的抽象。基本思想:允许每个数据对象有多个独立的地址,其中每个地址选自不同的地址空间。二、作用将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在主存和磁盘中来回传递数据,通过这种方式可以高效的使用主存。它为每个进程提供一致的的地址空间,从而简化了内存管理。它保护了每个地址空间不被其他进程所破坏。三、虚拟内存...转载 2018-12-10 22:45:11 · 208 阅读 · 0 评论 -
什么是内存(二):虚拟内存
通过上一篇文章的扯淡,我们应该已经明白了存储器的层次结构,技术细节很复杂,但是思想却不难理解,因为就是很简单的缓存思想。那么本文我们开始讨论关于内存的另一个话题.虚拟内存。其实思想也是很容易理解的。我不知道有多少人听过虚拟内存这个概念,但是虚拟内存是计算机系统最重要的概念之一,并且它成功的主要原因就是它一直在沉默的,自动的工作,换句话说,我们这些做应用的程序员根本不需要干涉它的工作过程,但是一...转载 2018-12-10 22:40:35 · 181 阅读 · 0 评论 -
虚拟地址空间发展的来龙去脉
<div class="htmledit_views"> <p><!-- [if !mso]&gt;&#10;&lt;mce:style&gt;&lt;!-&#10;v/:* {behavior..转载 2018-12-10 20:40:55 · 175 阅读 · 0 评论 -
物理内存、虚拟内存的区别、虚拟地址空间概念及区别
物理内存(内存条):当打开程序时,系统会将这些程序加载到物理内存上。虚拟内存(硬盘):虚拟的不是物理内存,而是代替物理内存行使存储的功能,物理内存的运行程序的功能是无法用虚拟内存来完成的。物理内存与虚拟内存的关系:当运行程序过多,物理内存不够用时,系统会将一部分硬盘空间当内存使用,这部分空间就是虚拟内存。...转载 2018-12-10 20:15:11 · 476 阅读 · 1 评论 -
内存管理笔记(分页,分段,逻辑地址,物理地址与地址转换方式)
1. 物理地址和逻辑地址物理地址:加载到内存地址寄存器中的地址,内存单元的真正地址。在前端总线上传输的内存地址都是物理内存地址,编号从0开始一直到可用物理内存的最高端。这些数字被北桥(Nortbridge chip)映射到实际的内存条上。物理地址是明确的、最终用在总线上的编号,不必转换,不必分页,也没有特权级检查(no translation, no paging, no privilege c...转载 2018-12-10 20:20:51 · 884 阅读 · 0 评论 -
物理存储器和存储地址空间的区别
《汇编语言》王爽版:内存地址空间物理存储器和存储地址空间是两个不同的概念。但是由于这两者有十分密切的关系,而且两者都用B、KB、MB、GB来度量其容量大小,因此容易产生认识上的混淆。两者最大区别在于物理存储器是实际存在的储存地址,而存储地址空间指逻辑上的储存地址。物理存储器:是指实际存在的具体存储器芯片。如主板上装插的主存条和装载有系统的BIOS的ROM芯片,显示卡上的显示RAM芯片和装载显示...原创 2018-12-10 20:17:34 · 3968 阅读 · 0 评论 -
特权级变换总结
1、特权级2、一致代码段和非一致代码段3、DPL、RPL、CPL分别代表的含义,存储在什么位置,以及它们之间的关系4、不同特权级数据段之间的访问规则5、不同特权级代码段之间的转移6、代码段之间的转移对堆栈的影响7、结合pmtest5.asm来见证不同特权级代码段之间的跳转一、特权级在IA32的分段机制下,特权级总共有4...转载 2018-12-15 15:35:13 · 305 阅读 · 1 评论 -
从高特权级跳转到低特权级怎么回事
我在学习保护模式特权级转换时,看到书上列出了很多转换规则,复杂之极,于是个人总结一下(简单总结,高手见笑了),如下:1.不使用控制门时只能进行同级跳转(无论jmp还是call)。2.要想进行不同级别的跳转,只能使用控制门。但是对于上面第2条,书上只介绍了能利用“call + 控制门”从低特权级跳转到高特权级,可是并没有说“call + 控制门”能够实现从高特权级跳转到低特权级。书上只是简单的...转载 2018-12-14 23:05:00 · 478 阅读 · 0 评论 -
引入TSS与堆栈切换
【0】READMEtext description from orange’s implemention of a os and for complete code ,please visit https://github.com/pacosonTang/Orange-s-OS/blob/master/p...转载 2018-12-14 22:30:02 · 483 阅读 · 2 评论 -
关于CPL、DPL、RPL(3)
关于CPL、DPL、RPL这几个概念刚开始是有点难理解的,因为各种情况都有,有点复杂。我觉得最简单的办法就是,把程序的各种段,理解为国家的各种政府机构,例如省级机构、市级机构、县级机构等,DPL就是用来标识这个的,这是个静态的概念,省级的机构办省级的事,市级的机构办市级的事,设置好了各自的职权范围。而执行程序,可以理解为去这些机构办事,CPL就是你当前的身份。而RPL呢,可以理解为,你去办事...转载 2018-12-14 22:22:14 · 563 阅读 · 0 评论 -
有特权级变换的转移——堆栈的切换
在没有特权级变换的情况下,程序的转移中的一些参数和返回地址都是push进同一个堆栈,这种情况比较简单。而如果转移伴随着特权级变换,那么我们就会涉及到两个堆栈,外层堆栈(调用者堆栈)和内层堆栈(被调用者堆栈)。(特权级变化的时候,堆栈也要发生变化,这个是处理器的机制,其作用是为了避免高特权级的过程由于栈空间不足而崩溃。) 既然涉及到两个堆栈,那么我们从哪里取得其...转载 2018-12-14 12:58:12 · 687 阅读 · 0 评论 -
DPL,RPL,CPL 之间的联系和区别+指令跳转(超详细版)
CPL是当前进程的权限级别(Current Privilege Level),是当前正在执行的代码所在的段的特权级,存在于cs寄存器的低两位。RPL说明的是进程对段访问的请求权限(Request Privilege Level),是对于段选择子而言的,每个段选择子有自己的RPL,它说明的是进程对段访问的请求权限,有点像函数参数。A...转载 2018-12-13 16:57:06 · 2411 阅读 · 0 评论 -
一致代码段和非一致代码段
之所以出现这个定义是因为系统要安全:内核要和用户程序分开..内核一定要安全.不能被用户程序干涉.但是有时候用户程序也需要读取内核的某些数据,怎么办呢?操作系统就引入了访问特权等级(0-3)的机制.这些特权等级,通过三个符号来体现CPL/DPL/RPL.其中CPL是存寄存器如CS中,RPL是代码中根据不...转载 2018-12-12 12:52:16 · 113 阅读 · 0 评论