Linux/amd64

Syscall Compatibility Reference Documentation for Linux/amd64

This table is a reference of Linux syscalls for the amd64 architecture and their compatibility status in gVisor. gVisor does not support all syscalls and some syscalls may have a partial implementation.

Of 330 syscalls, 233 syscalls have a full or partial implementation. There are currently 97 unsupported syscalls.

# Name Support Notes
0 read Full Support Fully Supported.
1 write Full Support Fully Supported.
2 open Partial Support Options O_DIRECT, O_NOATIME, O_PATH, O_TMPFILE, O_SYNC are not supported.
3 close Full Support Fully Supported.
4 stat Full Support Fully Supported.
5 fstat Full Support Fully Supported.
6 lstat Full Support Fully Supported.
7 poll Full Support Fully Supported.
8 lseek Full Support Fully Supported.
9 mmap Partial Support Generally supported with exceptions. Options MAP_FIXED_NOREPLACE, MAP_SHARED_VALIDATE, MAP_SYNC MAP_GROWSDOWN, MAP_HUGETLB are not supported.
10 mprotect Full Support Fully Supported.
11 munmap Full Support Fully Supported.
12 brk Full Support Fully Supported.
13 rt_sigaction Full Support Fully Supported.
14 rt_sigprocmask Full Support Fully Supported.
15 rt_sigreturn Full Support Fully Supported.
16 ioctl Partial Support Only a few ioctls are implemented for backing devices and file systems.
17 pread64 Full Support Fully Supported.
18 pwrite64 Full Support Fully Supported.
19 readv Full Support Fully Supported.
20 writev Full Support Fully Supported.
21 access Full Support Fully Supported.
22 pipe Full Support Fully Supported.
23 select Full Support Fully Supported.
24 sched_yield Full Support Fully Supported.
25 mremap Full Support Fully Supported.
26 msync Partial Support Full data flush is not guaranteed at this time.
27 mincore Partial Support Stub implementation. The sandbox does not have access to this information. Reports all mapped pages are resident.
28 madvise Partial Support Options MADV_DONTNEED, MADV_DONTFORK are supported. Other advice is ignored.
29 shmget Partial Support Option SHM_HUGETLB is not supported.
30 shmat Partial Support Option SHM_RND is not supported.
31 shmctl Partial Support Options SHM_LOCK, SHM_UNLOCK are not supported.
32 dup Full Support Fully Supported.
33 dup2 Full Support Fully Supported.
34 pause Full Support Fully Supported.
35 nanosleep Full Support Fully Supported.
36 getitimer Full Support Fully Supported.
37 alarm Full Support Fully Supported.
38 setitimer Full Support Fully Supported.
39 getpid Full Support Fully Supported.
40 sendfile Full Support Fully Supported.
41 socket Partial Support Limited support for AF_NETLINK, NETLINK_ROUTE sockets. Limited support for SOCK_RAW.
42 connect Full Support Fully Supported.
43 accept Full Support Fully Supported.
44 sendto Full Support Fully Supported.
45 recvfrom Full Support Fully Supported.
46 sendmsg Full Support Fully Supported.
47 recvmsg Partial Support Not all flags and control messages are supported.
48 shutdown Partial Support Not all flags and control messages are supported.
49 bind Partial Support Autobind for abstract Unix sockets is not supported.
50 listen Full Support Fully Supported.
51 getsockname Full Support Fully Supported.
52 getpeername Full Support Fully Supported.
53 socketpair Full Support Fully Supported.
54 setsockopt Partial Support Not all socket options are supported.
55 getsockopt Partial Support Not all socket options are supported.
56 clone Partial Support Mount namespace (CLONE_NEWNS) not supported. Options CLONE_PARENT, CLONE_SYSVSEM not supported.
57 fork Full Support Fully Supported.
58 vfork Full Support Fully Supported.
59 execve Full Support Fully Supported.
60 exit Full Support Fully Supported.
61 wait4 Full Support Fully Supported.
62 kill Full Support Fully Supported.
63 uname Full Support Fully Supported.
64 semget Full Support Fully Supported.
65 semop Partial Support Option SEM_UNDO not supported.
66 semctl Partial Support Options IPC_INFO, SEM_INFO, IPC_STAT, SEM_STAT, SEM_STAT_ANY, GETNCNT, GETZCNT not supported.
67 shmdt Full Support Fully Supported.
68 msgget Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/135
69 msgsnd Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/135
70 msgrcv Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/135
71 msgctl Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/135
72 fcntl Partial Support Not all options are supported.
73 flock Partial Support Locks are held within the sandbox only.
74 fsync Partial Support Full data flush is not guaranteed at this time.
75 fdatasync Partial Support Full data flush is not guaranteed at this time.
76 truncate Full Support Fully Supported.
77 ftruncate Full Support Fully Supported.
78 getdents Full Support Fully Supported.
79 getcwd Full Support Fully Supported.
80 chdir Full Support Fully Supported.
81 fchdir Full Support Fully Supported.
82 rename Full Support Fully Supported.
83 mkdir Full Support Fully Supported.
84 rmdir Full Support Fully Supported.
85 creat Full Support Fully Supported.
86 link Full Support Fully Supported.
87 unlink Full Support Fully Supported.
88 symlink Full Support Fully Supported.
89 readlink Full Support Fully Supported.
90 chmod Full Support Fully Supported.
91 fchmod Partial Support Options S_ISUID and S_ISGID not supported.
92 chown Full Support Fully Supported.
93 fchown Full Support Fully Supported.
94 lchown Full Support Fully Supported.
95 umask Full Support Fully Supported.
96 gettimeofday Full Support Fully Supported.
97 getrlimit Full Support Fully Supported.
98 getrusage Partial Support Fields ru_maxrss, ru_minflt, ru_majflt, ru_inblock, ru_oublock are not supported. Fields ru_utime and ru_stime have low precision.
99 sysinfo Partial Support Fields loads, sharedram, bufferram, totalswap, freeswap, totalhigh, freehigh not supported.
100 times Full Support Fully Supported.
101 ptrace Partial Support Options PTRACE_PEEKSIGINFO, PTRACE_SECCOMP_GET_FILTER not supported.
102 getuid Full Support Fully Supported.
103 syslog Partial Support Outputs a dummy message for security reasons.
104 getgid Full Support Fully Supported.
105 setuid Full Support Fully Supported.
106 setgid Full Support Fully Supported.
107 geteuid Full Support Fully Supported.
108 getegid Full Support Fully Supported.
109 setpgid Full Support Fully Supported.
110 getppid Full Support Fully Supported.
111 getpgrp Full Support Fully Supported.
112 setsid Full Support Fully Supported.
113 setreuid Full Support Fully Supported.
114 setregid Full Support Fully Supported.
115 getgroups Full Support Fully Supported.
116 setgroups Full Support Fully Supported.
117 setresuid Full Support Fully Supported.
118 getresuid Full Support Fully Supported.
119 setresgid Full Support Fully Supported.
120 getresgid Full Support Fully Supported.
121 getpgid Full Support Fully Supported.
122 setfsuid Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/260
123 setfsgid Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/260
124 getsid Full Support Fully Supported.
125 capget Full Support Fully Supported.
126 capset Full Support Fully Supported.
127 rt_sigpending Full Support Fully Supported.
128 rt_sigtimedwait Full Support Fully Supported.
129 rt_sigqueueinfo Full Support Fully Supported.
130 rt_sigsuspend Full Support Fully Supported.
131 sigaltstack Full Support Fully Supported.
132 utime Full Support Fully Supported.
133 mknod Partial Support Device creation is not generally supported. Only regular file and FIFO creation are supported.
134 uselib Unimplemented Obsolete; Returns "function not implemented".
135 personality Unimplemented Unable to change personality.; Returns "invalid argument".
136 ustat Unimplemented Needs filesystem support.; Returns "function not implemented".
137 statfs Partial Support Depends on the backing file system implementation.
138 fstatfs Partial Support Depends on the backing file system implementation.
139 sysfs Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/165
140 getpriority Partial Support Stub implementation.
141 setpriority Partial Support Stub implementation.
142 sched_setparam Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_NICE; "function not implemented" otherwise.
143 sched_getparam Partial Support Stub implementation.
144 sched_setscheduler Partial Support Stub implementation.
145 sched_getscheduler Partial Support Stub implementation.
146 sched_get_priority_max Partial Support Stub implementation.
147 sched_get_priority_min Partial Support Stub implementation.
148 sched_rr_get_interval Unimplemented Returns "operation not permitted".
149 mlock Partial Support Stub implementation. The sandbox lacks appropriate permissions.
150 munlock Partial Support Stub implementation. The sandbox lacks appropriate permissions.
151 mlockall Partial Support Stub implementation. The sandbox lacks appropriate permissions.
152 munlockall Partial Support Stub implementation. The sandbox lacks appropriate permissions.
153 vhangup Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_TTY_CONFIG; "function not implemented" otherwise.
154 modify_ldt Unimplemented Returns "operation not permitted".
155 pivot_root Unimplemented Returns "operation not permitted".
156 sysctl Unimplemented Deprecated. Use /proc/sys instead.; Returns "operation not permitted".
157 prctl Partial Support Not all options are supported.
158 arch_prctl Partial Support Options ARCH_GET_GS, ARCH_SET_GS not supported.
159 adjtimex Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_TIME; "function not implemented" otherwise.
160 setrlimit Partial Support Not all rlimits are enforced.
161 chroot Full Support Fully Supported.
162 sync Partial Support Full data flush is not guaranteed at this time.
163 acct Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_PACCT; "function not implemented" otherwise.
164 settimeofday Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_TIME; "function not implemented" otherwise.
165 mount Partial Support Not all options or file systems are supported.
166 umount2 Partial Support Not all options or file systems are supported.
167 swapon Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_ADMIN; "function not implemented" otherwise.
168 swapoff Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_ADMIN; "function not implemented" otherwise.
169 reboot Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_BOOT; "function not implemented" otherwise.
170 sethostname Full Support Fully Supported.
171 setdomainname Full Support Fully Supported.
172 iopl Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_RAWIO; "function not implemented" otherwise.
173 ioperm Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_RAWIO; "function not implemented" otherwise.
174 create_module Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_MODULE; "function not implemented" otherwise.
175 init_module Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_MODULE; "function not implemented" otherwise.
176 delete_module Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_MODULE; "function not implemented" otherwise.
177 get_kernel_syms Unimplemented Not supported in Linux > 2.6.; Returns "function not implemented".
178 query_module Unimplemented Not supported in Linux > 2.6.; Returns "function not implemented".
179 quotactl Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_ADMIN; "function not implemented" otherwise.
180 nfsservctl Unimplemented Removed after Linux 3.1.; Returns "function not implemented".
181 getpmsg Unimplemented Not implemented in Linux.; Returns "function not implemented".
182 putpmsg Unimplemented Not implemented in Linux.; Returns "function not implemented".
183 afs_syscall Unimplemented Not implemented in Linux.; Returns "function not implemented".
184 tuxcall Unimplemented Not implemented in Linux.; Returns "function not implemented".
185 security Unimplemented Not implemented in Linux.; Returns "function not implemented".
186 gettid Full Support Fully Supported.
187 readahead Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/261
188 setxattr Unimplemented Requires filesystem support.; Returns "operation not supported".
189 lsetxattr Unimplemented Requires filesystem support.; Returns "operation not supported".
190 fsetxattr Unimplemented Requires filesystem support.; Returns "operation not supported".
191 getxattr Unimplemented Requires filesystem support.; Returns "operation not supported".
192 lgetxattr Unimplemented Requires filesystem support.; Returns "operation not supported".
193 fgetxattr Unimplemented Requires filesystem support.; Returns "operation not supported".
194 listxattr Unimplemented Requires filesystem support.; Returns "operation not supported".
195 llistxattr Unimplemented Requires filesystem support.; Returns "operation not supported".
196 flistxattr Unimplemented Requires filesystem support.; Returns "operation not supported".
197 removexattr Unimplemented Requires filesystem support.; Returns "operation not supported".
198 lremovexattr Unimplemented Requires filesystem support.; Returns "operation not supported".
199 fremovexattr Unimplemented Requires filesystem support.; Returns "operation not supported".
200 tkill Full Support Fully Supported.
201 time Full Support Fully Supported.
202 futex Partial Support Robust futexes not supported.
203 sched_setaffinity Partial Support Stub implementation.
204 sched_getaffinity Partial Support Stub implementation.
205 set_thread_area Unimplemented Expected to return ENOSYS on 64-bit; Returns "function not implemented".
206 io_setup Partial Support Generally supported with exceptions. User ring optimizations are not implemented.
See: https://gvisor.dev/issue/204
207 io_destroy Partial Support Generally supported with exceptions. User ring optimizations are not implemented.
See: https://gvisor.dev/issue/204
208 io_getevents Partial Support Generally supported with exceptions. User ring optimizations are not implemented.
See: https://gvisor.dev/issue/204
209 io_submit Partial Support Generally supported with exceptions. User ring optimizations are not implemented.
See: https://gvisor.dev/issue/204
210 io_cancel Partial Support Generally supported with exceptions. User ring optimizations are not implemented.
See: https://gvisor.dev/issue/204
211 get_thread_area Unimplemented Expected to return ENOSYS on 64-bit; Returns "function not implemented".
212 lookup_dcookie Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_ADMIN; "function not implemented" otherwise.
213 epoll_create Full Support Fully Supported.
214 epoll_ctl_old Unimplemented Deprecated.; Returns "function not implemented".
215 epoll_wait_old Unimplemented Deprecated.; Returns "function not implemented".
216 remap_file_pages Unimplemented Deprecated since Linux 3.16.; Returns "function not implemented".
217 getdents64 Full Support Fully Supported.
218 set_tid_address Full Support Fully Supported.
219 restart_syscall Full Support Fully Supported.
220 semtimedop Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/137
221 fadvise64 Partial Support Not all options are supported.
222 timer_create Full Support Fully Supported.
223 timer_settime Full Support Fully Supported.
224 timer_gettime Full Support Fully Supported.
225 timer_getoverrun Full Support Fully Supported.
226 timer_delete Full Support Fully Supported.
227 clock_settime Full Support Fully Supported.
228 clock_gettime Full Support Fully Supported.
229 clock_getres Full Support Fully Supported.
230 clock_nanosleep Full Support Fully Supported.
231 exit_group Full Support Fully Supported.
232 epoll_wait Full Support Fully Supported.
233 epoll_ctl Full Support Fully Supported.
234 tgkill Full Support Fully Supported.
235 utimes Full Support Fully Supported.
236 vserver Unimplemented Not implemented by Linux; Returns "function not implemented".
237 mbind Partial Support Stub implementation. Only a single NUMA node is advertised, and mempolicy is ignored accordingly, but mbind() will succeed and has effects reflected by get_mempolicy.
See: https://gvisor.dev/issue/262
238 set_mempolicy Partial Support Stub implementation.
239 get_mempolicy Partial Support Stub implementation.
240 mq_open Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/136
241 mq_unlink Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/136
242 mq_timedsend Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/136
243 mq_timedreceive Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/136
244 mq_notify Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/136
245 mq_getsetattr Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/136
246 kexec_load Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_BOOT; "function not implemented" otherwise.
247 waitid Full Support Fully Supported.
248 add_key Unimplemented Not available to user.; Returns "permission denied".
249 request_key Unimplemented Not available to user.; Returns "permission denied".
250 keyctl Unimplemented Not available to user.; Returns "permission denied".
251 ioprio_set Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_ADMIN; "function not implemented" otherwise.
252 ioprio_get Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_ADMIN; "function not implemented" otherwise.
253 inotify_init Partial Support inotify events are only available inside the sandbox.
254 inotify_add_watch Partial Support inotify events are only available inside the sandbox.
255 inotify_rm_watch Partial Support inotify events are only available inside the sandbox.
256 migrate_pages Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_NICE; "function not implemented" otherwise.
257 openat Full Support Fully Supported.
258 mkdirat Full Support Fully Supported.
259 mknodat Full Support Fully Supported.
260 fchownat Full Support Fully Supported.
261 futimesat Full Support Fully Supported.
262 fstatat Full Support Fully Supported.
263 unlinkat Full Support Fully Supported.
264 renameat Full Support Fully Supported.
265 linkat Full Support Fully Supported.
266 symlinkat Full Support Fully Supported.
267 readlinkat Full Support Fully Supported.
268 fchmodat Full Support Fully Supported.
269 faccessat Full Support Fully Supported.
270 pselect Full Support Fully Supported.
271 ppoll Full Support Fully Supported.
272 unshare Partial Support Mount, cgroup namespaces not supported. Network namespaces supported but must be empty.
273 set_robust_list Unimplemented Obsolete.; Returns "function not implemented".
274 get_robust_list Unimplemented Obsolete.; Returns "function not implemented".
275 splice Partial Support Stub implementation.
See: https://gvisor.dev/issue/138
276 tee Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/138
277 sync_file_range Partial Support Full data flush is not guaranteed at this time.
278 vmsplice Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/138
279 move_pages Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_NICE; "function not implemented" otherwise.
280 utimensat Full Support Fully Supported.
281 epoll_pwait Full Support Fully Supported.
282 signalfd Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/139
283 timerfd_create Full Support Fully Supported.
284 eventfd Full Support Fully Supported.
285 fallocate Partial Support Not all options are supported.
286 timerfd_settime Full Support Fully Supported.
287 timerfd_gettime Full Support Fully Supported.
288 accept4 Full Support Fully Supported.
289 signalfd4 Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/139
290 eventfd2 Full Support Fully Supported.
291 epoll_create1 Full Support Fully Supported.
292 dup3 Full Support Fully Supported.
293 pipe2 Full Support Fully Supported.
294 inotify_init1 Full Support Fully Supported.
295 preadv Full Support Fully Supported.
296 pwritev Full Support Fully Supported.
297 rt_tgsigqueueinfo Full Support Fully Supported.
298 perf_event_open Unimplemented No support for perf counters; Returns "no such device".
299 recvmmsg Partial Support Not all flags and control messages are supported.
300 fanotify_init Unimplemented Needs CONFIG_FANOTIFY; Returns "function not implemented".
301 fanotify_mark Unimplemented Needs CONFIG_FANOTIFY; Returns "function not implemented".
302 prlimit64 Full Support Fully Supported.
303 name_to_handle_at Unimplemented Not supported by gVisor filesystems; Returns "operation not supported".
304 open_by_handle_at Unimplemented Not supported by gVisor filesystems; Returns "operation not supported".
305 clock_adjtime Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_TIME; "function not implemented" otherwise.
306 syncfs Partial Support Depends on backing file system.
307 sendmmsg Partial Support Not all flags and control messages are supported.
308 setns Unimplemented Needs filesystem support; Returns "operation not supported".
See: https://gvisor.dev/issue/140
309 getcpu Full Support Fully Supported.
310 process_vm_readv Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/158
311 process_vm_writev Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/158
312 kcmp Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_PTRACE; "function not implemented" otherwise.
313 finit_module Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_MODULE; "function not implemented" otherwise.
314 sched_setattr Unimplemented gVisor does not implement a scheduler.; Returns "function not implemented".
See: https://gvisor.dev/issue/264
315 sched_getattr Unimplemented gVisor does not implement a scheduler.; Returns "function not implemented".
See: https://gvisor.dev/issue/264
316 renameat2 Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/263
317 seccomp Full Support Fully Supported.
318 getrandom Full Support Fully Supported.
319 memfd_create Full Support Fully Supported.
320 kexec_file_load Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_BOOT; "function not implemented" otherwise.
321 bpf Unimplemented Returns "operation not permitted" if the process does not have CAP_SYS_ADMIN; "function not implemented" otherwise.
322 execveat Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/265
323 userfaultfd Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/266
324 membarrier Unimplemented Returns "function not implemented".
See: https://gvisor.dev/issue/267
325 mlock2 Partial Support Stub implementation. The sandbox lacks appropriate permissions.
326 copy_file_range Unimplemented Returns "function not implemented".
327 preadv2 Full Support Fully Supported.
328 pwritev2 Partial Support Flag RWF_HIPRI is not supported.
332 statx Full Support Fully Supported.