Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

R.6 术语表

收「读代码/排障会遇到」的术语;一句话定义 + 出处。按主题分组,组内按中文排序。

A. 命令行与 Shell

中文English一句话出处
POSIXPortable Operating System InterfaceIEEE 定义的系统接口标准,规定 API/Shell/工具的最小行为0.1
FHSFilesystem Hierarchy StandardLinux 目录布局约定,如 /etc 配置、/var 可变数据0.3
inodeindex node文件元数据对象,保存类型、权限、大小、数据块位置;文件名在目录项里0.3
目录项dentry路径中一个名字到 inode 的映射,是 dcache 的节点0.3
硬链接hard link同一 inode 的另一个目录项;nlink 计数,删到 0 才释放数据0.3
软链接symbolic link内容是目标路径的独立 inode;可跨文件系统、可悬空0.3
umaskuser file-creation mask创建文件时被清掉的权限位;最终权限 = mode & ~umask0.4
ACLAccess Control List在属主/属组/other 之外追加的按用户/组授权;mask 限制有效权限0.4
capabilityLinux capability把 root 特权拆成细粒度位,如 cap_net_bind_service0.4
setuidset user ID执行时以文件属主身份运行;现代优先 capability/seccomp0.4
会话session一组进程组的集合,最多一个控制终端;setsid 创建0.9
作业控制job controlShell 对前台/后台进程组的管理,涉及 SIGTTIN/SIGTTOU0.9
伪终端pseudo-terminal, pty一对 master/slave 设备,让程序像操作终端一样与 Shell 交互0.2
shebanghash-bang脚本首行 #! 指定解释器;内核据此 execve0.7
globpathname expansionShell 的通配符展开,如 *.c;不是正则0.7
正则regular expression文本模式;BRE/ERE/PCRE 语法不同0.6
here-dochere document<<EOF 把一段文本作为 stdin0.5
退出状态exit status进程返回给父进程的 0–255 整数;$? 读取0.7
SIGPIPEbroken pipe signal向读端已关闭的管道/套接字写时内核发送的信号,默认终止0.5
systemd unitunitsystemd 管理的最小配置单元,如 service/socket/target/timer0.12
targettargetsystemd 的“状态组”,替代 SysV runlevel0.12

B. 系统编程

中文English一句话出处
系统调用system call用户态进入内核的唯一合法入口;x86-64 用 syscall 指令2.1
errnoerror number线程局部的错误码;仅在返回值表明失败后有意义2.1
文件描述符file descriptor进程 fd 表的下标,指向打开文件描述2.2
打开文件描述open file description内核 struct file,保存偏移、flags、引用计数2.2
短读short readread 返回少于请求字节数;合法,必须循环处理2.2
短写short writewrite 只写入部分字节;必须循环写剩余2.2
原子性atomicity操作不可被观察到中间态;如 O_CREAT|O_EXCL、rename2.2
O_CLOEXECclose-on-execexec 时自动关闭 fd,防止泄漏给子进程2.2
O_APPENDappend mode每次写原子定位到文件末尾2.2
EINTRinterrupted system call阻塞调用被信号打断;通常重试2.2
EAGAINtry again非阻塞 fd 当前不可用;等事件再试2.2
写时复制copy-on-write, COWfork 后父子共享物理页,写时才复制2.7
僵尸进程zombie已退出但父进程未 wait,只剩 task_struct2.7
孤儿进程orphan父进程先退出,被 init/systemd 收养2.7
守护进程daemon脱离控制终端、在后台长期运行;setsid + 二次 fork2.19
信号处理器signal handler信号递送时执行的函数;只能调用 async-signal-safe 函数2.10
async-signal-safeasync-signal-safe可在信号处理器中安全调用的函数集合(POSIX 列表)2.10
self-pipeself-pipe trick信号处理器写一个字节到管道,主循环用 poll/epoll 读,把信号转成 fd 事件2.10
signalfdsignal file descriptor把信号变成可读 fd,避免处理器2.10
futexfast userspace mutex用户态原子操作 + 内核等待队列实现的锁原语2.13
互斥锁mutex睡眠等待的互斥原语;临界区可阻塞2.13
条件变量condition variable等待条件成立;必须配互斥锁并 while 循环2.13
信号量semaphore计数同步原语;sem_wait/sem_post2.13
屏障barrier多个线程到齐后才继续2.13
线程局部存储thread-local storage, TLS每线程独立副本;__thread 或 pthread_key2.12
惊群thundering herd多个等待者被同一事件唤醒,只有一个能处理2.18
水平触发level-triggered, LT只要就绪就持续通知2.18
边缘触发edge-triggered, ET状态变化时通知一次;必须读到 EAGAIN2.18
io_uringio_uringLinux 5.1+ 的异步 I/O 接口,SQ/CQ 环形队列2.18
零拷贝zero-copy减少用户/内核态数据拷贝,如 sendfile/splice2.3
sendfilesendfile文件到套接字的内核内传输,避免用户态缓冲2.3
mmapmemory map把文件/匿名页映射到地址空间2.3
fsyncfile sync把文件数据和元数据刷到持久介质2.2
fdatasyncdata sync只刷数据及必要元数据2.2
O_DIRECTdirect I/O绕过 page cache,要求地址/偏移/长度对齐2.3
flockfile lock整文件建议锁;随 fd 复制2.3
记录锁record lockfcntl(F_SETLK) 对字节范围加锁2.3
UNIX domain socketAF_UNIX本机进程间双向通信;可传 fd/凭据2.16
辅助数据ancillary datasendmsg/recvmsg 携带的 SCM_RIGHTS/SCM_CREDENTIALS2.17
COW 页COW page写时复制页;do_wp_page 处理3.8

