4

如何找出哪些寄存器受 Linux 内核保护以防止用户程序集写入它们?

4

1 回答 1

18

首先,请注意 Linux 内核本身并没有真正保护寄存器。它所做的只是确保用户应用程序以 3 级特权(最低特权)运行。从那时起,执行寄存器保护的是处理器。

以下是只能从特权级别 0(即,从内核)访问的寄存器列表:

  • 控制寄存器 ( CR0- CR4)
  • GDTR,LDTRIDTR(全局/局部/中断描述符表寄存器)
  • TR(任务寄存器)
  • 调试寄存器 ( DR0- DR7)
  • 所有型号特定的寄存器(MSRs)

您应该阅读Intel 系统编程手册的第 5 章,了解有关 x86 保护的详细说明。

于 2012-04-17T07:23:22.057 回答