---
tags: [linux]
verified: 2026-09-02
---

# Linux — план цикла статей для базы знаний

## Чем этот файл является

Замысел Linux-цикла: почему он такой, из чего состоит и чем отличается от предыдущего цикла по FreeBSD. Написан до того, как правила базы переехали в `CLAUDE.md`, и стайлгайд, который был в нём раньше, оттуда убран — он успел разойтись с действующими правилами и превратился во второй источник истины. Шаблон статьи, требования к оформлению, порядок ресёрча и правила проверки живут в [CLAUDE.md](./CLAUDE.md) и в разделе «Правила оформления заметок» в [README](./README.md).

Здесь осталось то, что относится к предметной области, а не к процессу.

### Чем Linux-цикл отличается от FreeBSD-цикла

Linux — не монолитная система. У FreeBSD есть base system, один init, один пакетный менеджер и одна точка правды; в Linux ядро отделено от всего остального, а init, пакеты и конфигурация зависят от дистрибутива. Из этого следует три вещи, определившие структуру цикла:

- статьи держатся ядра и общих механизмов, а не особенностей конкретной сборки;
- там, где дистрибутивная специфика неизбежна (пакеты, init, firewall), показываются два-три варианта: Debian/Ubuntu, RHEL/Fedora, Arch;
- в тексте явно разделено универсальное (ядро, системные вызовы, `/proc`, `/sys`) и то, что дистрибутив волен решать сам.

Сравнение с FreeBSD в конце каждой статьи — не дань симметрии: цикл писался для читателя, у которого база по FreeBSD уже есть, и аналогия с известной системой объясняет быстрее, чем описание с нуля.

---

## План статей

### 1. Файловая иерархия и FHS
- FHS (Filesystem Hierarchy Standard) — что стандартизировано, а что на усмотрение дистрибутива
- /proc и /sys — виртуальные ФС как интерфейс к ядру (в FreeBSD этого почти нет)
- /etc, /usr, /var, /opt, /srv — логика разделения
- Слияние /usr (UsrMerge) — зачем и кто уже сделал
- tmpfs, devtmpfs, sysfs, procfs, cgroup fs — виртуальные ФС
- Сравнение с FreeBSD: base system vs пакеты, /usr/local

### 2. systemd: init, сервисы, таймеры
- Архитектура systemd: PID 1, units, targets, dependencies
- Unit-файлы: service, timer, socket, mount, path — синтаксис и жизненный цикл
- systemctl: управление сервисами, enable/disable, mask
- Таймеры как замена cron
- Альтернативы: OpenRC (Gentoo/Alpine), runit (Void), s6
- Сравнение с FreeBSD: rc-система, rc.conf, service jails

> **Примечание:** journald и journalctl перенесены в статью 10 (Мониторинг и отладка), где они рассматриваются в контексте всей подсистемы логирования. systemd-networkd и systemd-resolved перенесены в статью 3 (Сеть), где они сравниваются с альтернативными сетевыми стеками.

### 3. Сеть: стек, конфигурация, firewall
- ip (iproute2) vs ifconfig — почему ip победил
- NetworkManager vs systemd-networkd vs /etc/network/interfaces — когда что
- systemd-resolved: DNS-резолвинг, split DNS, интеграция с networkd и NetworkManager
- Namespaces как основа сетевой изоляции (veth, bridge, macvlan)
- nftables vs iptables — архитектура, цепочки, таблицы
- XDP и eBPF-based networking — упоминание как эволюции dataplane (Cilium, подробнее об eBPF в статье 10)
- tc (traffic control) — базовые концепции
- /proc/sys/net/ — сетевые tunables
- Сравнение с FreeBSD: ifconfig, PF, netgraph

### 4. Пакетные менеджеры
- Два мира: deb (apt/dpkg) и rpm (dnf/yum/rpm)
- Arch: pacman и AUR
- Общие концепции: репозитории, зависимости, транзакции, GPG-подписи
- Flatpak, Snap, AppImage — песочницы для десктопного софта
- Сборка из исходников: configure/make/make install, checkinstall
- Сравнение с FreeBSD: pkg, порты, poudriere

### 5. Ядро: модули, параметры, сборка
- Архитектура Linux kernel: монолит с модулями
- /proc/sys/ и sysctl — runtime-параметры
- Модули: lsmod, modprobe, modinfo, /etc/modprobe.d/
- Подпись модулей (module signing) и Secure Boot — цепочка доверия от прошивки до модулей ядра (связь с hardening в статье 7)
- DKMS — автосборка модулей при обновлении ядра
- Параметры ядра (cmdline) через GRUB/systemd-boot
- Сборка кастомного ядра (make menuconfig) — когда нужно
- Сравнение с FreeBSD: sysctl, loader.conf, KLD, securelevel

