我有两个关于 32 位 Linux 系统调用的简单问题。
在 x86 Linux 中,调用系统调用有两种方式。
第一个使用 int 0x80,另一个是 sysenter。
我知道这两者之间的基本概念区别(sysenter 使用 SYSENTER_MSR_EIP、SYSENTER_MSR_ESP 寄存器、int 0x80 使用中断表、sysenter 提供更好的性能等...)
我的问题是...
从程序员的角度来看,int 0x80 和 sysenter 之间有什么功能区别吗?(即调用约定,对内存布局的副作用,或其他...)
从系统调用返回后,除了 EAX 寄存器之外,是否有任何系统调用发生变化?
先感谢您。