題:
ARM64系統調用表
merrychap
2017-12-06 01:46:46 UTC
view on stackexchange narkive permalink

我想知道是否有用於Linux ARM64體系結構的系統調用表嗎?我找到了 Linux ARM32和許多其他體系結構的系統調用表,但問題仍然存在。

有人知道嗎?在哪裡可以找到完全適合ARM64的系統調用表?

二 答案:
Ciro Santilli 郝海东冠状病六四事件法轮功
2018-07-18 13:42:33 UTC
view on stackexchange narkive permalink

arm64系統調用號在以下位置定義: https://github.com/torvalds/linux/blob/v4.17/include/uapi/asm-generic/unistd.h

這有點混亂,因為它與x86和x86_64和arm完全不同,後者在 arch / 下定義系統調用號,但是該文件帶有註釋:

新架構應該使用該文件並在用戶空間中實現功能較少的調用。

所以我猜測這僅僅是因為aarch64是新的並且使用了更新的arch不可知論的機制,而舊的機制永遠不會破壞用戶界面的兼容性,因此無法更新為新的機制。

以下在QEMU上運行並使用 64 表示 write 93 表示 exit

main.S

  .text.global _start_start:/ *寫* / mov x0,#1 ldr x1,= msg ldr x2,= len mov x8,#64 svc#0 / *出口* / mov x0,#0 mov x8,#93 svc#0msg:.ascii“ hello world \ n” len =。 -msg  

GitHub上游

組裝並運行:

  aarch64-linux-gnu-作為-o main.o main.Saarch64-linux-gnu-ld -o main.out main.oqemu-aarch64 main.out  

在Ubuntu 16.04 amd64中進行了測試。

strace 源代碼

這是一個輕鬆作弊以檢查syscall編號的好地方,請參閱: https:// unix .stackexchange.com / questions / 421750 / where-do-you-you-find-the-syscall-table-for-linux / 499016#499016

這也證實了我對新拱門的看法似乎有統一的電話號碼。

tonysdg
2018-05-18 19:20:49 UTC
view on stackexchange narkive permalink

更新:有關在哪裡找到ARM64 syscall定義的最新信息,請參見此答案。請注意,以下信息可能只是為了向後兼容。


請參見 arch / arm64 / include / asm / unistd32.h

  ... #define __NR_restart_syscall 0 __SYSCALL(__ NR_restart_syscall,sys_restart_syscall)#define __NR_exit 1 __SYSCALL(__ NR_exit,sys_exit)#define __NR_fork 2 __SYSCALL(de <__ nr_fork> ,sys_read)#定義__NR_write 4 __SYSCALL(__ NR_write,sys_write)#定義__NR_open 5 __SYSCALL(__ NR_open,compat_sys_open)#定義__NR_close 6 __SYSCALL(__ NR_close,sys_close)/ * 7是sys_callpid * /,_____C __SYSCALL(__ NR_creat,sys_creat)...  

您還將在 arch / arm64 / include / asm / unistd.h

我認為arm64真正有趣的文件是`include / uapi / asm-generic / unistd.h`:https://reverseengineering.stackexchange.com/a/18834/12321
AilifolunrCMT新疆改造中心六四事件法轮功: Huh -- I wonder what the files I linked are used for now? Perhaps the `glibc` version has something to do with it... anyways, based on your experimental results, the `asm-generic` file is likely correct.


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...