C. 计算机系统

中文English一句话出处
补码two’s complement有符号整数表示;-x = ~x + 11.2
IEEE 754IEEE 754浮点表示标准;符号/阶码/尾数,含 NaN/Inf1.2
字节序endianness多字节整数在内存中的顺序;x86 小端1.2
缓存行cache line缓存与内存之间的传输单位,通常 64 B1.6
组相联set-associative缓存组内多路;地址拆为 tag/set/offset1.6
TLBtranslation lookaside buffer页表项缓存,加速虚拟地址翻译1.9
链接linking把目标文件/库合并为可执行文件;含符号解析与重定位1.7
重定位relocation把符号引用改成最终地址1.7
GOTglobal offset table动态链接的全局偏移表1.7
PLTprocedure linkage table延迟绑定的过程链接表1.7
PICposition-independent code位置无关代码;共享库常用1.7
静态库static library.a,代码复制进可执行文件1.7
动态库shared library.so,运行时由 ld.so 加载1.7
虚拟地址virtual address进程看到的地址;由 MMU 翻译1.9
物理地址physical address实际内存/设备地址1.9
页表page table虚拟页到物理页的映射;多级结构1.9
缺页page fault访问未映射/不在内存的页,触发内核处理1.9
上下文切换context switch保存/恢复进程或线程的 CPU 状态1.8
IPCinter-process communication进程间通信:管道、消息队列、共享内存、socket2.14
Amdahl 定律Amdahl’s law加速比受不可并行部分限制1.1

D. 内核

