О Unix-like

Поговорим вкратце о Unix-like. Разберем, что такое ядро, операционная система и дистрибутив.

Ядро

Под ядром подразумевается программа, которая определяет возможности операционной системы. Когда говорят Linux или BSD, то подразумевают именно ядро, а не операционную систему. Под возможностями операционной системы следует понимать такие вещи как работа с памятью, с сетевыми стеками (вроде TCP и UDP), различные алгоритмы работы с ними, различные очереди (они же queues) и т.д. Все эти возможности могут быть захардкодены в ядро, тогда это будет монолитное ядро. Или же могут подключаться в виде модулей, тогда это будет модульное ядро, а можно вообще все ненужное для работы конкретной железки повыбрасывать и оставить только необходимый минимум, тогда это будет микроядро. Вообщем с ядром надеюсь все ясно. Двигаем дальше.

Операционная система

Под операционной системой понимается набор программ. Все эти мелкие программки вроде ls, cat, grep, sed и т.д. вместе составляют операционную систему. На сегодняшний день почти любой Linux или BSD использует операционную систему GNU (под ней же понимается и лицензия в зависимости от контекста). Таким образом те, кто хотят создать (как сейчас модно называть) свою собственную «операционную систему» могут не заморачиваться с написанием различных утилит, драйверов и так далее поскольку есть уже готовые ядра вроде Linux и BSD и есть готовая операционная система GNU. Остается только выбрать какие программы добавить, а какие убрать (ну и можно еще добавить пару своих самописных) и вот тебе готовый «дистрибутив» о чем и пойдет речь далее.

Дистрибутив

Под дистрибутивом понимается набор ядра и операционной системы. Например, если мы видим надпись GNU/Debian Linux, то мы понимаем, что дистрибутив называется Debian, в качестве ядра используется Linux, а операционная система GNU.

Дистрибутивы же в свою очередь делятся на обычные дистрибутивы и на мета-дистрибутивы. Под мета-дистрибутивами понимаются дистрибутивы на базе которых создаются другие дистрибутивы и были собраны с нуля (linux from scratch). Например, Ubuntu создан на базе Debian. Значит Ubuntu дистрибутив, а Debian мета-дистрибутив. То же самое и по отношению к другим дистрибутивам вроде Red Hat Linux и CentOS Linux или Gentoo и т.д. Предположим вы собрали с нуля ядро Linux, установили GNU и подобрали программы, которые необходимы. Поздравляю! Вы создали мета-дистрибутив 😉

Предлагаю почитать пост о дистрибутивах.

P.S. О стандартах

Когда спрашиваешь «какой стандарт обеспечивает совместимость Unix-like систем», то многие наряду с POSIX ссылаются на Single Unix Specification (Единая спецификация для Unix систем), но Unix-like не Unix и не следует этому стандарту. Ему должны следовать например, System-V, MacOS и т.д. т.е. сертифицированные Unix системы.

Рекомендую к ознакомлению!

AT&T Unix
BSD Unix
Открыто по-умолчанию. История Open-Source и Red Hat (субтитры).