878 Chapter 43
Although some of these facilities are concerned with synchronization, the general
term interprocess communication (IPC) is often used to describe them all.
Figure 43-1: A taxonomy of UNIX IPC facilities
As Figure 43-1 illustrates, often several facilities provide similar IPC functionality.
There are a couple of reasons for this:
z Similar facilities evolved on different UNIX variants, and later came to be
ported to other UNIX systems. For example, FIFOs were developed on System V,
while (stream) sockets were developed on BSD.
z New facilities have been developed to address design deficiencies in similar
earlier facilities. For example, the POSIX IPC facilities (message queues, sema-
phores, and shared memory) were designed as an improvement on the older
System V IPC facilities.
communication
data
transfer
message
byte
stream
shared
memory
synchronization
semaphore
file lock
fcntl())
flock())
signal
pseudoterminal
anonymous
mapping