【问题标题】:Why are the system call numbers different in amd64 linux?为什么amd64 linux中的系统调用号不同?
【发布时间】:2012-05-04 03:00:00
【问题描述】:

我注意到 x86 int $0x80 和 amd64 syscall 系统调用有不同的编号。例如,sys_exit 在 x86 中是系统调用 1,在 amd64 中是系统调用 60。不同的系统调用编号方案是否有(历史)原因?

【问题讨论】:

    标签: linux naming-conventions x86-64 system-calls


    【解决方案1】:

    系统调用接口应该非常稳定,只允许添加。谈到每个架构的系统调用接口不同这一事实,Linux 人员很可能决定清理一些积累的垃圾并从头开始启动 amd64 系统调用。

    参考:linux/Documentation/ABI/stable/syscalls

    此接口与 POSIX 接口的大部分内容相匹配,并基于它 和其他基于 Unix 的接口。它只会随着时间的推移而添加, 并且没有从中删除任何东西。

    请注意,该接口对于每个架构都不同 Linux 支持。请参阅特定于架构的文档 有关要映射到每个系统调用号的详细信息 系统调用。

    【讨论】:

      猜你喜欢
      • 2017-06-03
      • 1970-01-01
      • 2021-04-28
      • 2020-12-05
      • 2014-01-23
      • 2019-02-22
      • 2014-09-28
      • 1970-01-01
      • 2014-06-08
      相关资源
      最近更新 更多