|
|
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.