UNIX-подобные системы включают системы традиционных производителей, такие, как Solaris и HP-UX, редакции на основе Linux, такие, как Red Hat, Debian, Suse и Slackware, и редакции на основе BSD, такие, как FreeBSD, NetBSD, OpenBSD и Darwin.
Они работают на компьютерах от портативных до суперкомпьютеров. Это предпочтительные операционные системы для большинства многопроцессорных, графических и векторных систем, широко использующиеся для первоначальной задачи разделения времени. Будучи наиболее обычной платформой для обеспечения сетевых служб Интернета (от FTP до WWW), они в целом являются наиболее переносимой операционной системой, когда-либо разработанной. Частью эта переносимость обязана языку реализации систем, С [Kernighan & Ritchie, 1989] (который сам является широко переносимым языком), а частью обязана элегантному дизайну системы.
Начиная с отправной точки в 1969 г. [Ritchie & Thompson, 1978], система UNIX развилась в нескольких расходящихся и вновь сходящихся направлениях. Оригинальные разработчики продолжали развивать современный технический уровень в девятой и десятой редакциях UNIX в рамках AT&T Bell Laboratories и их преемника UNIX Plan 9. Тем временем AT&T лицензировала UNIX System V в качестве продукта до продажи его Novell. Novell передала торговую марку UNIX X/OPEN и продала исходный код и права на распространение Santa Cruz Operation (SCO). Как на System V, так и на девятую редакцию UNIX сильно повлияло Berkley Software Distributions, созданное группой Computer System Research Group (CSRG) Калифорнийского университета в Беркли. Операционная система Linux, хотя она и разработана независимо от других вариантов UNIX, реализует интерфейс UNIX. Таким образом, приложения, разработанные для работы на других основанных на UNIX платформах, легко могут быть перенесены для работы на Linux.
Вычисления приоритета, использованные в алгоритме кратковременного планирования, разбросаны в различных частях системы. Периодически запускаются две процедуры, schedcpuQ и roundrobinQ. SchedcpuQ пересчитывает приоритеты потоков раз в секунду, используя формулу 4.2, и обновляет значение kg_slptime для потоков, заблокированных вызовом sleepQ. Процедура roundrobinQ запускается 10 раз в секунду и заставляет систему перепланировать потоки в (непустой) очереди с самым высоким приоритетом в режиме карусели, что дает каждому потоку квант времени в 100 миллисекунд.
Процесс представляет собой выполняющуюся программу. У процесса должны быть системные ресурсы, такие, как память и лежащий в основе процессор. Ядро поддерживает иллюзию одновременного выполнения множества процессов, распределяя системные ресурсы среди набора процессов, которые готовы к выполнению. На многопроцессорной машине несколько процессов могут действительно выполняться параллельно.
Некоторые из коммуникационных доменов, поддерживаемые механизмом I2С сокетов, предоставляют доступ к сетевым протоколам. Эти протоколы реализованы в виде отдельного программного уровня, находящегося в ядре логически ниже программного обеспечения сокетов. Ядро предоставляет много дополнительных служб, таких, как управление буферами, маршрутизация сообщений, стандартизированные интерфейсы к протоколам и интерфейсы к драйверам сетевых интерфейсов для использования различных сетевых протоколов.
Межпроцессное взаимодействие в FreeBSD организовано в коммуникационные домены. Важнейшие домены, поддерживаемые в настоящее время, включают локальный домен для взаимодействия процессов, выполняющихся на одной машине; домен IPv4 для взаимодействия процессов с использованием набора протоколов TCP/IP (четвертой версии) и домен IPv6, который является новейшей версией протоколов Интернета.
Исторически пользователи взаимодействовали с системой, используя подключенные к компьютеру через жестко запаянные линии связи терминалы. Хотя фиксированные терминалы в значительной степени остались в истории, обработка символов, осуществляемая для ввода/вывода с клавиатуры, по-прежнему важна. Наиболее обычный вид сеанса пользователя в FreeBSD использует псевдотерминал. Псевдотерминал состоит из пары устройств, называемых ведущим (master) и ведомым (slave) устройствами.