Дистрибутивы Linux¶
Корневые ветки¶
- Debian — исходная gnu/linux ветка, основа Ubuntu, Mint, Proxmox VE, Raspberry Pi OS и десятков других.
- Red Hat — RHEL как enterprise-ветка; исторически «Red Hat Linux» эволюционировал в Fedora/RHEL-экосистему:
- RHEL — флагман, платный enterprise.
- Fedora — upstream, тестовый полигон для RHEL.
- CentOS Stream — rolling между Fedora и RHEL.
- Rocky Linux, AlmaLinux — RHEL-совместимые community enterprise (после смерти классического CentOS).
- Oracle Linux — RHEL-совместимый, но vendor flavored.
- Slackware — старейшая, минималистичная, без жёсткого dependency-менеджера.
- Arch Linux — rolling release, KISS-философия, AUR как соц-надстройка.
- Gentoo — source-based, всё собирается под себя через
portage/emerge. - SUSE — openSUSE (Leap/Tumbleweed) и SLES (enterprise).
- Alpine Linux — musl + busybox, любимец контейнеров и минимальных образов.
- Void Linux — независимая, runit вместо systemd, пакеты
xbps. - BSD-семейство — OpenBSD, FreeBSD, NetBSD. Не Linux, отдельный мир.
- illumos / Solaris lineage — OpenIndiana и подобные. Отдельная UNIX-ветка, не Linux, но иногда мелькает в инфраструктурных разговорах (ZFS родом отсюда).
Отличия¶
База системы: glibc vs musl¶
- glibc — у большинства классики (Debian, RHEL, SUSE, Arch, Gentoo, Void-glibc). Жирнее, совместимее с прекомпилированными бинарниками.
- musl — у Alpine и нескольких нишевых. Меньше, проще, часто безопаснее по поверхности, но иногда ломает совместимость с бинарниками и некоторыми зависимостями (DNS-резолвер, thread-stack defaults, locale-handling).
Набор базовых утилит¶
- Почти везде GNU coreutils.
- В минималистичных/альтернативных (Alpine, embedded) — busybox или toybox. Команды те же, поведение слегка другое: иногда нет флагов, иногда другое поведение по умолчанию.
Формат пакетов и менеджер¶
Влияет на: как ставить, как обновляться, как решаются зависимости, как устроены репозитории.
- Debian —
.deb+apt/dpkg. - RHEL / Fedora / Rocky / Alma —
.rpm+dnf(раньшеyum) +rpm. - SUSE —
.rpm+zypper. - Arch —
.pkg.tar.zst+pacman. Плюс AUR как огромная пользовательская «соц-надстройка». - Gentoo — исходники/
ebuild+portage(emerge). Ставишь, собирая под свой CPU/флаги. - Alpine —
.apk+apk. - Void —
.xbps+xbps.
Формат пакета — это не всё: важнее политика обновлений и контроль качества репозиториев.
Модель релизов и обновлений¶
Самое важное при выборе под сервер.
- Stable / LTS (Debian stable, RHEL/Rocky/Alma, SLES) — медленные обновления, зато предсказуемо и долго поддерживается. Дефолт для прода.
- Fixed releases (Fedora, openSUSE Leap) — относительно свежо, но с регулярными апгрейдами версии (каждые 6–12 месяцев).
- Rolling release (Arch, openSUSE Tumbleweed, Void) — всегда свежее, но выше риск «сломалось после апдейта». Нужен режим «админ следит».
- Source-based (Gentoo) — максимальный контроль, платишь временем сборки и сложностью.
Система инициализации и сервис-менеджмент¶
- systemd — Debian, RHEL, Fedora, SUSE, Arch и т.д. Де-факто стандарт.
- OpenRC — Alpine, Gentoo (опционально). Минимализм, скрипты ближе к классическому SysV.
- runit — Void. Простые директории-сервисы, прозрачное логирование.
Это меняет: как пишутся юниты/скрипты, как дебажить сервисы, как настраивается логирование
(journalctl vs /var/log/*).
Безопасность и патчи¶
Разница в:
- скорости доставки security fix'ов;
- backport'ах — когда фикс тащат в старую версию пакета без обновления до «самого нового»;
- подходе к hardening и сборкам пакетов;
- SELinux/AppArmor по умолчанию и культуре использования.
Пример: RHEL/Fedora мир дружит с SELinux сильнее, Debian/Ubuntu — чаще AppArmor (хотя можно и так, и так).
Экосистема и «как принято» разворачивать софт¶
- RHEL-семейство — сильнее enterprise-практики, совместимость, сертификации, SELinux.
- Debian-семейство — огромная база пакетов и привычные гайды «для всех».
- Arch — документация-энциклопедия (Arch Wiki), но rolling.
- Alpine — любимец контейнеров и минимальных образов (Docker base images).
ABI-совместимость и «можно ли ставить чужие бинарники»¶
- glibc-дистрибутивы обычно лучше для «скачал бинарник — запустил».
- Alpine/musl иногда требует слоя совместимости (
gcompat) или пересборки под musl. - RPM ≠ автоматически RHEL-совместимость: важны версии библиотек, политика, макросы сборки, ABI, репозитории. Rocky и Alma — именно про совместимость с RHEL на уровне бинарников.