POSIX APIs & Concurrency
Write real Linux system software using POSIX — file descriptors, processes, IPC mechanisms, sockets, threads, and synchronisation primitives.
POSIX File I/O
open/read/write/close, file descriptors, O_flags, ioctl, mmap, and I/O multiplexing with select/poll/epoll.
Processes & fork()
fork/exec/wait, copy-on-write, process groups, sessions, daemon creation, and zombie process reaping.
Signals
sigaction, signal masks, blocked/pending/caught states, real-time signals, and the self-pipe trick.
UNIX Sockets
TCP/UDP socket API, server/client patterns, non-blocking I/O, and UNIX domain sockets for IPC.
Pthreads
pthread_create/join/detach, thread attributes, stack size, CPU affinity, and thread-local storage.
Mutexes & Semaphores
pthread_mutex, condition variables, POSIX semaphores, rwlocks, and avoiding deadlocks and priority inversion.
Pipes & Shared Memory
Anonymous & named pipes, POSIX shared memory (shm_open), message queues (mq_open), and mmap IPC.