linux0.12内核---内存分页与线性地址到物理内存的转换

记录一下自己对于内存分页机制的理解,基于linux0.12内核,机制简单,更加有助于初学者理解。
在这里插入图片描述

内存分段机制将逻辑地址转化为线性地址,由于分页机制,线性地址到物理地址并不是直接对应的,linux0.12内核中采用了两级页表的方式实现了对4G内存的映射。

两级页表的第一级是页目录,其中每一项存储的是页表在物理内存中的存放基址。第二级是页表,其中每一项存放的是该线性地址对应的实际物理内存页的地址。

如上图,线性地址划分为三个部分,分别用来寻找也目录表中的某一个页目录项,页表中的某一个页表项,以及在实际物理内存页中的偏移地址。

  1. 在寻址某一块物理内存时,首先通过分段机制将逻辑地址转化为线性地址。
  2. 然后根据CR3寄存器中存放的页目录在物理内存中的基址,加上线性地址中页目录项指针,找到页目录中指定的某一项。
  3. 根据页目录项中存储的页表在物理内存中的基址,加上线性地址中页表项指针,找到页表中的某一项。
  4. 根据页表项中存储的要寻址的线性地址对应的物理内存基址加上偏移地址,最终获得线性地址对应的物理内存中的地址。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值