Linux vs Unix vs macOS

Тема дорожной карты · Linux & Unix Fundamentals

«Unix» — это семейство (и торговая марка), охватывающее наследников AT&T и сертифицированные системы вроде AIX, Solaris и HP-UX. Linux — это Unix-подобное ядро в паре с GNU userland: POSIX-совместимое, но без сертификации. macOS построена на Darwin (сертифицированный Unix) с BSD userland, поэтому многие флаги отличаются от GNU (sed -i '' против sed -i, BSD ls против GNU ls). Для портируемых скриптов держитесь POSIX или ставьте GNU coreutils через brew на macOS.

Как это работает

Linux vs Unix vs macOS начинается с понимания, что Linux — это ядро; "дистрибутив Linux" — это ядро + GNU userland + init-система + пакетный менеджер + подборка софта. Основные семейства: Debian (Ubuntu, Mint, Pop!_OS — apt), Red Hat (RHEL, Fedora, Rocky, Alma — dnf/yum), Arch (rolling release, pacman), SUSE (zypper). Большинство серверов — Debian/Ubuntu LTS или RHEL-семейство. В контейнере или на сервере вы живёте в shell (bash, zsh, sh) — GUI опционален.

Когда применять

Ubuntu LTS или Debian — для general-purpose серверов: большое сообщество, предсказуемые релизы, огромная база пакетов. RHEL/Rocky/Alma — когда важны corporate compliance или сертификации. Arch / Fedora — как power-user desktop со свежими пакетами. Для embedded / kiosk / appliance — Buildroot, Alpine, Yocto. Большинство облачных образов дефолтят на Ubuntu LTS не зря.

Типичные ошибки

Ловушки Linux vs Unix vs macOS: прыжки между дистрибутивами в середине проекта и переучивание имён пакетов + путей вместо мастерства одного; путаница ядра и дистрибутива ("ядро Linux Mint" не имеет смысла — ядро одно); desktop-дистрибутив на сервере (больше поверхности атаки, больше bloat); установка через случайные shell-пайпы (curl | bash без инспекции) и доверие тому, что скрипт делает под root.

Связанные понятия

Полезные ресурсы