Linux下的进程通信手段基本上是从UNIX平台上的进程通信手段继承而来的。而对UNIX发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间的通信方面的侧重点有所不同。前者是对UNIX早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,其通信进程主要局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间通信机制。而Linux则把两者的优势都继承了下来,如图8.1所示。
图8.1 进程间通信发展历程
n UNIX进程间通信(IPC)方式包括管道、FIFO以及信号。
n System V进程间通信(IPC)包括System V消息队列、System V信号量以及System V共享内存区。
n Posix 进程间通信(IPC)包括Posix消息队列、Posix信号量以及Posix共享内存区。