学习目标
置顶一篇目标,勉励一下自己!
2024年终总结
2024年终总结
强网杯S8决赛Reverse writeup
复盘一下强网决赛的Reverse题
强网杯S8决赛pwn writeup
同样的,决赛也出了两道pwn题,感觉挺有意思的,来补补wp。
windows驱动开发(1)——Windows驱动字符串
来简单实战几个字符串API
windows驱动开发(0)——Windows驱动开发的基础知识
今天来学习一下Windows驱动开发基础
windows内核(6)——中断与异常和控制寄存器
今天来学习一下X86中断与异常和控制寄存器
windows内核(5)——TLB
今天来学习一下TLB的一些细节
windows内核(4)——挂物理页
挂物理页的细节
windows内核(3)——PAE分页(2-9-9-12分页)
来学一下2-9-9-12分页,也叫PAE分页
为什么要有2-9-9-12分页这一定一定是最会疑惑的一个问题,为什么要多拆一个 2 出来呢?回答:扩展物理内存。
我们都知道,32位的系统最大只能装 4GB 的内存,多了它用不上,然而这个说法比较片面,实则它可以装更多的内存,在 10-10-12 分页的模式中,我们知道,物理地址就是 32 位的,而物理地址位宽决定了物理内存最大的限度。
那么 2-9-9-12 分页事实上就做到了这一点,它将物理地址扩展到了 64 位的模式,并赋予一些位特殊的意义。既然物理地址变成了 64 位,PDE 和 PTE 自然也变成了 64 位,那么原来一个页就装不下 1024 个 PDE 或者 PTE 了,而只能装 512 个,这就是中间两个 9 的来源。而我们只扩展了物理地址,没有扩展虚拟地址,因此虚拟内存(单个进程持有的线性地址)最大还是只有 4GB。 所以前面再多个 2 去满足 32 位。
2-9-9-12分页简介看完上一节之后大概能对 2-9-9-12 分页有个结构了,如下图所示:
多了一层名为页目录指针表(PDPTE)的东西,同样也是 64 位的 ...