在linux中哪些寄存器不受用户空间的影响?

时间:2012-04-17 05:59:43

标签: linux assembly linux-kernel kernel

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

1 个答案:

答案 0 :(得分:15)

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

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

  • 控制寄存器(CR0 - CR4
  • GDTRLDTRIDTR(全球/本地/中断描述符表注册)
  • TR(任务登记册)
  • 调试寄存器(DR0 - DR7
  • 所有特定型号的寄存器(MSR s)

您应该阅读Intel's System Programming Manual的第5章,了解有关x86保护的详细说明。