您的位置 首页 分销

你知道Linux0.11-几种地址的意义?

你知道Linux0.11-几种地址的含义?-虚拟地址(virtual address)指程序产生的有段选择符和段内偏移两部分组成的地址。一个程序的虚拟地址空间有GDT映射的全地址空间和LDT映射的局部地址空间组成。

1.程序(进程)的虚拟地址和逻辑地址

虚拟地址(virtual address)指程序发生的有段选择符和段内偏移两部分组成的地址。一个程序的虚拟地址空间有GDT映射的全地址空间和LDT映射的部分地址空间组成。

逻辑地址(logical address)指程序发生的段内偏移地址。应用程序只与逻辑地址打交道,分段分页对应用程序来说是通明的。也便是说C语言中的&,汇编语言中的符号地址,C中嵌入式汇编的”m”对应的都是逻辑地址。

2.CPU的线性地址

线性地址(linear address)是逻辑地址到物理地址改换的中间层,是处理器可寻址空间的地址。程序代码发生的逻辑地址加上段基地址就发生了线性地址。

3.实践物理内存地址

物理地址(physical address)是CPU外部地址总线上的寻址信号,是地址改换的终究成果,一个物理地址一直对应实践内存中的一个存储单元。对80386保护模式来说,假如敞开分页机制,线性地址经过页改换发生物理地址。假如没有敞开分页机制,线性地址直接对应物理地址。页目录表项、页表项对应都是物理地址。

Linux 0.11的内核数据段,内核代码段基地址都是0,所以对内核来说,逻辑地址便是线性地址。又由于1个页目录表和4个页表彻底映射16M物理内存,所以线性地址也便是物理地址。故对linux0.11内核来说,逻辑地址,线性地址,物理地址重合。

  线性地址:是CPU所能寻址的空间或许规模。

  物理地址:是机器中实践的内存地址。换言之,是机器中的内存容量规模。

  逻辑地址:是对程序而言的。一般以Seg:Offset来表明。

  因而,若要的确比较三者的话,应有以下联系:线性地址大于等于物理地址(PS:但二者的地址空间是相同的),而逻辑地址大于线性地址。逻辑地址经过段表改换成线性地址,此刻假如并未敞开分页机制的情况下,逻辑地址直接转换成CPU所能寻址的空间。若已敞开则经过页表完结线性地址到物理地址的改换。

  因而,三者最精确的联系是:逻辑地址经过线性地址完结物理地址的映射,线性地址在三者之中彻底是充任“桥”的效果。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/99908.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部