内存地址分类 逻辑地址:机器语言指令中用来指定一个操作数或一条指令的地址。每一个逻辑地址都由一个段(segment)和偏移量(offset或displacement)组成,偏移量指明了从段开始的地方到实际地址之间的距离。 线性地址(或 虚拟地址):一个32位(或64位)无符号整数,在32位系统中可以 ...
分类:
系统相关 时间:
2017-09-08 15:30:39
阅读次数:
297
问题:段描述符中的字段含义? 段首地址的线性地址/偏移/粒度/特权限制等信息。 1,快速访问段描述符 在加载段选择符时,相应的段描述符被自动由内存装入对应的非编程CPU寄存器。装入后就不再访问主存中的GDT或LDT。 2,段选择符的字段 index:指定了放在GDT或LDT中相应段描述符的入口 TI ...
分类:
系统相关 时间:
2017-08-25 01:12:26
阅读次数:
183
问题:1,逻辑地址怎么求?2,段描述符的base字段怎么求? 逻辑地址:由16位段选择符和32位偏移量组成,并不是说这个地址就是段选择符偏移32位再和偏移量相加。 段选择符:或叫段标识符,是一个16位长的字段。顾名思义,用于选择段的。为了快速找到段选择符,处理器提供段寄存器。 15~3bit,段索引 ...
分类:
系统相关 时间:
2017-08-24 00:02:34
阅读次数:
215
1,三个地址 逻辑地址,机器语言指令中用来指定一个操作数或一条指令的地址。 线性地址:32位无符号整数,高达4GB。64位的cpu就是64位的线性地址 物理地址:内存芯片级内存单元寻址。老式x86由32位或36位无符号整数表示。 2,MMU内存控制单元 存在一个分段单元的硬件电路将一个逻辑地址转换为 ...
分类:
系统相关 时间:
2017-08-21 22:58:11
阅读次数:
232
1.前言 关于内存管理的系列文章主要是对陈莉君老师所讲述的内存管理知识的整理。 本文将主要以X86架构来介绍Linux内存管理的相关知识。 2. 内存寻址 内存寻址是操作系统设计的硬件基础之一 操作系统是横跨软件和硬件的桥梁 操作系统设计者必须在硬件相关代码和硬件无关代码之间划分清晰的界限,以便操作 ...
分类:
系统相关 时间:
2017-07-12 01:03:19
阅读次数:
221
管道和重定向:><>><<运算器控制器:CPU存储器:RAM输入设备/输出设备程序:指令和数据控制器:指令运算器存储器地址总线:内存寻址数据总线:传输数据控制总线:控制指令寄存器:CPU暂时存储器I/O:硬盘INPUT设备:OUTPUT设备:系统设定默认输出设备:标准..
分类:
其他好文 时间:
2017-06-20 18:11:21
阅读次数:
127
在BIOS触发0x19中断将磁盘的第一个扇区(512B)载入到内存中后。计算机才真正開始运行磁盘上的程序。而这512B的程序就是bootsect.s,此时处理器还处于实模式内存寻址的最大范围是1M(0x0000-0xFFFF),接下来我们看看在bootsect.s的第一批代码中做了些什么? </pr ...
分类:
系统相关 时间:
2017-05-23 21:51:16
阅读次数:
160
http://blog.xiaohansong.com/2015/10/05/Linux内存寻址之分页机制/ 在上一篇文章Linux内存寻址之分段机制中,我们了解逻辑地址通过分段机制转换为线性地址的过程。下面,我们就来看看更加重要和复杂的分页机制。 分页机制在段机制之后进行,以完成线性—物理地址的转 ...
分类:
系统相关 时间:
2017-05-20 01:05:44
阅读次数:
233
http://blog.xiaohansong.com/2015/10/03/Linux内存寻址之分段机制/ 、段的起始地址、段的长度等等,而在保护模式下则复杂一些。IA32将它们结合在一起用一个8字节的数表示,称为描述符 。IA32的一个通用的段描述符的结构从图可以看出,一个段描述符指出了段的32 ...
分类:
系统相关 时间:
2017-05-20 01:02:30
阅读次数:
244
1.运算器、控制器、存储器、输入输出(IO) 地址总线:内存寻址 数据总线:传输数据 控制总线:控制指令 寄存器:cpu暂时存储器 2.系统设定 默认输出设备:标准输出,STDOUT,1(描述符)(显示器) 默认输入设备:标准输入,STDIN ,0 (通常是键盘) 标准错误输出:STDERR ,2 ...
分类:
系统相关 时间:
2017-05-17 11:59:31
阅读次数:
351