本节自序来自异步社区《UNIX网路编程卷2:进程间通讯(第2版)》一书中的第1章,第1.1节,作者:【美】W.RichardStevens著,更多章节内容可以访问云栖社区“异步社区”公众号查看
第1章简介1.1概述
IPC是进程间通讯(interprocesscommunication)的简称。传统上该术语描述的是运行在某个操作系统之上的不同进程间各类消息传递(messagepassing)的形式。本书还述说多种方式的同步(synchronization),由于像共享显存区这样的较旧式的通讯须要某种方式的同步参与运作。
在Unix操作系统过去30年的演化史中,消息传递历经了如下几个发展阶段。
在谈论Unix进程时linux软件工程师培训,有亲缘关系(related)的说法意味着所论及的进程具有某个共同的先祖。说得更明白点,这种有亲缘关系的进程是从该先祖进程经过一次或多次fork派生来的。一个常见的事例是在某个进程调用fork两次unix网络编程卷2:进程间通信,派生出两个子进程。我们说这两个子进程是有亲缘关系的。同样,每位子进程与其父进程也是有亲缘关系的。考虑到IPC,父进程可以在调用fork前构建某种方式的IPC(比如管线或消息队列)linux命令tar,由于它晓得随即派生的两个子进程将穿越fork承继该IPC对象。我们随图1-6详尽讨论各类IPC对象的承继性。我们还得注意,从理论上说,所有Unix进程与init进程都有亲缘关系unix网络编程卷2:进程间通信,它是在系统自举时启动所有初始化进程的先祖进程。但是从实践上说,进程亲缘关系开始于一个登陆shell(称为一个会话)以及由该shell派生的所有进程。APUE的第9章详尽讨论会话和进程亲缘关系。本书将全文使用缩进的插入式注解(这么处所示)来说明实现上的细节、历史上的观点以及其他琐事。
看一看由Unix提供的各类同步方式的演化同样颇具教益。