gpt4 book ai didi

x86 的 Linux 系统调用调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:40:05 25 4
gpt4 key购买 nike

我试图了解在 Linux 机器上调用系统调用的方式。为此,我运行了一台带有 Linux 3.0.43 kernel 的客户机。在 QEMU 模拟器上。

为了知道系统调用号,我在 qemu 中检测了中断函数(target-i386/seg_helper.c 中的 do_interrupt_all() --- 不是很重要的)。基本上每当我得到一个 int 0x80 中断时,我都会打印 EAX 寄存器中的值。运行的输出给出了系统调用号。我希望 exec 系统首先调用 init 进程。然后是 fork 和一些 `brk 系统调用。但是,我不确定那是否是我得到的。我在这里打印前 100 个系统调用号。我的客人是一台 64 位机器。 Here是我的内核的在线代码探索。

 : 11
: 45
: 33
: 192
: 33
: 5
: 197
: 192
: 6
: 33
: 5
: 3
: 197
: 192
: 192
: 192
: 6
: 192
: 243
: 125
: 125
: 125
: 91
: 122
: 45
: 45
: 197
: 5
: 5
: 5
: 5
: 221
: 141
: 141
: 6
: 5
: 5
: 5
: 5
: 5
: 197
: 192
: 3
: 3
: 6
: 91
: 5
: 197
: 192
: 3
: 3
: 6
: 91
: 5
: 197
: 192
: 3
: 3
: 6
: 91
: 5
: 197
: 192
: 3
: 3
: 6
: 91
: 5
: 197
: 192
: 3
: 3
: 6
: 91
: 5
: 197
: 192
: 3
: 3
: 6
: 91
: 5
: 5
: 197
: 192
: 3
: 3
: 6
: 91
: 5
: 197
: 192
: 3
: 3
: 6
: 91
: 5
: 197

最佳答案

是的,这就是你得到的(Linux System Call Numbers64-bit Linux System Call Numbers):

  • 11 : sys_exevce,或者exec的系统调用
  • 45 : sys_brk, malloc 下的东西
  • 33 : sys_access
  • 192 : lgetxattr

等等。

关于x86 的 Linux 系统调用调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14360465/

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