### 6. Контейнеризация: namespaces, cgroups, Docker
- Linux namespaces: pid, net, mnt, uts, ipc, user, cgroup — фундамент изоляции
- cgroups v1 vs v2: контроль ресурсов
- Как Docker/Podman используют namespaces + cgroups + overlay FS
- Docker: images, containers, volumes, networking — архитектура
- Podman как rootless/daemonless альтернатива
- LXC/LXD — системные контейнеры (ближе к jail/VM)
- Сравнение с FreeBSD: jails, VNET, rctl

### 7. Безопасность: hardening, SELinux/AppArmor, аудит
- DAC → MAC: модель безопасности Linux
- SELinux: архитектура, контексты, политики, troubleshooting (audit2why/audit2allow)
- AppArmor: профили, enforce vs complain — проще чем SELinux, но менее гибок
- Landlock: LSM для application-level sandboxing (с ядра 5.13) — проще SELinux/AppArmor, не требует привилегий
- Capabilities: разделение root-привилегий (cap_net_bind_service и др.)
- seccomp: фильтрация системных вызовов
- auditd: настройка, правила, ausearch/aureport
- SSH hardening, fail2ban
- Сравнение с FreeBSD: MAC framework, securelevel, blacklistd, chflags

### 8. Файловые системы: ext4, XFS, Btrfs, LVM
- ext4 — дефолт: журналирование, limits, tunefs
- XFS — для больших файлов и высокой нагрузки
- Btrfs — CoW, снепшоты, субтома, send/receive (ближайший аналог ZFS)
- LVM: PV/VG/LV, снепшоты, thin provisioning — слой абстракции
- LUKS/dm-crypt: шифрование
- fstab, mount options, noatime, discard
- Сравнение с FreeBSD: ZFS (интеграция vs out-of-tree), UFS, GELI

### 9. Обновление и управление загрузкой
- GRUB2: конфигурация, rescue, multiple kernels
- systemd-boot: альтернатива для UEFI
- Обновление ядра: как работает в deb/rpm
- Btrfs snapshots для отката (snapper, timeshift)
- Live patching (kpatch, livepatch) — обновление ядра без ребута
- Dist-upgrade: стратегии (apt dist-upgrade, dnf system-upgrade)
- Сравнение с FreeBSD: freebsd-update, bectl, boot environments

### 10. Мониторинг и отладка
- journald и journalctl — структурированное логирование, фильтрация, следование, boot'ы (архитектурно часть systemd, но используется как основной инструмент диагностики)
- dmesg, kern.log, syslog vs journald
- /proc и /sys — чтение состояния системы
- top/htop, vmstat, iostat, sar (sysstat) — базовая диагностика
- strace, ltrace — трассировка
- perf: профилирование, flame graphs
- eBPF/bpftrace — динамическая трассировка (аналог DTrace), XDP для сетевой диагностики
- ss vs netstat
- Brendan Gregg's USE Method для Linux
- Сравнение с FreeBSD: DTrace, truss, procstat, systat, SIGINFO

### 11 (бонус). Cheatsheet
- Сводный quick reference по всем статьям
- Организация по задачам
- Карта статей

---

## Порядок написания

Рекомендуемый порядок совпадает с нумерацией — от фундамента к практике. Но можно адаптировать по интересу. Каждая статья должна быть самодостаточной, хотя и ссылаться на другие.

## Граф зависимостей между статьями

Статьи самодостаточны, но некоторые строятся на понятиях из предыдущих:

- Статья 3 (Сеть) → Статья 6 (Контейнеризация): namespaces, veth, bridge
- Статья 5 (Ядро) → Статья 6 (Контейнеризация): cgroups, модули
- Статья 5 (Ядро) → Статья 7 (Безопасность): module signing, Secure Boot
- Статья 6 (Контейнеризация) → Статья 8 (ФС): overlay FS
- Статья 2 (systemd) → Статья 10 (Мониторинг): journald
- Статья 3 (Сеть) → Статья 10 (Мониторинг): eBPF/XDP

## Примечание

Этот план — отправная точка. Можно изменить порядок, объединить или разделить темы, добавить специфичные статьи (например, отдельная статья по eBPF или по Kubernetes networking). План адаптируется по ходу работы.

Так и вышло: цикл перерос эти десять пунктов. К ним добавились статьи о пользователях, группах и PAM и о времени и синхронизации, а диагностика производительности выделилась в отдельное семейство — карта инструментов по слоям системы и восемь справочников команд к ней. Актуальный состав всегда виден в [README](./README.md) и в [сводной карте](./linux-map-cheatsheet.md); этот файл описывает замысел и шаблон, а не текущий перечень.

---

## Связанные заметки

- [Linux — сводный cheatsheet](./linux-map-cheatsheet.md) — карта готовых статей цикла
- [FreeBSD — сводный cheatsheet](./freebsd-cheatsheet.md) — карта статей предыдущего цикла, взятого за образец
- [Устройство ОС — план цикла статей](./os-knowledge-base-plan.md) — план соседнего цикла: те же механизмы с позиции того, кто их реализует
