Nul*_*lik 0 assembly operating-system x86-64 memory-segmentation
我正在为 64 位处理器编写自己的操作系统,但遇到了一般保护问题。我的操作系统不会依赖页面错误来实现用户空间保护机制,所以我发现有一种方法可以通过段限制检查来实现:
这个来自 VMWare 的演示
http://download3.vmware.com/vmworld/2005/pac346.pdf
在第 20 页上说:
最初的 AMD64 架构不包括 64 位模式下的分段
- EMT64T 中也缺少分段
我们如何保护 VMM?
- 64 位来宾支持需要额外的硬件协助
- 在较新的 AMD 处理器上的 64 位模式下可用的段限制检查
现在,我有了更新的 AMD 处理器型号,我的问题是如何在 64 位(长)模式下对 AMD 处理器进行限制段限制检查?我已经下载了 2011 年 9 月版本(最新)的开发人员手册,但我无法在任何地方找到如何执行此操作,请帮助。
我认为他们可能在讨论第 2 卷 3.1.7 页LMSLE
的“扩展功能启用寄存器”(EFER)中的长模式段限制启用位(第13 位)。55 . 在第 114 页的“4.12.2 64 位模式下的数据限制检查”中有更详细的描述。请注意,这EFER
是一个特定于模型的寄存器(更多信息请参见第 156 页的“6.2.5 访问特定于模型的寄存器”)也在第 2 卷中)。