2

我有两个关于 32 位 Linux 系统调用的简单问题。

在 x86 Linux 中,调用系统调用有两种方式。

第一个使用 int 0x80,另一个是 sysenter。

我知道这两者之间的基本概念区别(sysenter 使用 SYSENTER_MSR_EIP、SYSENTER_MSR_ESP 寄存器、int 0x80 使用中断表、sysenter 提供更好的性能等...)

我的问题是...

  1. 从程序员的角度来看,int 0x80 和 sysenter 之间有什么功能区别吗?(即调用约定,对内存布局的副作用,或其他...)

  2. 从系统调用返回后,除了 EAX 寄存器之外,是否有任何系统调用发生变化?

先感谢您。

4

0 回答 0