系統調用其實是一種中斷,中斷號為80
Paste_Image.png
系統調用是從用戶空間切換到系統空間,涉及到用戶堆棧和內核堆棧的切換。
進入中斷之前,會將調用參數放入ebx,ecx,edx,esi,edi,ebp寄存器,系統調用號放入eax,然后調用int 80進入中斷,進入中斷后會將ss,esp,eflags,cs,eip還有上面的參數寄存器壓入內核堆棧,然后根據eax的值知道對應的系統函數
Paste_Image.png
Paste_Image.png
最后通過iret返回到用戶空間