Inter-process communication has the following purposes:
1, data transmission, a process needs to send its data to another process, the amount of data sent between a byte to a few m;
2, sharing data, multiple processes want to manipulate the sharing of data, a process of data modification, other processes should immediately see;
3, notify the event, a process needs to send a message to another or a set of processes, notify them that something has happened;
4. Share resources and share the same resources among multiple processes.
In order to do this, the kernel is required to provide a lock and synchronization mechanism;
5, Process control, some processes want to fully control the execution of another process (such as the debug process), at this time the control process would like to be able to intercept the other process of all the sink and exception, and be able to know its state changes in time.
The two Linux interprocess communication evolved from the following parts:
Early UNIX interprocess communication: Includes pipeline, FIFO, signal.
System V-based interprocess communication: Includes system V Message Queuing, System V Semaphore (Semaphore), System V shared memory.
Based on the socket inter-process communication.
POSIX-based interprocess communication: includes POSIX Message Queuing, POSIX semaphore, and POSIX shared memory.
Linux interprocess Communication-Overview