Unix è un sistema operativo nato pensando ad un paradigma di programmazione a scambio di messaggi, in cui le varie attività parallele non condividono spazi di memoria in comune. La multiprogrammazione in ambiente Unix è quindi tradizionalmente basata sul concetto di processo, anche se successive estensioni hanno introdotto concetti nuovi come le zone di memoria condivisa o i processi multithread.
In ogni caso, se non altro per motivazioni di ordine storico, andiamo ad analizzare la programmazione concorrente in ambiente Unix cominciando proprio dalla programmazione multiprocesso.