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

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

灵感来自于这个问题 How can I force GDB to disassemble? 并与此相关 What is INT 21h? 在linux下如何实际发生系统调用?执行调用时会发生什么,直到实际的内核程序被调用? 假设我们在讨论x86: ID of the system call存入EAX寄存器 系统调用所需的任何参数

灵感来自于这个问题

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标识的系统调用服务,将任何结果存入预定位置.
调用代码使用任何结果.

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

本文来自网络,不代表青岛站长网立场。转载请注明出处: https://www.0532zz.com/html/zhonghe/fwq/linux/20210124/16871.html
上一篇
下一篇

作者: dawei

【声明】:青岛站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部