X86 哪些指令只能在内核模式下运行?

X86 哪些指令只能在内核模式下运行?,x86,kernel,mode,X86,Kernel,Mode,哪些指令(针对x86芯片)只能在内核模式下运行?我试图理解用户模式和内核模式之间的实际区别。到目前为止,我知道只有在内核模式下才能访问部分地址空间。此内存空间包含驱动程序等,应保护其不受用户程序的影响。内核模式在CPU中是如何实现的?CPU中是否有某个位会变成1或类似的情况 编辑:在 下文提供了答案 我在这里添加了部分答案,这些答案是从答案中提到的链接复制而来的 特权级别指令 指令说明 LGDT将GDT的地址加载到GDTR中 LLDT将LDT的地址加载到LDTR中 LTR将任务寄存器加载到TR中

哪些指令(针对x86芯片)只能在内核模式下运行?我试图理解用户模式和内核模式之间的实际区别。到目前为止,我知道只有在内核模式下才能访问部分地址空间。此内存空间包含驱动程序等,应保护其不受用户程序的影响。内核模式在CPU中是如何实现的?CPU中是否有某个位会变成1或类似的情况

编辑:在 下文提供了答案

我在这里添加了部分答案,这些答案是从答案中提到的链接复制而来的

特权级别指令

指令说明

LGDT将GDT的地址加载到GDTR中

LLDT将LDT的地址加载到LDTR中

LTR将任务寄存器加载到TR中

MOV控制寄存器复制数据并存储在控制寄存器中

LMSW加载一个新的机器状态字

CLTS清除控制寄存器CR0中的任务开关标志

MOV调试寄存器复制数据并存储在调试寄存器中

INVD在不写回的情况下使缓存无效

INVPG使TLB条目无效

WBINVD使用写回使缓存无效

HLT暂停处理器

RDMSR读取模型特定寄存器(MSR)

WRMSR写模型特定寄存器(MSR)

RDPMC读取性能监视计数器


RDTSC Read time Stamp Counter(读取时间戳计数器)

这个问题更多地针对那些处理非常低级硬件细节的人(比如内核程序员),而不是那些处理高级问题的人(通常被称为软件开发人员)。我会回答,因为我认为这仍然是计算机科学

您将不希望运行用户应用程序,它会突然擦除屏幕上的所有内容,擦除硬盘中的所有数据,拒绝访问任何硬件,完全控制CPU资源,等等,并且以非常不愉快的方式。内核是控制用户访问系统实用程序的主控程序。另外,如果一个用户应用程序失败,那么它将“孤独”地死去!因此,病毒常常以内核为目标,从而造成有意义的损害

这种保护不能通过软件有效地实现。这需要操作系统检查用户应用程序的每条指令,确保没有恶意指令!例如,试图直接写入内核内存空间。例如,试图访问地址0处的内存将产生一个称为“一般保护故障”的中断。转到并搜索文本“特权级别说明”

内核模式是通过配置系统寄存器来实现的,比如GDTR(全局描述符表寄存器)。转到并搜索标题“全局描述符表”。根据该寄存器的配置,当违反权限级别时,将生成一般保护故障中断


链接:

这是一个计算机体系结构问题,而不是一个特定的编程问题。我同意,试着脱离主题。但现在已经得到了回答。