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