open atlas
↑ К треку
Linux: операционная система LIN · 01 · 02

Дистрибутивы

Дистрибутив Linux — это одно и то же ядро, обёрнутое в разные решения для userland: GNU coreutils, библиотека C, пакетный менеджер, настройки по умолчанию. Debian/Ubuntu, RHEL/Fedora и Arch разделяют ядро, но отличаются форматом пакетов, каденцией релизов и философией.

LIN Junior ◷ 19 min
Уровень
ОсновыJuniorMiddleSenior

«Установи Linux» — бессмысленная инструкция, пока ты не ответишь: какой именно? Ubuntu? Debian? Fedora? Arch? AlmaLinux? Все они запускают одно и то же ядро с kernel.org — но за этим они по-настоящему разные системы. Различия имеют значение: пакет, который устанавливается через apt на Ubuntu, требует dnf на Fedora; каденция обновлений безопасности, подходящая для стартапа, может быть неправильной для банка. Понимание того, что такое дистрибутив, позволяет рассуждать о том, какой из них подходит для какой ситуации — и не копировать чужую документацию вслепую.

Цель

После этого урока ты сможешь описать, что дистрибутив добавляет поверх ядра Linux, объяснить различия между семействами Debian/Ubuntu, RHEL/Fedora и Arch, а также выбирать между ними исходя из каденции релизов и модели поддержки.

1

«Linux» — это ядро, а не операционная система. Ядро на kernel.org обрабатывает планирование процессов, управление памятью, драйверы устройств, syscall-интерфейс — и ничего больше. В него не входит оболочка, текстовый редактор, пакетный менеджер или библиотека C. Чтобы получить рабочую систему, нужен userland — и именно это предоставляет дистрибутив.

Слой userland почти повсеместно включает:

  • GNU coreutilsls, cat, cp, grep, awk, bash и ~100 других базовых утилит
  • glibc (или musl для минимальных образов) — стандартная библиотека C, с которой линкуется каждая скомпилированная программа
  • Пакетный менеджер — механизм установки, обновления и удаления программного обеспечения
  • Настройки по умолчанию — какая система инициализации, какой редактор, какой сетевой менеджер, какая политика безопасности

Ядро — лишь малая часть того, с чем ты реально взаимодействуешь изо дня в день.

2

Семейство Debian/Ubuntu использует пакеты .deb и apt. Debian — родительский дистрибутив, известный стабильностью и очень длинным циклом релизов (примерно два года между мажорными релизами, затем многолетняя поддержка безопасности). Debian stable консервативен: пакеты старые, но проверенные временем.

Ubuntu — производный от Debian, выходит каждые шесть месяцев (LTS-релизы каждые два года с пятилетней поддержкой безопасности). Ubuntu сделал Linux пригодным для десктопного использования и теперь является доминирующим выбором для облачных серверов. Когда ты создаёшь EC2-инстанс и выбираешь «Ubuntu 24.04», ты получаешь экосистему Debian с настройками Ubuntu.

# Операции с пакетами Debian/Ubuntu
sudo apt update           # обновить индекс пакетов
sudo apt install nginx    # установить пакет
sudo apt upgrade          # обновить все установленные пакеты
dpkg -l nginx             # просмотреть установленный пакет
3

Семейство RHEL/Fedora использует пакеты .rpm и dnf. Red Hat Enterprise Linux (RHEL) — коммерческий продукт с энтерпрайзной поддержкой. Fedora — upstream-площадка, куда новые функции попадают первыми, прежде чем быть закалёнными в RHEL. CentOS был бесплатным rebuild’ом RHEL; после его окончания жизни его место заняли AlmaLinux и Rocky Linux.

Семейство RHEL доминирует в регулируемых отраслях (финансы, здравоохранение, госсектор), потому что Red Hat предлагает долгосрочные коммерческие контракты поддержки и сборки с сертификацией FIPS. Когда ты видишь «RHEL 9», это обязательство поддержки на десять лет с единственной версией ядра, получающей бэкпортированные патчи безопасности, а не обновления версий.

# Операции с пакетами RHEL/Fedora
sudo dnf install nginx    # установить пакет
sudo dnf update           # обновить все установленные пакеты
rpm -qi nginx             # запросить информацию об установленном пакете

Формат пакетов (.rpm против .deb) — самое заметное различие, но более глубокое различие — в модели поддержки и философии обновлений.

4

Arch Linux — крайность rolling-release. Нет «Arch 2024» — ты устанавливаешь один раз, а система непрерывно обновляется до последних upstream-версий. Пакеты появляются через часы после upstream-релизов. Это означает передовое программное обеспечение и частые поломки — полезно для разработчиков, которым нужны новые функции ядра, не для продакшн-серверов.

