网站建设 工具,菡萏怡景装饰公司,南充手机网站建设,做百度推广和企业网站那个有效果吗Linux内核源码分析 (B.x)Linux页表的映射 文章目录 Linux内核源码分析 (B.x)Linux页表的映射一、ARM32页表1、页表术语2、虚拟地址到物理地址转换3、一级页表项4、二级页表项 二、ARM64页表1、ARMv8-A架构2、4KB大小页4级映射 三、Linux内核中关于页表的函数和宏1、查询页表2、…Linux内核源码分析 (B.x)Linux页表的映射 文章目录 Linux内核源码分析 (B.x)Linux页表的映射一、ARM32页表1、页表术语2、虚拟地址到物理地址转换3、一级页表项4、二级页表项 二、ARM64页表1、ARMv8-A架构2、4KB大小页4级映射 三、Linux内核中关于页表的函数和宏1、查询页表2、判断页表项的状态3、修改页表 四、研究实例五、ARM32页表和Linux页表解惑1、ARM32页表和Linux页表2、ARM32的PTE页表项和Linux页表不一样 六、其他实例问题 一、ARM32页表
1、页表术语 在Linux内核源码中会用到PDG、PUD、PMF和PT等简称但在ARM芯片手册上会使用L1、L2、L3等术语
2、虚拟地址到物理地址转换 针对两级级页表而言这里的L1索引和L2索引分别对应于PGD全局目录和PT页表项ARM32中的一级页表项和二级页表项大小均为4个字节
3、一级页表项 如果只需要支持超级大段和段映射那么只需要一级页表即可。如果要支持4KB页面或64KB大页映射那么需要用到二级页表。不同大小的映射一级或二级页表中的页表项的内容也不一样 00缺页虚拟存储空间没有被映射到物理存储空间因而访问该存储空间将产生缺页异常。01包含了粗粒度的二级页表的物理地址它可以实现以大页和小页为单位的地址映射10段描述符Section Descriptor段描述符定义了对应的 1MB 的虚拟存储空间的地址映射关系11包含了细粒度的二级页表的物理地址 关于段映射更多请看其实段映射跟页表映射的流程是差不多的博客里面的段内偏移地址可以类比于页表中的VPOVirtual Page Offset下面展示别的博客里的图。
4、二级页表项 二、ARM64页表
1、ARMv8-A架构 为什么不是64根地址线 因为48根地址线就已经足够了2^48256T再增加地址线只会增加系统的复杂度
2、4KB大小页4级映射 三、Linux内核中关于页表的函数和宏
1、查询页表 2、判断页表项的状态 3、修改页表 四、研究实例 special mapping特殊映射 Linux内核不希望页面参与页面管理的活动中 pgd指向第一级页表页全局目录的基址。
- ARM32不是只有两级页表吗为什么要需要遍历这么多 ARM32的二级页表没有用到PTE_SPECIAL标志位而ARM64的三级页表中用到了。
五、ARM32页表和Linux页表解惑
1、ARM32页表和Linux页表 实现了两套平行页表 HWHardWare页表 属于ARM32架构的页表SWSoftWare页表属于Linux内核的页表 2、ARM32的PTE页表项和Linux页表不一样 缺页中断和页面回收的时候会讲
六、其他实例问题