为什么amd64 linux中的系统调用号码不同?

时间:2012-04-23 13:32:01

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

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

1 个答案:

答案 0 :(得分:14)

syscall接口应该非常稳定,只允许添加。对于每个架构的系统调用接口都不同的优势,Linux人员很可能决定清理一些累积的错误并从头开始启动amd64系统调用。

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

  

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

     

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