加入收藏 | 设为首页 | 会员中心 | 我要投稿 4S站长网 (https://www.4s3.cn/)- 科技、混合云存储、数据迁移、云上网络、数据计算!
当前位置: 首页 > 综合聚焦 > Linux > 正文

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

发布时间:2021-01-24 09:02:41 所属栏目: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标识的系统调用服务,将任何结果存入预定位置.
调用代码使用任何结果.

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

(编辑:4S站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读