系统调用

系统调用其实是一种中断,中断号为80

系统调用_第1张图片
Paste_Image.png

系统调用是从用户空间切换到系统空间,涉及到用户堆栈和内核堆栈的切换。

进入中断之前,会将调用参数放入ebx,ecx,edx,esi,edi,ebp寄存器,系统调用号放入eax,然后调用int 80进入中断,进入中断后会将ss,esp,eflags,cs,eip还有上面的参数寄存器压入内核堆栈,然后根据eax的值知道对应的系统函数

系统调用_第2张图片
Paste_Image.png
系统调用_第3张图片
Paste_Image.png

最后通过iret返回到用户空间

你可能感兴趣的:(系统调用)