Skip to main content
Minitalk demonstrates inter-process communication (IPC) using only UNIX signals SIGUSR1 and SIGUSR2 to transmit messages between a server and client at the bit level.

Overview

Minitalk is a minimalist communication program that implements a client-server architecture using UNIX signal handling. The system transmits text messages by encoding each character into individual bits and sending them as signals, showcasing low-level process communication techniques.

Key Features

Signal-Based Communication

Uses SIGUSR1 and SIGUSR2 signals for inter-process communication

Binary Transmission

Transmits messages bit by bit with precise timing control

PID-Based Addressing

Client connects to server using process ID (PID)

Lightweight Implementation

Minimal dependencies with custom printf implementation

Quick Start

Get started with Minitalk in just a few steps:

Build the Project

Compile the server and client executables

Run the Server

Start the server and get its PID

Send Messages

Use the client to transmit messages to the server

API Reference

Explore the core functions and usage

How It Works

Minitalk works by converting each character into its binary representation and sending individual bits as UNIX signals:
  1. Server listens for SIGUSR1 (bit 0) and SIGUSR2 (bit 1) signals
  2. Client sends the server’s PID and message as command-line arguments
  3. Each character is transmitted as 8 bits using signal sequences
  4. Server reconstructs characters from received bits and displays them

Get Started

Follow our quickstart guide to build and run Minitalk in minutes

Build docs developers (and LLMs) love