哪些寄存器在Linux的用户空间受到保护?

我怎样才能找出哪些寄存器受到Linux内核的保护,以防止用户程序集写入?

首先请注意,Linux内核本身并不真正保护寄存器。 它所做的只是确保用户应用程序以特权级别3(最低特权)运行。 从这一点来说,处理器是强制保护寄存器的。

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

  • 控制寄存器( CR0CR4
  • GDTRLDTRIDTR (全局/本地/中断描述符表寄存器)
  • TR (任务注册)
  • 调试寄存器( DR0DR7
  • 所有型号特定寄存器( MSR s)

您应该阅读“ 英特尔系统编程手册 ”的第5章,以获取关于x86保护的详细说明。