中文English一句话出处
task_structprocess descriptor进程/线程描述符;含状态、mm、files、cred 等3.4
mm_structmemory descriptor进程地址空间;含页表基址、VMA 链表3.8
VMAvirtual memory area一段连续虚拟地址区间;vm_area_struct3.8
struct pagepage descriptor物理页的元数据;引用计数、映射、LRU3.7
slabslab allocator内核对象缓存;slub 为默认实现3.9
伙伴系统buddy allocator按 2 的幂管理物理页块,减少外部碎片3.7
zonememory zone按 DMA 可达性划分的物理内存区域3.7
NUMAnon-uniform memory access多节点内存,访问本地/远端延迟不同3.6
RMAPreverse mapping从物理页反查映射它的 VMA/页表项3.10
KSMkernel samepage merging合并内容相同的匿名页,省内存3.10
OOM killerout-of-memory killer内存耗尽时按 oom_score 杀进程3.10
CFScompletely fair scheduler用 vruntime 红黑树按权重分配 CPU3.5
EEVDFearliest eligible virtual deadline first6.6+ 的公平调度器;lag/vslice3.5
调度类scheduling classfair/rt/deadline/idle,按优先级选择3.5
软中断softirq下半部机制;网络收包用 NET_RX_SOFTIRQ3.3
NAPINew API网卡收包轮询机制;中断触发后 poll4.8
ftracefunction tracer内核函数/函数图追踪3.15
kprobekernel probe动态插桩内核函数3.15
tracepointtrace point内核预置的稳定追踪点3.15
eBPFextended Berkeley Packet Filter内核内安全执行的小程序;观测/网络/安全3.15
cgroup v2control group v2统一层级资源控制;cpu/memory/io/pids5.3
namespacenamespace隔离进程可见的系统资源;pid/mnt/net/uts/ipc/user/cgroup/time5.2

E. 网络

中文English一句话出处
MTUmaximum transmission unit链路层最大帧负载;以太网常见 1500 B4.1
MSSmaximum segment sizeTCP 段最大数据量;通常 MTU 减首部4.1
封装encapsulation上层数据加下层首部4.1
分用demultiplexing按首部字段把数据交给上层4.1
ARPaddress resolution protocolIPv4 地址到 MAC 的解析4.2
CIDRclassless inter-domain routing用前缀长度表示网段,如 /244.3
NATnetwork address translation改写地址/端口,让内网共享公网 IP4.3
三次握手three-way handshakeSYN / SYN-ACK / ACK 建立 TCP 连接4.5
四次挥手four-way teardownFIN/ACK/FIN/ACK 关闭连接4.5
TIME_WAITTIME_WAIT主动关闭方等 2MSL,处理迟到报文4.5
CLOSE_WAITCLOSE_WAIT被动关闭方收到 FIN,等应用 close4.5
拥塞窗口congestion window, cwnd发送方根据网络拥塞估计的窗口4.6
接收窗口receive window, rwnd接收方可用缓冲;流量控制4.6
RTOretransmission timeout重传超时;基于 RTT 估计4.6
SACKselective acknowledgment选择性确认,减少重传4.6
慢启动slow startcwnd 指数增长阶段4.6
拥塞避免congestion avoidancecwnd 线性增长阶段4.6
sk_buffsocket buffer内核网络包结构;head/data/tail/end4.8
NAPI pollNAPI poll驱动轮询收包,有 budget4.8
RPS/RFSreceive packet steering / flow steering把收包软中断分到多核4.8
GRO/GSOgeneric receive/send offload合并/拆分大包,减少协议栈开销4.8
backloglisten backlogaccept 队列上限4.5
SO_REUSEADDRreuse address允许绑定 TIME_WAIT/冲突地址2.16
SO_REUSEPORTreuse port多 socket 绑同一端口,内核负载均衡2.16
vethvirtual ethernet一对虚拟网卡,容器网络常用5.6
bridgenetwork bridge二层虚拟交换机5.6
VXLANvirtual extensible LAN三层网络上的二层 overlay5.6
CNIcontainer network interface容器网络插件规范5.6

F. 云原生

中文English一句话出处
容器containernamespace + cgroups + rootfs 的隔离进程5.1
镜像image只读层 + 配置;容器从镜像创建5.4
镜像层layeroverlayfs 的 lowerdir;可复用5.4
overlayfsoverlay filesystem联合挂载 lower/upper,copy-up 写时复制5.4
OCIOpen Container Initiative运行时/镜像规范5.5
runcruncOCI 运行时参考实现;创建容器进程5.5
containerdcontainerd容器运行时守护进程;管理镜像/容器5.5
PodPodKubernetes 最小调度单元,共享网络命名空间5.6
ServiceServiceKubernetes 服务抽象;ClusterIP/NodePort/LB5.6

回 R.5 易混对照;按主题找章节用 A.4 覆盖矩阵。