Pourquoi les numéros d’appel système sont-ils différents dans amd64 linux?

J’ai remarqué que les appels système x86 int $0x80 et amd64 syscall ont des numéros différents. Par exemple, sys_exit est syscall 1 dans x86 et syscall 60 dans amd64. Existe-t-il une raison (historique) pour les différents systèmes de numérotation des appels système?

L’interface syscall est supposée être très stable et seuls les ajouts sont autorisés. Parlant du fait que l’interface syscall est différente pour chaque architecture, les gars de Linux ont très probablement décidé de nettoyer certaines données accumulées et de lancer les appels système amd64 à partir de rien.

Référence: linux/Documentation/ABI/stable/syscalls

Cette interface correspond à une grande partie de l’interface POSIX et est basée sur celle-ci et sur d’autres interfaces basées sur Unix. Il ne s’appenda qu’au fil du temps, et ne fera pas disparaître les choses.

Notez que cette interface est différente pour chaque architecture prise en charge par Linux. Reportez-vous à la documentation spécifique à l’architecture pour plus de détails sur les numéros d’appel système à mapper sur chaque appel système.