美文网首页
linux内存映射,内存分布情况

linux内存映射,内存分布情况

作者: sgy1993 | 来源:发表于2017-09-06 22:17 被阅读0次

    Linux_Memory_Address_Mapping
    Linux内存地址映射
    http://ilinuxkernel.com/?p=1276

    [root@localhost Memory_Address_Mapping]# ./mem_map 
    
    %ebp:0xBFD56888
    tmp address:0xBFD56880
    cr4=000006D0  PSE=1  PAE=0  
    cr3=0ED64000 cr0=8005003B
    pgd:0xCED64000
    gdtr address:C180B000, limit:FF
    

    gdtr address:C180B000 - PAFE_OFFSET=0x180b000.这个是物理地址

    tmp address:0xBFD56880这个地址是逻辑地址,怎么转化成线性地址呢?

    tmp address:0xBFD56880,高10位值为0x2ff,表示页目录的索引

    cr3=0ED64000寄存器是页目录所在的基地址,第0x2ff项,一项是4个字节

    所以地址里面的内容是0x385E3067

    000000ED64BF0   00000000    00000000    00000000    385E3067  ............g0^8
    

    0x385E3000是二级页表所在的物理基地址,067是物理偏移,tmp的中间10位是0x156
    所以页面地址是0x385E3000+0x156*4=0x385E3558

    得到的地址是0x385E2067,最终加上temp的低12位0x385E2880
    最终里面存放的数据确实是0x12345678
    00000385E2880 12345678

    640kb-1M的空间用来做高速缓冲区

    相关文章

      网友评论

          本文标题:linux内存映射,内存分布情况

          本文链接:https://www.haomeiwen.com/subject/fyjvjxtx.html