我正在用 C 语言开发一个操作系统,但我在分页上苦苦挣扎。我通过分配内存并输出处理物理和虚拟页面分配的低级内存分配输出来循环测试我的内核堆。
当 时PDE 0
,一切都适用于页面0-1023
,但一旦分配移动到PDE 1
,就会引发页面错误并设置当前标志,rw
如果我从不同的物理地址开始分配,有时也会引发标志。
我是否需要从中获取错误地址cr2
并将其映射回PDE
它所属的页面,然后设置或使用 3 的地址?之后我需要重新启动指令,但我该怎么做?有什么建议么?
我正在用 C 语言开发一个操作系统,但我在分页上苦苦挣扎。我通过分配内存并输出处理物理和虚拟页面分配的低级内存分配输出来循环测试我的内核堆。
当 时PDE 0
,一切都适用于页面0-1023
,但一旦分配移动到PDE 1
,就会引发页面错误并设置当前标志,rw
如果我从不同的物理地址开始分配,有时也会引发标志。
我是否需要从中获取错误地址cr2
并将其映射回PDE
它所属的页面,然后设置或使用 3 的地址?之后我需要重新启动指令,但我该怎么做?有什么建议么?