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

fuz*_*fuz 13 linux x86-64 naming-conventions system-calls

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

use*_*136 14

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

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

此接口与POSIX接口的大部分匹配,并基于它和其他基于Unix的接口.它只会随着时间的推移而添加,并且不会从中删除.

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

  • 相关的LKML帖子:http://lkml.iu.edu/hypermail/linux/kernel/0104.0/0547.html (4认同)