根据this source (Level 3 - 5) 特定的 CPU ring 不能做某些事情,比如 ring 1,2,3 的代码不能设置 GDT,因为 os kernel 会崩溃。
虽然很明显 Ring 0 可以执行所有指令,我想知道在环1、2和3中哪些指令不能发出?
我在维基百科或 osdev 和类似来源上都找不到任何说明不能在特定环中发出哪些指令的信息。
最佳答案
Ring 3 中不能执行以下指令:
LGDT
LLDT
LTR
LIDT
MOV (to and from control registers only)
MOV (to and from debug registers only)
LMSW
CLTS
INVD
WBINVD
INVLPG
HLT
RDMSR
WRMSR
RDPMC
RDTSC
关于x86 - 在特定的CPU环中不能发出哪些指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39077266/