Linux 内核/系统调用
Linux 内核系统调用由 glibc 导出,都在一张纸上
Obsolete: ipc, sgetmask, ssetmask, sysfs
accept, accept4 - 接受套接字上的连接
access, faccessat - 检查用户对文件的权限
acct - 打开或关闭进程记账
add_key - 向内核的密钥管理设施添加密钥
adjtimex, ntp_adjtime - 调整内核时钟
afs_syscall, break, fattach, fdetach, ftime, getmsg, getpmsg, gtty, isastream, lock, madvise1, mpx, prof, profil, putmsg, putpmsg, security, stty, tuxcall, ulimit, vserver - 未实现的系统调用
alarm - 设置一个闹钟以传送信号
alloc_hugepages, free_hugepages - 分配或释放巨型页面
arch_prctl - 设置特定于体系结构的线程状态
bdflush - 启动、刷新或调整缓冲区脏数据刷新守护进程
bind - 将名称绑定到套接字
bpf - 对扩展的 BPF 映射或程序执行命令
brk, sbrk - 更改数据段大小
cacheflush - 刷新指令和/或数据缓存的内容
capget, capset - 设置/获取线程的权限
chdir, fchdir - 更改工作目录
chmod, fchmod, fchmodat - 更改文件的权限
chown, fchown, lchown, fchownat - 更改文件的拥有者
chroot - 更改根目录
clock_getres, clock_gettime, clock_settime - 时钟和时间函数
clock_nanosleep - 高分辨率睡眠,可指定时钟
clone, __clone2 - 创建子进程
close - 关闭文件描述符
connect - 在套接字上发起连接
copy_file_range - 从一个文件复制一段数据到另一个文件
create_module - 创建一个可加载模块条目
delete_module - 卸载内核模块
dup, dup2, dup3 - 复制文件描述符
epoll_create, epoll_create1 - 打开一个 epoll 文件描述符
epoll_ctl - epoll 文件描述符的控制接口
epoll_wait, epoll_pwait - 等待 epoll 文件描述符上的 I/O 事件
eventfd - 创建一个用于事件通知的文件描述符
execveat - 相对于目录文件描述符执行程序
execve - 执行程序
_exit, _Exit - 终止调用进程
exit_group - 退出进程中的所有线程
fallocate - 操作文件空间
fanotify_init - 创建和初始化 fanotify 组
fanotify_mark - 在文件系统对象上添加、删除或修改 fanotify 标记
fcntl - 操作文件描述符
flock - 对打开的文件应用或删除建议锁
fork - 创建子进程
fsync, fdatasync - 将文件的内存状态与存储设备同步
futex - 快速用户空间锁定
futimesat - 相对于目录文件描述符更改文件的 timestamps
getcontext, setcontext - 获取或设置用户上下文
getcpu - 确定调用线程正在运行的 CPU 和 NUMA 节点
getcwd, getwd, get_current_dir_name - 获取当前工作目录
getdents, getdents64 - 获取目录条目
getdomainname, setdomainname - 获取/设置 NIS 域名
getdtablesize - 获取文件描述符表大小
getgid, getegid - 获取组标识
getgroups, setgroups - 获取/设置辅助组 ID 列表
gethostid, sethostid - 获取或设置当前主机的唯一标识符
gethostname, sethostname - 获取/设置主机名
getitimer, setitimer - 获取或设置间隔计时器的值
get_kernel_syms - 检索导出的内核和模块符号
get_mempolicy - 检索线程的 NUMA 内存策略
getpagesize - 获取内存页面大小
getpeername - 获取连接的对等套接字的名称
getpid, getppid - 获取进程标识
getpriority, setpriority - 获取/设置程序调度优先级
getrandom - 获取一系列随机字节
getresuid, getresgid - 获取真实、有效和保存的用户/组 ID
getrlimit, setrlimit, prlimit - 获取/设置资源限制
get_robust_list, set_robust_list - 获取/设置健壮的 futex 列表
getrusage - 获取资源使用情况
getsid - 获取会话 ID
getsockname - 获取套接字名称
getsockopt, setsockopt - 获取和设置套接字上的选项
get_thread_area, set_thread_area - 为线程本地存储设置 GDT 条目
gettid - 获取线程标识
gettimeofday, settimeofday - 获取/设置时间
getuid, geteuid - 获取用户标识
getunwind - 将展开数据复制到调用者的缓冲区
idle - 使进程 0 处于空闲状态
init_module, finit_module - 加载内核模块
inotify_add_watch - 向已初始化的 inotify 实例添加监视
inotify_init, inotify_init1 - 初始化 inotify 实例
inotify_rm_watch - 从 inotify 实例中删除现有监视
intro - 系统调用的介绍
io_cancel - 取消正在进行的异步 I/O 操作
ioctl_console - 控制台终端和虚拟控制台的 ioctl
ioctl - 控制设备
ioctl_fat - 操作 FAT 文件系统
ioctl_ficlonerange, ioctl_ficlone - 与另一个文件共享部分数据
ioctl_fideduperange - 与另一个文件共享部分数据
ioctl_getfsmap - 检索文件系统的物理布局
ioctl_iflags - 用于 inode 标记的 ioctl() 操作
ioctl_list - Linux/i386 内核中 ioctl 调用的列表
ioctl_ns - 用于 Linux 命名空间的 ioctl() 操作
ioctl_tty - 用于终端和串行线路的 ioctl
ioctl_userfaultfd - 创建一个用于处理用户空间中的页面错误的文件描述符
io_destroy - 销毁异步 I/O 上下文
io_getevents - 从完成队列中读取异步 I/O 事件
ioperm - 设置端口输入/输出权限
iopl - 更改 I/O 权限级别
ioprio_get, ioprio_set - 获取/设置 I/O 调度类别和优先级
io_setup - 创建异步 I/O 上下文
io_submit - 提交异步 I/O 块以供处理
ipc - System V IPC 系统调用
kcmp - 比较两个进程以确定它们是否共享内核资源
kexec_load, kexec_file_load - 加载一个新的内核以供稍后执行
keyctl - 操作内核的密钥管理设施
killpg - 向进程组发送信号
kill - 向进程发送信号
link, linkat - 为文件创建新名称
listen - 在套接字上监听连接
_llseek - 重置读/写文件偏移量
lookup_dcookie - 返回目录项的路径
lseek - 重置读/写文件偏移量
madvise - 提供有关内存使用的建议
mbind - 为内存范围设置内存策略
membarrier - 在一组线程上发出内存屏障
memfd_create - 创建匿名文件
migrate_pages - 将进程中的所有页面移动到另一组节点
mincore - 确定页面是否驻留在内存中
mkdir, mkdirat - 创建目录
mknod, mknodat - 创建特殊文件或普通文件
mlock, mlock2, munlock, mlockall, munlockall - 锁定和解锁内存
mmap2 - 将文件或设备映射到内存
mmap, munmap - 将文件或设备映射或解除映射到内存
modify_ldt - 获取或设置每个进程的 LDT 项
mount - 挂载文件系统
move_pages - 将进程的单个页面移动到另一个节点
mprotect, pkey_mprotect - 设置内存区域的保护
mq_getsetattr - 获取/设置消息队列属性
mq_notify - 注册消息可用时的通知
mq_open - 打开消息队列
mq_receive, mq_timedreceive - 从消息队列接收消息
mq_send, mq_timedsend - 将消息发送到消息队列
mq_unlink - 删除消息队列
mremap - 重新映射虚拟内存地址
msgctl - System V 消息控制操作
msgget - 获取 System V 消息队列标识符
msgrcv, msgsnd - System V 消息队列操作
msync - 将文件与内存映射同步
name_to_handle_at, open_by_handle_at - 获取路径名的句柄并通过句柄打开文件
nanosleep - 高分辨率睡眠
nfsservctl - 对内核 nfs 守护程序的系统调用接口
nice - 更改进程优先级
open, openat, creat - 打开并可能创建文件
outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - 端口 I/O
pause - 等待信号
pciconfig_read, pciconfig_write, pciconfig_iobase - pci 设备信息处理
perf_event_open - 设置性能监控
perfmonctl - IA-64 性能监控单元的接口
personality - 设置进程执行域
pipe, pipe2 - 创建管道
pivot_root - 更改根文件系统
pkey_alloc, pkey_free - 分配或释放保护密钥
poll, ppoll - 等待文件描述符上的某些事件
posix_fadvise - 预先声明文件数据的访问模式
prctl - 对进程的操作
pread, pwrite - 从给定偏移量读取或写入文件描述符
process_vm_readv, process_vm_writev - 在进程地址空间之间传输数据
ptrace - 进程跟踪
query_module - 查询内核以获取有关模块的各种信息
quotactl - 操作磁盘配额
readahead - 将文件预读到页面缓存
readdir - 读取目录项
readlink, readlinkat - 读取符号链接的值
read - 从文件描述符读取
readv, writev, preadv, pwritev, preadv2, pwritev2 - 将数据读入或写入多个缓冲区
reboot - 重启或启用/禁用 Ctrl-Alt-Del
recvmmsg - 在套接字上接收多条消息
recv, recvfrom, recvmsg - 从套接字接收消息
remap_file_pages - 创建非线性文件映射
rename, renameat, renameat2 - 更改文件的名称或位置
request_key - 从内核密钥管理工具请求密钥
restart_syscall - 在被停止信号中断后重启系统调用
rmdir - 删除目录
rt_sigqueueinfo, rt_tgsigqueueinfo - 排队信号和数据
s390_pci_mmio_write, s390_pci_mmio_read - 将数据传输到/从 PCI MMIO 内存页面
s390_runtime_instr - 启用/禁用 s390 CPU 运行时检测
s390_sthyi - 模拟 STHYI 指令
sched_get_priority_max, sched_get_priority_min - 获取静态优先级范围
sched_rr_get_interval - 获取命名进程的 SCHED_RR 间隔
sched_setaffinity, sched_getaffinity - 设置和获取线程的 CPU 亲和力掩码
sched_setattr, sched_getattr - 设置和获取调度策略和属性
sched_setparam, sched_getparam - 设置和获取调度参数
sched_setscheduler, sched_getscheduler - 设置和获取调度策略/参数
sched_yield - 让出处理器
seccomp - 操作进程的安全计算状态
select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - 同步 I/O 多路复用
semctl - System V 信号量控制操作
semget - 获取 System V 信号量集标识符
semop, semtimedop - System V 信号量操作
sendfile - 在文件描述符之间传输数据
sendmmsg - 在套接字上发送多条消息
send, sendto, sendmsg - 在套接字上发送消息
seteuid, setegid - 设置有效用户或组 ID
setfsgid - 设置用于文件系统检查的组标识
setfsuid - 设置用于文件系统检查的用户标识
setgid - 设置组标识
set_mempolicy - 为线程及其子线程设置默认 NUMA 内存策略
setns - 将线程重新关联到命名空间
setpgid, getpgid, setpgrp, getpgrp - 设置/获取进程组
setresuid, setresgid - 设置真实、有效和保存的用户或组 ID
setreuid, setregid - 设置真实和/或有效用户或组 ID
setsid - 创建会话并设置进程组 ID
set_tid_address - 设置指向线程 ID 的指针
setuid - 设置用户标识
setup - 设置设备和文件系统,挂载根文件系统
sgetmask, ssetmask - 操作信号掩码(已过时)
shmat, shmdt - System V 共享内存操作
shmctl - System V 共享内存控制
shmget - 分配 System V 共享内存段
shutdown - 关闭全双工连接的一部分
sigaction, rt_sigaction - 检查和更改信号操作
sigaltstack - 设置和/或获取信号堆栈上下文
signal - ANSI C 信号处理
signalfd - 为接受信号创建文件描述符
sigpending, rt_sigpending - 检查挂起的信号
sigprocmask, rt_sigprocmask - 检查和更改阻塞信号
sigqueue - 将信号和数据排队到进程
sigreturn, rt_sigreturn - 从信号处理程序返回并清理堆栈帧
sigsuspend, rt_sigsuspend - 等待信号
sigwaitinfo, sigtimedwait, rt_sigtimedwait - 同步等待排队的信号
socketcall - 套接字系统调用
socket - 创建通信端点
socketpair - 创建一对连接的套接字
splice - 将数据拼接进/出管道
spu_create - 创建新的 spu 上下文
spu_run - 执行 SPU 上下文
statfs, fstatfs - 获取文件系统统计信息
stat, fstat, lstat, fstatat - 获取文件状态
statvfs, fstatvfs - 获取文件系统统计信息
statx - 获取文件状态(扩展)
stime - 设置时间
subpage_prot - 为地址范围定义子页面保护
swapon, swapoff - 启动/停止将文件/设备交换到内存
symlink, symlinkat - 为文件创建新名称
sync_file_range - 将文件段与磁盘同步
sync, syncfs - 将文件系统缓存提交到磁盘
syscall - 间接系统调用
_syscall - 在没有库支持的情况下调用系统调用(已过时)
syscalls - Linux 系统调用
sysctl - 读取/写入系统参数
sysfs - 获取文件系统类型信息
sysinfo - 返回系统信息
syslog, klogctl - 读取和/或清除内核消息环形缓冲区;设置 console_loglevel
tee - 复制管道内容
time - 获取以秒为单位的时间
timer_create - 创建 POSIX 每个进程计时器
timer_delete - 删除 POSIX 每个进程计时器
timerfd_create, timerfd_settime, timerfd_gettime - 通过文件描述符通知的计时器
timer_getoverrun - 获取 POSIX 每个进程计时器的超运行计数
timer_settime, timer_gettime - 激活/停用并获取 POSIX 每个进程计时器的状态
times - 获取进程时间
tkill, tgkill - 向线程发送信号
truncate, ftruncate - 将文件截断到指定长度
umask - 设置文件模式创建掩码
umount, umount2 - 卸载文件系统
uname - 获取当前内核的名称和信息
unlink, unlinkat - 删除名称以及可能引用的文件
unshare - 与进程执行上下文的一部分分离
uselib - 加载共享库
userfaultfd - 创建文件描述符以在用户空间处理页面错误
ustat - 获取文件系统统计信息
utimensat, futimens - 以纳秒精度更改文件时间戳
utime, utimes - 更改文件的最后访问和修改时间
vfork - 创建子进程并阻塞父进程
vhangup - 虚拟挂起当前终端
vm86old, vm86 - 进入虚拟 8086 模式
vmsplice - 将用户页面拼接入管道
wait3, wait4 - 等待进程状态改变,BSD 风格
wait, waitpid, waitid - 等待进程状态改变
write - 写入文件描述符