x86的Linux系统调用
我试图理解在Linux机器上调用系统调用的方式。为此,我在QEMU模拟器上运行了一台带有 为了知道系统调用号,我在qemu中插入了中断函数(x86的Linux系统调用,linux,assembly,linux-kernel,system-calls,qemu,Linux,Assembly,Linux Kernel,System Calls,Qemu,我试图理解在Linux机器上调用系统调用的方式。为此,我在QEMU模拟器上运行了一台带有 为了知道系统调用号,我在qemu中插入了中断函数(do_interrupt_all()target-i386/seg_helper.c——不太重要)。基本上,每当我得到int 0x80中断时,我都会在EAX寄存器中打印该值。运行的输出给出了系统调用号。我希望先为init进程调用exec系统。然后是一个fork和一些brk系统调用。然而,我不确定这是否是我得到的。我正在这里打印前100个系统呼叫号码。我的客人
do_interrupt_all()
target-i386/seg_helper.c——不太重要)。基本上,每当我得到int 0x80中断时,我都会在EAX寄存器中打印该值。运行的输出给出了系统调用号。我希望先为init进程调用exec系统。然后是一个fork和一些brk系统调用。然而,我不确定这是否是我得到的。我正在这里打印前100个系统呼叫号码。我的客人是一台64位机器。是我的内核的在线代码探索
: 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
是的,这就是你得到的(,):
- 11:
,或sys\u exevce
的系统调用exec
- 45:
,malloc下的东西sys\u brk
- 33:
sys\u访问
- 192:
lgetxattr
- 11:
,或sys\u exevce
的系统调用exec
- 45:
,malloc下的东西sys\u brk
- 33:
sys\u访问
- 192:
lgetxattr
等等 还有一件事。。。启动时sys_访问和lgetxattr系统调用有什么用?哦,是的。。。我后来意识到。。。我愚蠢的错误是把系统调用页上的行号误读为系统调用号。系统呼叫号码写在右侧。:)@普拉斯迈什。卡尔:哈。希望你一切顺利还有一件事。。。启动时sys_访问和lgetxattr系统调用有什么用?哦,是的。。。我后来意识到。。。我愚蠢的错误是把系统调用页上的行号误读为系统调用号。系统呼叫号码写在右侧。:)@普拉斯迈什。卡尔:哈。希望你一切顺利。