Commit | Line | Data |
---|---|---|
d60e8dff MK |
1 | .\" Copyright (c) 1986 Regents of the University of California. |
2 | .\" All rights reserved. The Berkeley software License Agreement | |
3 | .\" specifies the terms and conditions for redistribution. | |
4 | .\" | |
5 | .\" @(#)1.t 1.2 (Berkeley) %G% | |
6 | .\" | |
7 | .ds LH "4.3BSD IPC Primer | |
200989e9 MK |
8 | .ds RH Introduction |
9 | .LP | |
10 | .nr H1 1 | |
11 | .bp | |
12 | .ds RF "Leffler/Fabry/Joy | |
d60e8dff | 13 | .ds LF "\*(DY |
200989e9 MK |
14 | .ds CF " |
15 | .LG | |
16 | .B | |
17 | .ce | |
18 | 1. INTRODUCTION | |
19 | .sp 2 | |
20 | .R | |
21 | .NL | |
d60e8dff | 22 | One of the most important parts of 4.3BSD is the interprocess |
200989e9 MK |
23 | communication facilities. These facilities are the result of |
24 | more than two years of discussion and research. The facilities | |
d60e8dff | 25 | provided in 4.3BSD incorporate many of the ideas from current |
200989e9 MK |
26 | research, while trying to maintain the UNIX philosophy of |
27 | simplicity and conciseness. It is hoped that | |
28 | the interprocess communication | |
d60e8dff | 29 | facilities included in 4.3BSD will establish a |
200989e9 MK |
30 | standard for UNIX. From the response to the design, |
31 | it appears many organizations carrying out | |
32 | work with UNIX are adopting it. | |
33 | .PP | |
34 | UNIX has previously been very weak in the area of interprocess | |
d60e8dff | 35 | communication. Prior to the 4BSD facilities, the only |
200989e9 MK |
36 | standard mechanism which allowed two processes to communicate were |
37 | pipes (the mpx files which were part of Version 7 were | |
38 | experimental). Unfortunately, pipes are very restrictive | |
39 | in that | |
40 | the two communicating processes must be related through a | |
41 | common ancestor. | |
42 | Further, the semantics of pipes makes them almost impossible | |
43 | to maintain in a distributed environment. | |
44 | .PP | |
d60e8dff | 45 | Earlier attempts at extending the IPC facilities of UNIX have |
200989e9 | 46 | met with mixed reaction. The majority of the problems have |
d60e8dff | 47 | been related to the fact that these facilities have been tied to |
200989e9 | 48 | the UNIX file system; either through naming, or implementation. |
d60e8dff MK |
49 | Consequently, the IPC facilities provided in 4.3BSD have been |
50 | designed as a totally independent subsystem. The 4.3BSD IPC | |
200989e9 MK |
51 | allows processes to rendezvous in many ways. |
52 | Processes may rendezvous through a UNIX file system-like | |
53 | name space (a space where all names are path names) | |
54 | as well as through a | |
55 | network name space. In fact, new name spaces may | |
56 | be added at a future time with only minor changes visible | |
57 | to users. Further, the communication facilities | |
d60e8dff | 58 | have been extended to include more than the simple byte stream |
200989e9 MK |
59 | provided by a pipe-like entity. These extensions have resulted |
60 | in a completely new part of the system which users will need | |
61 | time to familiarize themselves with. It is likely that as | |
62 | more use is made of these facilities they will be refined; | |
63 | only time will tell. | |
64 | .PP | |
65 | The remainder of this document is organized in four sections. | |
66 | Section 2 introduces the new system calls and the basic model | |
67 | of communication. Section 3 describes some of the supporting | |
68 | library routines users may find useful in constructing distributed | |
69 | applications. Section 4 is concerned with the client/server model | |
70 | used in developing applications and includes examples of the | |
71 | two major types of servers. Section 5 delves into advanced topics | |
72 | which sophisticated users are likely to encounter when using | |
d60e8dff | 73 | the IPC facilities. |