linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Уроки
  • How it works
  • Симулятор
  • База знаний
  • Собеседование
Index
Categories
All entries
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
home/linux/kb/Процессы и ресурсы

kb/processes

Процессы, systemd и ресурсы Linux

Жизненный цикл процессов в Linux: systemd как PID 1, сигналы и состояния, cgroups v2 и namespaces, OOM killer, page cache, swap, PAM и capabilities. Глубокое погружение в то, как ядро управляет памятью и CPU, с практическими примерами и привязкой к урокам.

32 статей в категории

§ статьи

  • bash-strict-modeBash strict mode: set -euo pipefailТри флага в начале bash-скрипта которые превращают его из «прощающего всё» в «упасть на первой же ошибке». Без них баги молча копятся.
  • bpf-co-reBPF CO-RE - Compile Once Run EverywhereCO-RE - один скомпилированный eBPF-объект работает на разных kernel благодаря BTF (BPF Type Format). vmlinux.h - dump структур ядра. libbpf на runtime перезаписывает offsets. Заменяет BCC, не нужен LLVM в проде.
  • cgroupscgroups (v2)cgroups v2 - иерархическая виртуальная FS под `/sys/fs/cgroup` через которую ядро лимитирует CPU/память/I/O процессов. Docker/k8s/systemd пишут сюда.
  • cgroups-v2-deepcgroups v2 - unified hierarchy, PSI, eBPF controlcgroups v2 - один tree вместо отдельных hierarchies на controller. Чистая семантика, новые fields (memory.high, io.cost). PSI показывает resource pressure. eBPF может управлять resources. Default в RHEL 9, Ubuntu 22+.
  • chrony-and-ntpchrony и NTP - синхронизация времениNTP - протокол синхронизации часов (точность ~миллисекунды через интернет). На современных Linux реализация - `chronyd` (default) или `systemd-timesyncd` (lightweight).
  • chrootchroot - изоляция процесса в каталог`chroot()` - системный вызов меняющий apparent root каталог процесса (и его потомков). Лёгкая изоляция доступа к ФС. **НЕ заменяет [[namespaces]]/контейнеры** - root внутри chroot часто может выйти.
  • ebpf-basicseBPF - программируемый kerneleBPF - запуск sandboxed-программ в kernel без kernel-modules. Прицепляются к hooks (kprobe, uprobe, tracepoint, perf, socket, XDP). Verifier гарантирует завершение и safety. JIT компилирует в native. bpftool/libbpf/BCC - userspace tooling.
  • file-descriptorsFile descriptors (stdin, stdout, stderr)File descriptor - целое число, через которое процесс обращается к открытому файлу/сокету/pipe. У каждого процесса 0/1/2 = stdin/stdout/stderr.
  • heredocHere-doc и here-string: данные внутри скриптаHere-doc (`<<EOF ... EOF`) подаёт многострочный текст на stdin команды без временного файла. Here-string (`<<<`) - то же самое для одной строки.
  • io-uringio_uring - third-rank async I/O syscallio_uring - shared-memory очередь между userspace и kernel. SQE submit без syscall (с SQPOLL). CQE - completion. Поддержка read/write/accept/connect/recv/send. Заменяет aio+epoll для I/O-bound сервисов. CVE 2022-2024 - не enable бездумно.
  • kernel-modulesKernel modules - LKM, modprobe, signing, DKMSLKM - код, динамически загружаемый в kernel. modprobe резолвит зависимости через depmod. Подпись модуля для Secure Boot. DKMS пересобирает out-of-tree модули после kernel-upgrade. Lockdown mode запрещает загрузку неподписанных.
  • capabilitiesLinux capabilities - биты привилегийCapabilities дробят привилегии root'а на 40+ независимых битов: NET_ADMIN, SYS_PTRACE, и т.д. Можно дать процессу часть, не делая его полным root'ом.
  • namespacesLinux namespacesNamespaces - механизм ядра, который даёт процессу собственный изолированный view на ресурс (сеть, mount-points, PID, UID, IPC, hostname, time). На них построены все контейнеры.
  • load-averageLoad averageТри числа в `uptime` - экспоненциальные средние длины очереди процессов (R + D state) за 1, 5 и 15 минут. Имеет смысл только в контексте `nproc`.
  • mmapmmap - файлы и shared memory`mmap()` маппит файл (или анонимный регион) в virtual address space процесса. Любые read/write через указатель = операции с файлом. Основа shared memory.
  • oom-killerOOM killerOOM killer - механизм ядра, который выбирает и завершает процесс когда система упирается в лимит памяти. В контейнерах работает per-cgroup.
  • page-cachePage cache - диск в памятиPage cache - кеш в RAM для содержимого файлов. Любое чтение/запись ФС идёт через него. «Used» в free выглядит большим, но page cache - это availabe.
  • process-substitutionProcess substitution: <(cmd) и >(cmd)Bash-синтаксис `<(cmd)` подставляет команду как «псевдо-файл» на чтение. `>(cmd)` - на запись. Получаешь временный файл которого не нужно убирать.
  • seccompseccomp - фильтр системных вызововseccomp - kernel-level фильтр syscall'ов. Процесс декларирует «можно только эти», и kernel отсекает остальные. Основа sandbox'а Docker и Chrome.
  • selinux-apparmorSELinux и AppArmor - Mandatory Access ControlSELinux и AppArmor - это MAC: дополнительный слой контроля поверх обычных permissions. Запрещают процессу делать что не входит в его профиль/тип.
  • shebangShebang: первая строка скриптаПервая строка скрипта вида `#!/usr/bin/env bash` говорит ядру какой интерпретатор поднимать. Без shebang скрипт запускается через текущий shell - и в bash-режиме на проде ломается на /bin/sh.
  • sudosudo - выполнить от имени root`sudo` запускает команду от имени другого пользователя (обычно root) по правилам в `/etc/sudoers`. Стандартный путь эскалации привилегий.
  • swapSwap - когда RAM кончаетсяSwap - место на диске, куда ядро вытесняет редко используемые страницы памяти, когда RAM нужнее. Раздел или файл. Управляется `vm.swappiness` (0-100).
  • systemdsystemd - init и менеджер сервисовsystemd - init-система Linux: PID 1, который запускает всё остальное, следит за зависимостями, перезапускает упавшее, агрегирует логи.
  • systemd-drop-inssystemd drop-ins - override без правки оригиналаDrop-in - `.conf` файл в `<unit>.d/` каталоге, который подмешивается к unit-файлу. Способ переопределить любую директиву unit'а **не правя оригинальный файл** из пакета.
  • systemd-targetssystemd targets - runlevels по-новомуTarget - unit-файл `.target` который описывает желаемое состояние системы как набор зависимостей. Замена SystemV runlevels: `multi-user.target` ≈ runlevel 3, `graphical.target` ≈ runlevel 5.
  • systemd-timerssystemd timers - замена cronsystemd timer - unit-файл `.timer`, запускающий парный `.service` по расписанию или через интервал после события (boot, last-run). Замена cron с логами в [[cmd-journalctl]] и зависимостями.
  • systemd-resolvedsystemd-resolved - локальный DNS-stubsystemd-resolved - DNS stub-resolver, слушает на `127.0.0.53:53` и проксирует запросы на upstream-DNS, агрегируя данные от NetworkManager/DHCP/VPN. Управляется `resolvectl`.
  • virtual-memoryVirtual memory - виртуальные адреса, page tablesКаждый процесс видит свой 64-битный virtual address space. MMU переводит виртуальные адреса в физические через page tables. Это основа изоляции и mmap.
  • process-and-pidПроцесс и PIDПроцесс - это запущенная программа со своим PID, памятью, открытыми дескрипторами и UID. Все процессы образуют дерево, корень - init (PID 1).
  • signalsСигналы (SIGTERM, SIGKILL, SIGHUP)Сигнал - асинхронное уведомление процессу от ядра или другого процесса. TERM - попроси завершиться, KILL - убей сразу, HUP - перечитай конфиг.
  • systemd-unit-typesТипы systemd-юнитовЮнит - управляемый systemd ресурс. Расширение файла = тип: `.service` (демон), `.socket` (lazy-старт по сокету), `.timer`, `.mount`, `.path`, `.slice`/`.scope` (cgroup'ы), `.target` (группа).

← вернуться ко всем категориям базы знаний

Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки