gpt4 book ai didi

c - _dl_sysinfo_int80 的用途是什么?

转载 作者:行者123 更新时间:2023-12-04 11:36:31 24 4
gpt4 key购买 nike

我的意思是,为什么不直接发出 int 指令?

Dump of assembler code for function execve:
[omitted]
0x0806c282 <+18>: call *0x80e99f0
[omitted]
End of assembler dump.
(gdb) disas *0x80e99f0
Dump of assembler code for function _dl_sysinfo_int80:
0x0806ed70 <+0>: int $0x80
0x0806ed72 <+2>: ret
End of assembler dump.

从我经验不足的角度来看,_dl_sysinfo_int80 除了开销之外什么也没增加。

最佳答案

有多种方法可以执行系统调用。最旧和最慢的是 int 0x80。优点是它适用于所有系统。后来intel推出了sysenter,amd推出了syscall指令。不幸的是,这些不兼容,只能在某些芯片上工作。为了使用最好的实现,增加了一个间接级别。内核本身通常提供映射到每个进程(vDSO 的一部分)的入口代码。据我所知,当内核提供的代码由于某种原因不可用时,_dl_sysinfo_int80 仅用作后备。

关于c - _dl_sysinfo_int80 的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30251944/

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