📬 任务间通信 · 内核实现
30 章 · 从原理到实战
⚙️ 内核级 · 风格
01
引言
背景与IPC演进
多任务挑战 · 为什么需要任务间通信
02
共享内存·上
原理与数据结构
物理内存管理 · 内核设计
03
共享内存·下
同步机制实现
自旋锁 · 信号量 · 内核同步
04
消息队列·上
内核数据结构
msg_queue · msg_msg 设计
05
消息队列·中
msgsnd系统调用
消息发送内核路径
06
消息队列·下
msgrcv与阻塞唤醒
接收机制 · 等待队列
07
信号量·上
经典与内核信号量
struct semaphore 实现
08
信号量·下
PV原子性与等待队列
原子操作 · 阻塞唤醒
09
管道·上
无名管道与缓冲区
pipe创建 · 内核buffer
10
管道·下
FIFO与文件系统
有名管道 · 交互细节
11
信号·上
注册与递送机制
内核信号注册递送
12
信号·中
处理函数执行流程
用户态/内核态切换
13
信号·下
实时信号与可靠信号
区别 · 内核实现
14
Socket·上
协议栈与Socket创建
网络协议栈简介
15
Socket·中
TCP/UDP数据传输
内核数据传输路径
16
Socket·下
epoll内核实现
性能优化 · 事件驱动
17
内存映射
mmap内核实现
文件映射 · 匿名映射
18
文件锁
flock/fcntl实现
竞争条件处理
19
eventfd
轻量级事件对象
内核事件通知机制
20
timerfd
定时器与fd结合
内核定时器 · 通知
21
信号量集
semctl/semop
System V 复杂操作
22
共享内存 SysV
shmget/shmat
内核实现细节
23
消息队列 SysV
对比POSIX
内核差异分析
24
RPC远程通信
内核RPC框架
SUN RPC 简介
25
D-Bus
桌面IPC与内核
D-Bus 内核支持
26
Binder·上
驱动核心数据结构
Android Binder驱动
27
Binder·下
线程池与事务传递
Binder事务机制
28
性能对比
IPC开销分析
不同机制内核开销
29
调试与追踪
ftrace/perf
分析IPC性能瓶颈
30
综合实战
混合IPC方案
共享内存+信号量+eventfd