gpt4 book ai didi

linux - 系统调用实际上是如何在 Linux 上发生的?

转载 作者:IT王子 更新时间:2023-10-29 00:09:43 24 4
gpt4 key购买 nike

受到这个问题的启发

How can I force GDB to disassemble?

与此相关

What is INT 21h?

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

最佳答案

假设我们谈论的是 x86:

  1. ID of the system call存入EAX寄存器
  2. 系统调用所需的任何参数都存放在locations dictated by the system call中。 .例如,一些系统调用希望它们的参数驻留在 EBX 寄存器中。其他人可能希望他们的论点位于堆栈的顶部。
  3. INT 0x80 中断被调用。
  4. Linux 内核为由 EAX 寄存器中的 ID 标识的系统调用提供服务,并将所有结果存放在预先确定的位置。
  5. 调用代码使用任何结果。

我可能对此有点生疏,已经有几年了......

关于linux - 系统调用实际上是如何在 Linux 上发生的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1245817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com