转载:https://blog.csdn.net/weixin_42052102/article/details/83043117
物理页的属性= PDE属性& PTE属性 (后12位)
4d404063
属性含义
P:有效位。0 表示当前表项无效。
R/W: 0 表示只读。1表示可读可写。
U/S::0 表示3特权级程序可访问,此时是用户模式,1表示只能0、1、2特权级可访问。 此时是系统模式 (特权级,可查看CPL.)
PWT、PCD、请看后面的填坑篇
A::0 表示该页未被访问,1表示已被访问。
D::脏位。0表示该页未写过,1表示该页被写过。
PS::只存在于页目录。0表示这是4KB页,指向一个页表。1表示这是4MB大页,直接指向物理页。
PAT:这个不管
G:如果G位为1刷新TLB时将不会刷新PDE/PTE的G位为1的页,G=1切换进程该PTE扔然有效(这里学完TLB才能明白)
有效:由软件控制的位,此位仅使用于多处理器系统,指明了可读写或只读
线性地址0为什么不能访问呢?
没有指定物理页,指定物理页就一定能访问吗?
先看PDE与PTE的P位都为1才是有效的物理页
-----------------------------------------------------------------------------
这段代码试图修改常量区的值,直接运行肯定会异常
但我们修改pde与pte的RW位为1后就可以将他成功修改
(红色那我打错了不用管)
----------------------------------------------------------------------------
修改U/S位读高两G内存
pde与pte的u/s位都改成0,执行