首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GDT与寻呼

GDT与寻呼
EN

Stack Overflow用户
提问于 2014-01-15 21:37:53
回答 1查看 918关注 0票数 1

我正在尝试引导一个自定义内核。QEMU是GDT地址上的页面错误。为什么会这样呢?我认为在我使用lgdt指令加载它之后,不再需要GDT的地址了。如果还需要它,我怎样才能保持它呢?(我不能简单地将PTE指向GDT地址,因为我只有其中的2048个,它们都是指向内核代码所必需的。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-16 00:35:05

看起来你对x86中的MMU误解了。

要确定数据的物理地址,处理器采用逻辑地址(在访问内存时使用的地址)和段选择器,将其通过分段单元生成线性地址,然后将其映射到启用分页单元的物理地址。

现在来看一下lgdt 指令描述

它们是直接加载线性地址(即不是段相对地址)和受保护模式的限制的唯一指令。

当分页未启用时,线性地址将直接映射到物理地址,因此您可以说您位于物理空间中。但是,当您启用分页时,Dorothy离开堪萨斯:任何地址(除了页面目录的物理地址CR3寄存器)现在都位于线性空间中,并且正在进行分页转换。

至于您的问题:看起来您只使用了两个页面目录条目。为什么?再试一次鲍勃是你叔叔。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21148755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档