Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
据我了解,对操作系统内核的系统调用通常是使用软件中断来实现的。在 x86 上,是否有理由选择它而不是使用调用门?呼叫门似乎是做到这一点的“内置”方式:将控制权转移到更高的特权级别。那么调用门不用于 x86 内核是否有特定原因(或原因)?
现代 X86 操作系统正在从 CALL FAR 呼叫门过渡。随着 SYSENTER/SYSEXIT 和 SYSCALL/SYSRET 的引入,为 x86 程序的控制传输引入了一种新的更快的机制。而且由于大多数其他架构不支持调用门,因此即使在这些新指令之前,它们的使用也很少,因为软件中断/陷阱是可移植性的首选。
请参阅OSDev Wiki 上的系统调用。另一个原因是虚拟化,请参阅此出版物。