两个进程想交换一段数据,最直觉的想法是:A 进程把数据写到自己的内存里,然后 B 进程直接去读就行了。
不过,这在操作系统里行不通。每个进程都有独立的虚拟地址空间,A 进程里的 0x7f... 地址和 B 进程里的 0x7f... 地址并不是同一块内存。用户态进程之间不能随便互相摸内存,否则权限隔离也没法谈。
所以 IPC(Inter-Process Communication,进程间通信) 绕不开操作系统。
不要想得太复杂,我更习惯把 IPC 看成三件事:怎么传数据、怎么同步控制流、怎么做命名和权限检查。只记“管道、消息队列、共享内存”这些名字,很容易背完就忘。
2026/6/11大约 15 分钟
