系统调用其实是一种中断,中断号为80
系统调用是从用户空间切换到系统空间,涉及到用户堆栈和内核堆栈的切换。
进入中断之前,会将调用参数放入ebx,ecx,edx,esi,edi,ebp寄存器,系统调用号放入eax,然后调用int 80进入中断,进入中断后会将ss,esp,eflags,cs,eip还有上面的参数寄存器压入内核堆栈,然后根据eax的值知道对应的系统函数
最后通过iret返回到用户空间
系统调用其实是一种中断,中断号为80
系统调用是从用户空间切换到系统空间,涉及到用户堆栈和内核堆栈的切换。
进入中断之前,会将调用参数放入ebx,ecx,edx,esi,edi,ebp寄存器,系统调用号放入eax,然后调用int 80进入中断,进入中断后会将ss,esp,eflags,cs,eip还有上面的参数寄存器压入内核堆栈,然后根据eax的值知道对应的系统函数
最后通过iret返回到用户空间