|
|
1.1 root 1: .\" Copyright (c) 1986 The Regents of the University of California.
2: .\" All rights reserved.
3: .\"
4: .\" Redistribution and use in source and binary forms are permitted
5: .\" provided that the above copyright notice and this paragraph are
6: .\" duplicated in all such forms and that any documentation,
7: .\" advertising materials, and other materials related to such
8: .\" distribution and use acknowledge that the software was developed
9: .\" by the University of California, Berkeley. The name of the
10: .\" University may not be used to endorse or promote products derived
11: .\" from this software without specific prior written permission.
12: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
13: .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
14: .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
15: .\"
16: .\" @(#)1.t 1.4 (Berkeley) 3/7/89
17: .\"
18: .\".ds LH "4.3BSD IPC Primer
19: .\".ds RH Introduction
20: .\".ds RF "Leffler/Fabry/Joy
21: .\".ds LF "\*(DY
22: .\".ds CF "
23: .nr H1 1
24: .LP
25: .bp
26: .LG
27: .B
28: .ce
29: 1. INTRODUCTION
30: .sp 2
31: .R
32: .NL
33: One of the most important additions to UNIX in 4.2BSD was interprocess
34: communication.
35: These facilities were the result of
36: more than two years of discussion and research. The facilities
37: provided in 4.2BSD incorporated many of the ideas from current
38: research, while trying to maintain the UNIX philosophy of
39: simplicity and conciseness.
40: The current release of Berkeley UNIX, 4.3BSD,
41: completes some of the IPC facilities
42: and provides an upward-compatible interface.
43: It is hoped that the interprocess communication
44: facilities included in 4.3BSD will establish a
45: standard for UNIX. From the response to the design,
46: it appears many organizations carrying out
47: work with UNIX are adopting it.
48: .PP
49: UNIX has previously been very weak in the area of interprocess
50: communication. Prior to the 4BSD facilities, the only
51: standard mechanism which allowed two processes to communicate were
52: pipes (the mpx files which were part of Version 7 were
53: experimental). Unfortunately, pipes are very restrictive
54: in that
55: the two communicating processes must be related through a
56: common ancestor.
57: Further, the semantics of pipes makes them almost impossible
58: to maintain in a distributed environment.
59: .PP
60: Earlier attempts at extending the IPC facilities of UNIX have
61: met with mixed reaction. The majority of the problems have
62: been related to the fact that these facilities have been tied to
63: the UNIX file system, either through naming or implementation.
64: Consequently, the IPC facilities provided in 4.3BSD have been
65: designed as a totally independent subsystem. The 4.3BSD IPC
66: allows processes to rendezvous in many ways.
67: Processes may rendezvous through a UNIX file system-like
68: name space (a space where all names are path names)
69: as well as through a
70: network name space. In fact, new name spaces may
71: be added at a future time with only minor changes visible
72: to users. Further, the communication facilities
73: have been extended to include more than the simple byte stream
74: provided by a pipe. These extensions have resulted
75: in a completely new part of the system which users will need
76: time to familiarize themselves with. It is likely that as
77: more use is made of these facilities they will be refined;
78: only time will tell.
79: .PP
80: This document provides a high-level description
81: of the IPC facilities in 4.3BSD and their use.
82: It is designed to complement the manual pages for the IPC primitives
83: by examples of their use.
84: The remainder of this document is organized in four sections.
85: Section 2 introduces the IPC-related system calls and the basic model
86: of communication. Section 3 describes some of the supporting
87: library routines users may find useful in constructing distributed
88: applications. Section 4 is concerned with the client/server model
89: used in developing applications and includes examples of the
90: two major types of servers. Section 5 delves into advanced topics
91: which sophisticated users are likely to encounter when using
92: the IPC facilities.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.