今天开始编译原理专题训练实验, 并复习明天晚上的考试。
你好,我正在学习清华大学的操作系统。我有一个问题想问你,关于你在ucore_lab上的更新,我对于你对于entry.s的修改有所疑问。是否是你改变了页目录表存储的位置,初始化和存放都在entry.s中完成的,那么你修改之后的页目录表不是那个vpt的4MB空间内了吧,而是在data.pgdir所指向的位置,那么那是在哪里? 是否可以说明一下你的提交关于pgdir部分汇编代码的说明。 如果可以,非常感谢。
您好: 首先,内核的页目录(表)的物理位置确实从【boot_alloc_page出来的空间】移动到了【entry.S中硬编码设定的section .data.pgdir】中。section .data.pgdir的位置请见ld脚本(tools/kernel.ld)。内核的页目录(表)的初始化以及开启分页模式的操作也改为由entry.S实现。VPT是虚拟地址,与页目录(表)的物理位置无关。提交中关于pgdir部分汇编代码(50~69),就是填写了页目录(表)和首个页表的内容。 若有更多问题,我已申请添加您的QQ,可以进一步讨论。
注意 - 你可以用以下 HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
昵称
邮箱
网址
Δ
本文链接:https://twd2.me/archives/11213
你好,我正在学习清华大学的操作系统。我有一个问题想问你,关于你在ucore_lab上的更新,我对于你对于entry.s的修改有所疑问。是否是你改变了页目录表存储的位置,初始化和存放都在entry.s中完成的,那么你修改之后的页目录表不是那个vpt的4MB空间内了吧,而是在data.pgdir所指向的位置,那么那是在哪里?
是否可以说明一下你的提交关于pgdir部分汇编代码的说明。
如果可以,非常感谢。
您好:
首先,内核的页目录(表)的物理位置确实从【boot_alloc_page出来的空间】移动到了【entry.S中硬编码设定的section .data.pgdir】中。section .data.pgdir的位置请见ld脚本(tools/kernel.ld)。内核的页目录(表)的初始化以及开启分页模式的操作也改为由entry.S实现。VPT是虚拟地址,与页目录(表)的物理位置无关。提交中关于pgdir部分汇编代码(50~69),就是填写了页目录(表)和首个页表的内容。
若有更多问题,我已申请添加您的QQ,可以进一步讨论。