深入理解Linux内核 - 第二章 内存寻址 03
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解Linux内核 - 第二章 内存寻址 03相关的知识,希望对你有一定的参考价值。
问题:
1,逻辑地址怎么求?
2,段描述符的base字段怎么求?
逻辑地址:由16位段选择符和32位偏移量组成,并不是说这个地址就是段选择符偏移32位再和偏移量相加。
段选择符:或叫段标识符,是一个16位长的字段。顾名思义,用于选择段的。为了快速找到段选择符,处理器提供段寄存器。
15~3bit,段索引号,2bit TI位, 1 0 位,特权级别。
由于段选择符仅仅在转换成线性地址中发挥作用,则通常认为32位偏移量就是逻辑地址。也即c语言中用&求得一个变量的地址就是逻辑地址。
段描述符:段选择符中,段索引号指向的是在段描述符表中的段描述符,这个段描述符是由8个字节表示。包含Base等9个标识。所以,Base就包含在段描述中。
段描述符放在全局描述符表(GDT)或局部述符表中(LDT)。GDT存放在内存中,地址和大小放在gdtr控制寄存器中。LDT放在ldtr控制寄存器中。
TSS:任务状态段。任务状态主要是由一些寄存器来表示,因此这个段用来保存处理器寄存器的内容。这个段只能在GDT中
线性地址:段描述符中的Base+逻辑地址偏移量
问题:段描述符中的字段含义?
以上是关于深入理解Linux内核 - 第二章 内存寻址 03的主要内容,如果未能解决你的问题,请参考以下文章