- 17
- 0
- 约6.64千字
- 约 56页
- 2016-03-13 发布于安徽
- 举报
xlanchen@2007.9.18 Linux Operating Systems Analysis Linux操作系统分析 主讲:陈香兰 助教:贾永泉、毛熠璐 xlanchen@ustc.edu.cn 3606864-83(西区电三421) Autumn 2007 上次课内容回顾 源代码简介 启动代码简介 Linux内核代码组成分析 Linux的启动层次 Linux的启动分析 内存寻址 xlanchen@2007.9.18 内容提要 X86微处理器的存储器寻址 Linux在X86上的寻址实现 存储器地址 在intelx86处理器下,有三种不同的地址 逻辑地址:每个逻辑地址由一个段(segment)和偏移量(offset)组成 线性地址:32位无符号整数,可以表示4G的地址空间 物理地址:用于芯片级内存单元寻址。它们与从CPU的地址引脚发送到内存总线上的电信号相对应 地址转换过程 为什么需要内存寻址机制? 保护内核不受恶意或者无意的破坏 隔离各个用户进程 方便程序的编写,使程序员可以抛开对物理内存的考虑,而且理论上可以使用任意大小的空间 硬件的分段单元(1)段寄存器(segment register) I386体系结构采用分段机制 逻辑地址=段:段内偏移 使用16位段寄存器来指明当前所使用的段 有六个:cs, ss, ds, es, fs和gsCPU规定了3个寄存器的专门的用途 cs 代码段寄存器,指向存放程序指令的段 ss 堆栈段寄存器,指向存放当前堆栈的段 ds 数据段寄存器,指向存放数据的段 从80386开始,Intel微处理器以两种不同的方式执行地址转换 实模式(20位) 16位段寄存器只记录段基址的高16位,因此段基址必须4位对齐(末4位为0) 不采用虚拟地址空间,直接采用物理地址空间 物理地址=段寄存器值*16+段内偏移 保护模式(32位) 16位段寄存器无法直接记录段的信息,因此需要与全局描述符表GDT配合使用 GDT中记录了每个段的信息(段描述符),段寄存器只需记录段在GDT中的序号 注意:cs寄存器还有一个很重要的功能:它含有一个两位的域,用以指明CPU的当前特权级CPL (current privilege level),值为0代表最高优先级,值为3代表最低优先级 线性地址=段基地址+段内偏移 其中,段基地址是根据段寄存器所指明的GDT中的段描述符中的信息得到的 物理地址:根据页表对线性地址进行转换而得到 GDT和段描述符 (segment descriptor) 每个段由一个段描述符来表示,一个段描述符长度为8个字节 全局描述符表GDT (global description table)就用来存放段描述符 GDT表也存放在RAM中,并使用一个专门的寄存器GDTR来指示GDT表在RAM中的位置(物理起始地址) 局部描述符表LDT(Local Description Table) 根据x86,每个进程可以设置一个LDT LDT表也存放在RAM中,使用LDTR来指示当前的LDT表 由于段的用途不一样,Intelx86提供下列几种段描述符 数据段描述符(Data Segment Descriptor) 可以描述各种用户数据段和堆栈段 代码段描述符(Code Segment Descriptor) 描述一个用户代码段 任务状态段描述符(Task State Segment Descriptor) 描述一个任务的状态段 局部描述符表描述符 描述一个LDT段 系统段描述符(System Segment Descriptor) 段描述符主要描述如下内容 段的物理起始地址(base字段,32位) 段长度(limit字段,20位) 段长度的单位(粒度,G标志,1位) 0:字节为单位 1:4KB为单位 是否系统段(S标志,1位) 0:系统段 1:普通的段 类型字段(Type字段,4位) 例如代码段、数据段、任务状态段、局部描述符段等等 段的特权级描述字段(DPL字段,2位) 00b:只能被CPL=00b的内核代码段访问 .. 11b:可以被任意代码段访问 段存在标志(1位) 0:该段当前不在内存中 1:该段当前在内存中 … 段描述符的格式 段选择子(Segment Selector) 16位段寄存器与GDT或LDT配合起来对相应的段进行寻址 段寄存器中的值称为段选择子,16位 13位的索引,指定GDT表中的相应的段描述符 1位的TI(Table Indicator) (跟LDT表有关,Linux中基本未使用) 2位RPL(request privilege level)当相应的段选择符装入到cs寄存器中时,表明了CPU的当前特权级(用户/内核) 段选择子的使用和段描述符的快速访问 逻辑地址到线性地址的转换
您可能关注的文档
最近下载
- 2025年安徽省公务员行测真题(各地真题).docx VIP
- 八年级语文下册第三单元知识梳理与解析.docx VIP
- 内蒙古呼和浩特市2025-2026学年高一上学期期末考试政治试卷(含答案).pdf VIP
- 湖北省黄石市2025-2026学年高二上学期2月期末语文试卷(含答案).pdf
- 人教版八年级语文下册第一单元知识梳理全套.docx VIP
- (人教版)2025年高一物理寒假衔接讲练 ②寒假预习-第07讲 竖直平面内的圆周运动(教师版).doc VIP
- Simon考官9分大作文范文合集.pdf VIP
- 《眼视光技术》高阶课程-眼压计.pptx VIP
- 八年级语文下册第一单元的知识要点梳理.docx VIP
- Sony索尼耳机WH-1000XM2用户手册.pdf
原创力文档

文档评论(0)