Sure, here is a list of common syscalls available for use in assembly code with
the GNU Assembler (GAS) on Linux systems. These syscalls are typically accessed
via the syscall instruction in x86_64 architecture. Note that syscall numbers
can vary by architecture and kernel version.
Common Syscalls and Their Numbers (x86_64)
-
exit: Terminate a process- Syscall Number: 60
-
fork: Create a new process- Syscall Number: 57
-
read: Read from a file descriptor- Syscall Number: 0
-
write: Write to a file descriptor- Syscall Number: 1
-
open: Open a file- Syscall Number: 2
-
close: Close a file descriptor- Syscall Number: 3
-
stat: Get file status- Syscall Number: 4
-
fstat: Get file status (using file descriptor)- Syscall Number: 5
-
lstat: Get file status (likestat, but follows symlinks)- Syscall Number: 6
-
mmap: Map files or devices into memory- Syscall Number: 9
-
mprotect: Set protection on a region of memory- Syscall Number: 10
-
munmap: Unmap files or devices from memory- Syscall Number: 11
-
brk: Change data segment size- Syscall Number: 12
-
socket: Create a socket- Syscall Number: 41
-
connect: Connect a socket to an address- Syscall Number: 42
-
accept: Accept a connection on a socket- Syscall Number: 43
-
sendto: Send a message on a socket- Syscall Number: 44
-
recvfrom: Receive a message from a socket- Syscall Number: 45
-
sendmsg: Send a message on a socket- Syscall Number: 46
-
recvmsg: Receive a message from a socket- Syscall Number: 47
-
shutdown: Shut down part of a full-duplex connection- Syscall Number: 48
-
bind: Bind a name to a socket- Syscall Number: 49
-
listen: Listen for connections on a socket- Syscall Number: 50
-
getsockname: Get socket name- Syscall Number: 51
-
getpeername: Get peer name- Syscall Number: 52
-
socketpair: Create a pair of connected sockets- Syscall Number: 53
-
fork: Create a child process- Syscall Number: 57
-
execve: Execute a program- Syscall Number: 59
-
wait4: Wait for a process to change state- Syscall Number: 61
-
sigreturn: Return from a signal handler- Syscall Number: 63
-
setrlimit: Set resource limits- Syscall Number: 75
-
getrlimit: Get resource limits- Syscall Number: 76
-
poll: Poll file descriptors- Syscall Number: 7
-
eventfd2: Create an eventfd object- Syscall Number: 284
This list covers a range of common syscalls, but there are many more available
depending on the specific needs and kernel version. For a complete and
up-to-date list of syscalls and their numbers, refer to the official Linux man
pages (man 2 syscall) or the Linux kernel source.
documentation provided by: chatgpt, 2024