Linux系统调用的执行过程是怎么样的?当执行系统调用函数时,系统调用函数会执行int 0x80中断命令,同时把系统调用号放入eax寄存器中,并把要传递给系统的参数放入ebx,ecx,edx中。中断处理程序会执行system_call()函数。 system_call()函数首先保存原段寄存器,在把调用参数压入栈中。然后把ds、es指向内核数据段,cs段会在中断产生时由中断门的段选择符赋值为内核代码段,并把原段选择符保存到栈中。然后调用对应的功能函数。当从功能函数返回时,内核会查看当前任务运行状态,如果不在就绪态就去执行调度程序。如果在就绪态,但其时间片用完,则也去执行调度程序。当任务继续执行时则继续对信号进行处理,然后退回到系统调用函数。()
上一篇:Linux循序渐进 进程管理及作业控制 下一篇:Linux系统下解析Elf文件DT_RPATH后门 更多相关文章
|
推荐文章
精彩文章
|