В Arch также минимум настроек по умолчанию: нет GUI-установщика, нет предварительно настроенных сервисов, нет предопределённого пользователя. Ты строишь нужную систему с нуля. Его ценность столь же педагогическая, сколь и практическая: ты узнаёшь, что именно делает каждый компонент, потому что сам его выбрал.

# Операции с пакетами Arch
sudo pacman -Syu          # обновить всю систему
sudo pacman -S nginx      # установить пакет

Manjaro и EndeavourOS — производные от Arch с добавленным установщиком и более разумными настройками по умолчанию.

5

Что одинаково во всех дистрибутивах. Само ядро Linux — один и тот же бинарник с kernel.org — ведёт себя идентично независимо от того, какой дистрибутив его поставляет. Bash-скрипт, использующий только POSIX-функции и стандартные GNU-утилиты, запускается на всех без модификации. Syscall стабильны: код, вызывающий read() и write(), скомпилированный на Debian, запускается на RHEL без перекомпиляции (ABI гарантирован). systemd — система инициализации на всех основных дистрибутивах. /proc и /sys открывают те же данные ядра везде. Знания из этого трека переносимы между дистрибутивами; мы будем отмечать редкие места, где это не так.

Разбор примера

Выбери правильный дистрибутив для двух сценариев.

Сценарий А: Ты развёртываешь микросервис обработки платежей для банка, которому требуется ОС с поддержкой от вендора, обязательством патчей безопасности на пять лет, FIPS 140-2 сертификацией и процессом управления изменениями, запрещающим неожиданные обновления версий пакетов.

Ответ: RHEL (или AlmaLinux/Rocky Linux как бесплатные альтернативы). Десятилетний жизненный цикл, стабильные версии пакетов с бэкпортированными патчами и коммерческий контракт поддержки Red Hat — всё это соответствует требованиям. Шестимесячный цикл релизов Fedora является дисквалифицирующим фактором.

Сценарий Б: Ты запускаешь персональный сервер разработки для собственного проекта и хочешь последних функций ядра (eBPF, улучшения io_uring), широкого выбора пакетов и отсутствия затрат на лицензирование.

Ответ: Ubuntu 24.04 LTS или Debian 12. Оба предлагают современные ядра, большую экосистему, отсутствие затрат и многолетнюю поддержку. Arch соблазнителен свежестью, но добавляет операционные накладные расходы без явного преимущества перед Ubuntu для этого случая.

Почему это работает

macOS — не дистрибутив Linux, а Unix BSD-происхождения (ядро Darwin). В нём нет apt, dnf или pacman. Homebrew — сторонний пакетный менеджер для macOS, не связанный с миром пакетов Linux. Когда в этом треке написано «установи через apt», это относится только к Debian/Ubuntu. На своём Mac в разработке используй Docker для запуска контейнера Linux, если хочешь точно следовать командам apt.

Частая ошибка

«Просто используй последнее ядро» — распространённая ошибка для продакшн-серверов. Большинство дистрибутивов поставляют версию ядра, значительно отстающую от upstream, и бэкпортируют исправления безопасности в неё. Сервер на Debian 12 с ядром 6.1.x будет получать патчи безопасности годами — но это бэкпорты, а не обновления версий. Если ты вручную устанавливаешь mainline-ядро с kernel.org, ты сам несёшь ответственность за патчи безопасности. Придерживайся ядра, предоставляемого дистрибутивом, если нет конкретной обоснованной причины этого не делать.

Проверь себя
Викторина

Bash-скрипт, использующий только стандартные GNU-утилиты (grep, awk, sort), корректно работает на Ubuntu. Что произойдёт, если скопировать его на сервер RHEL?

Итог

Дистрибутив Linux объединяет ядро Linux с userland (GNU coreutils, glibc, пакетный менеджер и настройки по умолчанию). Ядро одинаково во всех дистрибутивах; различия — в формате пакетов (.deb против .rpm), пакетном менеджере (apt против dnf против pacman), каденции релизов (стабильный/LTS против rolling) и модели поддержки (сообщество против коммерческой). Debian/Ubuntu (apt, .deb) доминирует на облачных серверах; RHEL/Fedora (dnf, .rpm) доминирует в энтерпрайзе и регулируемых отраслях; Arch — rolling-release для разработчиков, которым нужны новейшие версии и контроль. Syscall, инструментарий GNU и systemd работают одинаково на всех них.

Практика

Начни сверху. Задачи идут от простого к сложному: вспомнить факт, применить к случаю, затем senior-уровень. Открой, попробуй, потом открой ответ.

вспомнитьприменитьуглубить0 из 4 завершено

Что-то непонятно?

Задай вопрос по этому уроку. Вопросы анонимны и попадают напрямую автору — урок станет лучше.

хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources2
expand
  1. 01
  2. 02

Trademarks belong to their respective owners. Editorial reference only.