linux 内存管理(菜鸟理解)--寻址1

一.使用80x86 微处理器,必须搞懂以下三种不同的地址:

1)逻辑地址——每个逻辑地址由一个段标示符+段内偏移量构成(自己认为这个逻辑地址指向的就是程序代码的或数据的地址)

2)线性地址——32位无符号整数,可表示4GB的线性地址,通常十六位进制表示,0x00000000---0xffffffff

3)物理地址——先简单的理解为那块内存条

像我一样的菜鸟对线性地址和物理地址会有一些主观的认识的,但对逻辑地址的组成应该是没什么主观的看法吧。

其实除了物理地址以为,线性和逻辑地址都只是一堆数据而已,而这堆数据时如何存储,存在外存还是内存,我现在还不清楚。

 

二.逻辑地址

(个人理解“段”就是某一程序被调入内存的指令集合数据的开始到结束那一部分)

段标示符是一个16位长的字段,称为段选择符。顾名思义,是用来选择段的一个标识。这个段由3一些字段表示索引号,索引的就是具体哪个段。

每个段由一个8字节的段描述符表示(类似于一片文章的大纲),描述段的特征(具体请百度)。段描述符放在GDT/LDT 中 (全局描述符表/局部描述符表)

段也好,段描述符也好只是一堆数据,因此GDT在主存中的地址和大小放在gdtr控制寄存器中,而当前被使用的LDT地址和大小被放在ldtr控制器中。

今天就写到这里,这是我这个菜鸟今天的收获,拿来与大家分享,有不对的地方 一定要帮小弟指出来啊!!谢谢^_^

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。