系统调用程序在linux上实际发生了什么?

前端之家收集整理的这篇文章主要介绍了系统调用程序在linux上实际发生了什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
灵感来自于这个问题

How can I force GDB to disassemble?

并与此相关

What is INT 21h?

在linux下如何实际发生系统调用?执行调用时会发生什么,直到实际的内核程序被调用

解决方法

假设我们在讨论x86:

> ID of the system call存入EAX寄存器
>系统调用所需的任何参数都存入locations dictated by the system call.例如,一些系统调用期望他们的参数驻留在EBX寄存器中.其他人可能希望他们的论据坐在堆栈的顶部.
>调用INT 0x80中断.
> Linux内核为EAX寄存器中的ID标识的系统调用服务,将任何结果存入预定位置.
调用代码使用任何结果.

我可能有点生锈了,这是几年了

猜你在找的Linux相关文章