最終更新:2024-01-23 (火) 11:15:23 (909d)
Linux/システムコール
http://linux.die.net/man/2/syscalls
man
メモ
- システムコールは一般には直接起動されず、 glibc (や他の何らかのライブラリ) 経由で起動される
Linuxカーネル
- sys_?システムコール名という関数で実装されている
- linux/syscalls.h
定義
- SYSCALL_DEFINE
- 後ろの数字はシステムコールの引数の数
- 通常の関数定義では変数の型と変数名の間に゛,”はありませんが、SYSCALL_DEFINEでは型と変数名の間に゛,”をつけて区切ります。
番号の定義
- arch/x86/include/asm/unistd_32.h
- arch/x86/include/asm/unistd_64.h?
- uapi/asm-generic/unistd.h?
関数との対応表
- arch/x86/kernel/syscall_table_32.S?
システムコールの数
- Linux 3.2 - 349
- Linux 3.1 - 347
- Linux 3.0 - 347
- Linux 2.6.39 - 345
- Linux 2.6.38 - 341
- Linux 2.6.37 - 341
- Linux 2.6.36 - 341
- Linux 2.6.35 - 338
- Linux 2.6.34 - 338
- Linux 2.6.33 - 338
- Linux 2.6.32 - 337
Linux 3.1
| System call | Kernel | Notes |
| _llseek? | 1.2 | |
| _newselect? | ||
| _sysctl? | ||
| accept? | ||
| accept4? | 2.6.28 | |
| access | ||
| acct? | ||
| add_key? | 2.6.11 | |
| adjtimex | ||
| afs_syscall? | Not implemented | |
| alarm? | ||
| alloc_hugepages? | 2.5.36 | Removed in 2.5.44 |
| bdflush? | ||
| bind | ||
| break | Not implemented | |
| brk? | ||
| cacheflush? | 1.2 | Not on i386 |
| capget? | 2.2 | |
| capset? | 2.2 | |
| chdir? | ||
| chmod | ||
| chown | ||
| chown32? | 2.4 | |
| chroot | ||
| clock_adjtime? | 2.6.39 | |
| clock_getres | 2.6 | |
| clock_gettime | 2.6 | |
| clock_nanosleep? | 2.6 | |
| clock_settime? | 2.6 | |
| clone | ||
| close? | ||
| connect | ||
| creat | ||
| create_module? | ||
| delete_module? | ||
| dup? | ||
| dup2? | ||
| dup3? | 2.6.27 | |
| epoll_create? | 2.6 | |
| epoll_create1? | 2.6.27 | |
| epoll_ctl | 2.6 | |
| epoll_pwait? | 2.6.19 | |
| epoll_wait | 2.6 | |
| eventfd? | 2.6.22 | |
| eventfd2? | 2.6.27 | |
| execve | ||
| exit | ||
| exit_group? | 2.6 | |
| faccessat? | 2.6.16 | |
| fadvise64? | 2.6 | |
| fadvise64_64? | 2.6 | |
| fallocate | 2.6.23 | |
| fanotify_init? | 2.6.37 | |
| fanotify_mark? | 2.6.37 | |
| fchdir? | ||
| fchmod? | ||
| fchmodat? | 2.6.16 | |
| fchown? | ||
| fchown32? | 2.4 | |
| fchownat? | 2.6.16 | |
| fcntl | ||
| fcntl64? | 2.4 | |
| fdatasync? | ||
| fgetxattr? | 2.6; 2.4.18 | |
| flistxattr? | 2.6; 2.4.18 | |
| flock? | 2.0 | |
| fork | ||
| free_hugepages? | 2.5.36 | Removed in 2.5.44 |
| fremovexattr? | 2.6; 2.4.18 | |
| fsetxattr? | 2.6; 2.4.18 | |
| fstat | ||
| fstat64? | 2.4 | |
| fstatat64? | 2.6.16 | |
| fstatfs? | ||
| fstatfs64? | 2.6 | |
| fsync | ||
| ftime? | Not implemented | |
| ftruncate? | ||
| ftruncate64? | 2.4 | |
| futex? | 2.6 | |
| futimesat? | 2.6.16 | |
| get_kernel_syms? | ||
| get_mempolicy? | 2.6.6 | |
| get_robust_list? | 2.6.17 | |
| get_thread_area? | 2.6 | |
| getcpu? | 2.6.19 | |
| getcwd? | 2.2 | |
| getdents | 2.0 | |
| getdents64? | 2.4 | |
| getegid? | ||
| getegid32? | 2.4 | |
| geteuid? | ||
| geteuid32? | 2.4 | |
| getgid? | ||
| getgid32? | 2.4 | |
| getgroups? | ||
| getgroups32? | 2.4 | |
| getitimer? | ||
| getpeername? | ||
| getpagesize? | 2.0 | Not on i386 |
| getpgid? | ||
| getpgrp? | ||
| getpid | ||
| getpmsg? | Not implemented | |
| getppid? | ||
| getpriority? | ||
| getresgid? | 2.2 | |
| getresgid32? | 2.4 | |
| getresuid? | 2.2 | |
| getresuid32? | 2.4 | |
| getrlimit? | ||
| getrusage | ||
| getsid? | 2.0 | |
| getsockname | ||
| getsockopt? | ||
| gettid? | 2.4.11 | |
| gettimeofday | ||
| getuid? | ||
| getuid32? | 2.4 | |
| getxattr? | 2.6; 2.4.18 | |
| gtty? | Not implemented | |
| idle? | Not implemented | |
| init_module | ||
| inotify_add_watch | 2.6.13 | |
| inotify_init | 2.6.13 | |
| inotify_init1? | 2.6.27 | |
| inotify_rm_watch? | 2.6.13 | |
| io_cancel? | 2.6 | |
| io_destroy? | 2.6 | |
| io_getevents? | 2.6 | |
| io_setup? | 2.6 | |
| io_submit? | 2.6 | |
| ioctl | ||
| ioperm? | ||
| iopl? | ||
| ioprio_get? | 2.6.13 | |
| ioprio_set? | 2.6.13 | |
| ipc? | ||
| kexec_load? | 2.6.13 | |
| keyctl? | 2.6.11 | |
| kill | ||
| lchown? | 2.2 | |
| lchown32? | 2.4 | |
| lgetxattr? | 2.6; 2.4.18 | |
| link? | ||
| linkat? | 2.6.16 | |
| listen | ||
| listxattr? | 2.6; 2.4.18 | |
| llistxattr? | 2.6; 2.4.18 | |
| lock | Not implemented | |
| lookup_dcookie? | 2.6 | |
| lremovexattr? | 2.6; 2.4.18 | |
| lseek | ||
| lsetxattr? | 2.6; 2.4.18 | |
| lstat? | ||
| lstat64? | 2.4 | |
| madvise? | 2.4 | |
| madvise1? | 2.4 | |
| mbind? | 2.6.6 | |
| migrate_pages? | 2.6.16 | |
| mincore? | 2.4 | |
| mkdir | ||
| mkdirat? | 2.6.16 | |
| mknod | ||
| mknodat? | 2.6.16 | |
| mlock? | ||
| mlockall? | ||
| mmap | ||
| mmap2? | 2.4 | |
| modify_ldt? | ||
| mount | ||
| move_pages? | 2.6.18 | |
| mprotect? | ||
| mpx? | Not implemented | |
| mq_getsetattr? | 2.6.6 | |
| mq_notify? | 2.6.6 | |
| mq_open? | 2.6.6 | |
| mq_timedreceive? | 2.6.6 | |
| mq_timedsend? | 2.6.6 | |
| mq_unlink? | ||
| mremap? | 2.0 | |
| msgctl? | ||
| msgget? | ||
| msgrcv? | ||
| msgsnd? | ||
| msync? | 2.0 | |
| munlock? | ||
| munlockall? | ||
| munmap? | ||
| name_to_handle_at? | 2.6.39 | |
| nanosleep | 2.0 | |
| nfsservctl? | 2.2 | |
| nice | ||
| oldfstat? | ||
| oldlstat? | ||
| oldolduname? | ||
| oldstat? | ||
| olduname? | ||
| open | ||
| open_by_handle_at? | 2.6.39 | |
| openat | 2.6.16 | |
| pause | ||
| pciconfig_iobase? | 2.2.15; 2.4 | Not on i386 |
| pciconfig_read? | 2.0.26; 2.2 | Not on i386 |
| pciconfig_write? | 2.0.26; 2.2 | Not on i386 |
| perf_event_open? | 2.6.31 | Was called perf_counter_open?() in 2.6.31; renamed in 2.6.32 |
| personality? | 1.2 | |
| phys? | Not implemented | |
| pipe? | ||
| pipe2? | 2.6.27 | |
| pivot_root? | 2.4 | |
| poll | 2.2 | |
| ppoll? | 2.6.16 | |
| prctl? | 2.2 | |
| pread64? | Added as "pread?" in 2.2;renamed "pread64?" in 2.6 | |
| preadv? | 2.6.30 | |
| prlimit | 2.6.36 | |
| prof? | Not implemented | |
| profil? | Not implemented | |
| pselect6? | 2.6.16 | |
| ptrace | ||
| putpmsg? | Not implemented | |
| pwrite64? | Added as "pwrite" in 2.2;renamed "pwrite64" in 2.6 | |
| pwritev? | 2.6.30 | |
| query_module? | 2.2 | |
| quotactl? | ||
| read | ||
| readahead | 2.4.13 | |
| readdir | ||
| readlink | ||
| readlinkat? | 2.6.16 | |
| readv? | 2.0 | |
| reboot | ||
| recv | ||
| recvfrom | ||
| recvmsg? | ||
| recvmmsg? | 2.6.33 | |
| remap_file_pages? | 2.6 | |
| removexattr? | 2.6; 2.4.18 | |
| rename? | ||
| renameat? | 2.6.16 | |
| request_key? | 2.6.11 | |
| restart_syscall? | 2.6 | |
| rmdir | ||
| rt_sigaction? | 2.2 | |
| rt_sigpending? | 2.2 | |
| rt_sigprocmask? | 2.2 | |
| rt_sigqueueinfo? | 2.2 | |
| rt_sigreturn? | 2.2 | |
| rt_sigsuspend? | 2.2 | |
| rt_sigtimedwait? | 2.2 | |
| rt_tgsigqueueinfo? | 2.6.31 | |
| sched_get_priority_max? | 2.0 | |
| sched_get_priority_min? | 2.0 | |
| sched_getaffinity? | 2.6 | |
| sched_getparam? | 2.0 | |
| sched_getscheduler? | 2.0 | |
| sched_rr_get_interval? | 2.0 | |
| sched_setaffinity? | 2.6 | |
| sched_setparam? | 2.0 | |
| sched_setscheduler? | 2.0 | |
| sched_yield? | 2.0 | |
| security? | Not implemented | |
| select | ||
| semctl? | ||
| semget? | ||
| semop? | ||
| semtimedop? | 2.6; 2.4.22 | |
| send | ||
| sendfile? | 2.2 | |
| sendfile64? | 2.6; 2.4.19 | |
| sendmmsg? | 3.0 | |
| sendmsg? | ||
| sendto | ||
| set_mempolicy? | 2.6.6 | |
| set_robust_list? | 2.6.17 | |
| set_thread_area? | 2.6 | |
| set_tid_address? | 2.6 | |
| set_zone_reclaim? | 2.6.13 | Removed in 2.6.16 (was never available to userspace) |
| setdomainname? | ||
| setfsgid? | 1.2 | |
| setfsgid32? | 2.4 | |
| setfsuid? | 1.2 | |
| setfsuid32? | 2.4 | |
| setgid | ||
| setgid32? | 2.4 | |
| setgroups? | ||
| setgroups32? | 2.4 | |
| sethostname? | ||
| setitimer | ||
| setns? | 3.0 | |
| setpgid? | ||
| setpriority? | ||
| setregid? | ||
| setregid32? | 2.4 | |
| setresgid? | 2.2 | |
| setresgid32? | 2.4 | |
| setresuid? | 2.2 | |
| setresuid32? | 2.4 | |
| setreuid? | ||
| setreuid32? | 2.4 | |
| setrlimit? | ||
| setsid? | ||
| setsockopt | ||
| settimeofday | ||
| setuid | ||
| setuid32? | 2.4 | |
| setup | Removed in 2.2 | |
| setxattr? | 2.6; 2.4.18 | |
| sgetmask? | ||
| shmat? | ||
| shmctl? | ||
| shmdt? | ||
| shmget? | ||
| shutdown | ||
| sigaction | ||
| sigaltstack? | 2.2 | |
| signal? | ||
| signalfd? | 2.6.22 | |
| signalfd4? | 2.6.27 | |
| sigpending? | ||
| sigprocmask? | ||
| sigreturn? | ||
| sigsuspend? | ||
| socket | ||
| socketcall? | ||
| socketpair? | ||
| splice? | 2.6.17 | |
| spu_create? | 2.6.16 | PowerPC only |
| spu_run? | 2.6.16 | PowerPC only |
| ssetmask? | ||
| stat | ||
| stat64? | 2.4 | |
| statfs? | ||
| statfs64? | 2.6 | |
| stime? | ||
| stty | Not implemented | |
| subpage_prot? | 2.6.25 | PowerPC if CONFIG_PPC_64K_PAGES |
| swapoff | ||
| swapon | ||
| symlink? | ||
| symlinkat? | 2.6.16 | |
| sync | ||
| sync_file_range? | 2.6.17 | |
| sync_file_range2? | 2.6.22 | Architecture-specific variant |
| syncfs? | 2.6.39 | |
| sync_file_range? | ||
| sysfs | 1.2 | |
| sysinfo | ||
| syslog | ||
| tee | 2.6.17 | |
| tgkill? | 2.6 | |
| time | ||
| timer_create? | 2.6 | |
| timer_delete? | 2.6 | |
| timer_getoverrun? | 2.6 | |
| timer_gettime? | 2.6 | |
| timer_settime? | 2.6 | |
| timerfd_create? | 2.6.25 | |
| timerfd_gettime? | 2.6.25 | |
| timerfd_settime? | 2.6.25 | |
| times? | ||
| tkill? | 2.6; 2.4.22 | |
| truncate? | ||
| truncate64? | 2.4 | |
| tuxcall? | Not implemented | |
| ugetrlimit? | 2.4 | |
| ulimit | Not implemented | |
| umask | ||
| umount | ||
| umount2? | 2.2 | |
| uname | ||
| unlink | ||
| unlinkat? | 2.6.16 | |
| unshare | 2.6.16 | |
| uselib? | ||
| ustat? | ||
| utime? | ||
| utimensat? | 2.6.22 | |
| utimes? | 2.2 | |
| vfork? | ||
| vhangup? | ||
| vm86old? | ||
| vmsplice? | 2.6.17 | |
| vserver? | Not implemented | |
| wait4 | ||
| waitid? | 2.6.10 | |
| waitpid? | ||
| write | ||
| writev? | 2.0 |

