Межпроцессное взаимодействие в FreeBSD организовано в коммуникационные домены. Важнейшие домены, поддерживаемые в настоящее время, включают локальный домен для взаимодействия процессов, выполняющихся на одной машине; домен IPv4 для взаимодействия процессов с использованием набора протоколов TCP/IP (четвертой версии) и домен IPv6, который является новейшей версией протоколов Интернета.
Большинство процессов ожидают, что при их запуске будут уже открыты три дескриптора. Этими дескрипторами являются 0, 1 и 2, более известные как стандартный ввод, стандартный вывод и стандартная ошибка соответственно. Обычно все три связываются с терминалом пользователя в процессе регистрации и наследуются запущенными пользователем процессами через fork и exec. Таким образом, программа может читать то, что набирает пользователь, читая стандартный ввод, и может посылать вывод на экран пользователю, записывая в стандартный вывод.
У каждого процесса есть свое собственное отдельное адресное пространство. Адресное пространство изначально разделено на три логических сегмента: кода или текста (text), данных и стека. Сегмент text является сегментом только для чтения и содержит машинные инструкции программы. Сегменты данных и стека можно и читать, и записывать. Сегмент данных содержит разделы инициализированных и неинициализированных данных программы, тогда как сегмент стека содержит стек приложения времени выполнения. Сегмент стека автоматически расширяется ядром по мере выполнения процесса.
Процессы организованы в группы процессов. Группы процессов используются для управления доступом к терминалам и предоставления средств распределения сигналов по совокупностям связанных процессов. Процесс наследует свою группу процесса от своего родительского процесса. Ядром предоставляются механизмы для изменения процессами своих групп процессов или групп процессов своих потомков. Создание новой группы процессов просто; значением новой группы процессов обычно является идентификатор создающего процесса.
Система определяет набор сигналов, которые могут быть доставлены процессу. Сигналы в FreeBSD сделаны по образцу аппаратных прерываний. Процесс может указать подпрограмму уровня пользователя в качестве обработчика, которому должен быть доставлен сигнал. Когда генерируется сигнал, его дальнейшее распространение блокируется до тех пор, пока он не будет перехвачен обработчиком. Перехват сигнала включает сохранение контекста текущего процесса и построение нового контекста, в котором будет запущен обработчик.
FreeBSD поддерживает многозадачное окружение. Каждая задача или поток исполнения называется процессом. Контекст процесса FreeBSD состоит из состояния пользователя, которое включает содержимое адресного пространства и окружения времени выполнения, и состояния ядра, включающего параметры планировки процесса, управление ресурсами и идентификационную информацию. Контекст включает все используемое ядром для обслуживания процесса. Пользователи могут создавать процессы, управлять ходом их выполнения и получать уведомления, когда состояние выполнения процесса изменяется.