在Linux上的32位代码中,哪个更好的“ int 0x80”或“ syscall”更好?

在Linux上的32位代码中,哪个更好的“ int 0x80”或“ syscall”更好?,第1张

在Linux上的32位代码中,哪个更好的“ int 0x80”或“ syscall”更好?
  • syscall
    是在上进入内核模式的默认方法
    x86-64
    。该指令 在Intel处理器的 32位 *** 作模式下不可用。
  • sysenter
    是最常用于以32位 *** 作模式调用系统调用的指令。它类似于
    syscall
    ,但是使用起来有点困难,但这是内核的关注点。
  • int 0x80
    是调用系统调用的传统方式,应避免使用。

调用系统调用的首选方法是使用VDSO,VDSO是映射在每个进程地址空间中的一部分内存,可以更有效地使用系统调用(例如,在某些情况下完全不进入内核模式)。与传统

int0x80
方式相比,VDSO还要处理更困难的事情
syscall
sysenter
指令。

另外,请参阅此和本。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4893858.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-12
下一篇2022-11-12

发表评论

登录后才能评论

评论列表(0条)

    保存