1

据我了解,对操作系统内核的系统调用通常是使用软件中断来实现的。在 x86 上,是否有理由选择它而不是使用调用门?呼叫门似乎是做到这一点的“内置”方式:将控制权转移到更高的特权级别。那么调用门不用于 x86 内核是否有特定原因(或原因)?

4

1 回答 1

2

现代 X86 操作系统正在从 CALL FAR 呼叫门过渡。随着 SYSENTER/SYSEXIT 和 SYSCALL/SYSRET 的引入,为 x86 程序的控制传输引入了一种新的更快的机制。而且由于大多数其他架构不支持调用门,因此即使在这些新指令之前,它们的使用也很少,因为软件中断/陷阱是可移植性的首选。

请参阅OSDev Wiki 上的系统调用。另一个原因是虚拟化,请参阅出版物。

于 2013-06-19T14:17:10.153 回答