微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CPU 如何知道它正在执行 Kernel/Ring-0 指令?

如何解决CPU 如何知道它正在执行 Kernel/Ring-0 指令?

假设您将 C 程序编译为可执行文件并运行它。 (假设代码在 x86 架构上运行)

cpu在执行机器码时,不可避免地需要执行ring-3(用户态)之外的指令。执行某些指令时,需要向下跳到ring-0。

但是 cpu 怎么知道它需要改变模式呢?我的第一个猜测是,当 cpu 从 RAM 中获取一条指令时,它会对其进行解码并设置一个寄存器值。根据该指令执行期间的寄存器值,cpu 将改变模式。

但如果是这样的话,难道有人不能编写恶意代码来故意告诉 cpu 切换模式,以便它始终以内核模式执行所需的指令吗?

谢谢!

此外,如果有关于 cpu 模式的介绍/学习的好资源/教科书,我很乐意查看。到目前为止,我找不到任何好的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。