第四部分:系统编程
本部分讨论 ISO C 标准库之外、由操作系统及其开发接口提供的能力。
- 平台边界、POSIX 与系统调用
- 文件描述符与非缓冲 I/O
- 文件系统、目录与权限
- 虚拟内存与内存映射
- 进程的创建、执行与回收
- 信号、时间与定时器
- 进程间通信
- 操作系统线程与同步
- 网络基础
- 套接字编程
- 非阻塞 I/O 与 I/O 多路复用
- 事件循环
- 终端、伪终端与作业控制
- 系统程序的健壮性与安全边界
- 拓展A:Windows 系统编程
- A.1 Win32 API 概览与 POSIX 对照
- A.2 字符与文本:ANSI、Unicode 与 UTF-16
- A.3 内核对象与句柄
- A.4 文件与目录操作
- A.5 错误处理与结构化异常处理(SEH)
- A.6 内存管理与内存映射文件
- A.7 动态链接库(DLL)
- A.8 进程的创建、执行与等待
- A.9 线程与线程本地存储
- A.10 同步原语(一):等待函数与内核对象
- A.11 同步原语(二):临界区、SRWLock 与条件变量
- A.12 管道与进程间通信
- A.13 Winsock 特有主题
- A.14 异步 I/O 与重叠结构
- A.15 I/O 完成端口与线程池
- A.16 安全与访问控制(ACL 与令牌)
- A.17 控制台与 ConPTY
- A.18 Windows 服务、注册表与系统设施
- 拓展B:eBPF
- B.1 eBPF 概览:历史、架构与应用场景
- B.2 环境准备与工具链
- B.3 第一个 eBPF 程序
- B.4 程序的解剖:受限的 C
- B.5 辅助函数与上下文
- B.6 Map:内核态与用户态的数据交换
- B.7 加载与附加:bpf() 系统调用与程序生命周期
- B.8 libbpf、BTF 与 CO-RE
- B.9 验证器
- B.10 程序类型与附加类型
- B.11 跟踪与观测:kprobe、uprobe 与 tracepoint
- B.12 网络应用:XDP 与 tc
- B.13 安全应用:seccomp、LSM 与 cgroup
- B.14 bpftrace 与编程工具链
- B.15 实战:编写一个系统观测工具
- B.16 eBPF for Windows 与跨平台前景