Ho notato che le chiamate di sistema x86 int $0x80
e amd64 syscall
hanno numeri diversi. Ad esempio, sys_exit
è syscall 1 in x86 e syscall 60 in amd64. C'è una ragione (storica) per i diversi sistemi di numerazione delle chiamate di sistema?Perché i numeri di chiamata di sistema sono diversi in amd64 linux?
12
A
risposta
12
L'interfaccia di syscall dovrebbe essere molto stabile e sono consentite solo aggiunte. Traendo vantaggio dal fatto che l'interfaccia di syscall è diversa per ogni architettura, i ragazzi di Linux hanno probabilmente deciso di ripulire alcuni cruft accumulati e avviare le amd64 syscalls da zero.
Riferimento: linux/Documentation/ABI/stable/syscalls
Questa interfaccia corrisponde gran parte l'interfaccia POSIX e si basa su di esso e altre interfacce basate su Unix. Verrà aggiunto solo nel tempo, e non verrà rimosso da esso.
Si noti che questa interfaccia è diversa per ogni architettura supportata da Linux. Consultare la documentazione specifica per l'architettura per i dettagli sui numeri di syscall che devono essere mappati su ogni syscall .
Problemi correlati
- 1. numeri magici del sistema Linux riavvio() chiamata
- 2. x86_64 Confusione chiamata sistema di assi Linux
- 3. Chiamata di sistema di riavvio di Linux(): perché chiama do_exit (0) dopo kernel_halt()?
- 4. chiamata di sistema in Ruby
- 5. Linux permessi problema durante l'esecuzione wkhtmltopdf-amd64
- 6. Assembly x86: prima di effettuare una chiamata di sistema su Linux, dovresti salvare tutti i registri?
- 7. come vengono generati i numeri di inode in linux tmpfs?
- 8. Perché i caratteri in java 1.7 sono diversi da 1.6?
- 9. perché ci sono più fcntl.h in linux?
- 10. Sono chiamate di funzione come read(), write() chiamate di sistema effettive in linux?
- 11. Riguardo ai numeri di errore in Linux
- 12. Perché i nomi delle funzioni delle librerie standard sono diversi tra Windows e Linux?
- 13. Generazione di numeri casuali diversi tra OS
- 14. open() richiesta file di chiamata di sistema
- 15. Chiamata di sistema senza commutazione di contesto?
- 16. Come posso richiamare la chiamata di sistema di Linux/UNIX in golang
- 17. Quali sono i diversi tipi di casi?
- 18. Ricezione di più datagrammi in una singola chiamata di sistema
- 19. Controllare se tutti i numeri in una lista sono diversi in prolog
- 20. Quali sono le chiamate di sistema/sistema operativo nativo di Windows e Linux eseguite da malloc()?
- 21. AMD64 - istruzioni di montaggio nopw?
- 22. Come untaint chiamata di sistema in CGI.pm
- 23. Query Selezionare Sistema chiamata
- 24. Chiamata rscript da script di shell linux
- 25. aperta chiamata di sistema() polimorfismo
- 26. Ignorare una chiamata di sistema
- 27. Perché Java non vede che i numeri interi sono uguali?
- 28. Perché i thread del sistema operativo sono considerati costosi?
- 29. numero di regex I numeri di C# sono underscore ora
- 30. Chiamate di sistema Linux e modalità kernel
Post LKML pertinente: http://lkml.iu.edu/hypermail/linux/kernel/0104.0/0547.html –