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