This is a collection of mini-projects I did while learning Linux inter-process communication (IPC).
- "Linux Inter Process Communication (IPC) from Scratch" course on Udemy by Abhishek Sagar
- The Linux Programming Interface by Michael Kerrisk
This repo contains several projects (each of them has a README providing more information), organized as follows:
-
posix_message_queues-- IPC via POSIX message queues (the server process receives integers sent by the client process) -
posix_shared_memory-- IPC via POSIX shared memory (the reader processes receive integers sent by the writer process) -
routing_table_manager-- IPC via UNIX domain sockets, signals, and shared memory (the server process maintains a routing table that is synchronized across all clients) -
unix_domain_sockets-- IPC via stream-based UNIX domain sockets (the server process computes sums of values that are sent out by clients)
Binaries can be compiled using cmake and make, as follows:
git clone https://github.com/alexandra-zaharia/Linux-IPC.git
cd Linux-IPC
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=../bin
make && make install
cd ../bin
From bin, cd into the desired directory and execute the binary files.