Перейти к содержанию

Linux

Linux — семейство Unix-подобных операционных систем на базе ядра Linux, включающих тот или иной набор утилит и программ проекта GNU, и, возможно, другие компоненты. Как и ядро Linux, системы на его основе создаются и распространяются в соответствии с моделью разработки свободного и открытого программного обеспечения.

Linux[200]

Разделы

  • 1. Архитектура Linux и основы ОС — kernel space vs user space, syscalls (fork, exec, read, write), процессы и потоки, systemd и unit-файлы, targets (runlevels), FHS; практика: загрузка до multi-user.target, разбор unit-файла, strace.

  • 2. Файловая система и диски — inodes, жёсткие и символьные ссылки, ext4 и XFS, mount/fstab, LVM (PV, VG, LV), RAID (0/1/5/10), квоты; практика: LVM и расширение без downtime, восстановление файла по inode, причина «No space left on device».

  • 3. Пользователи, права и безопасность — UID/GID, chmod и setuid/setgid/sticky, ACL, sudo (NOPASSWD, secure_path), PAM, SELinux и AppArmor (концепции и базовое использование); практика: доступ через ACL, разбор «permission denied» без chmod 777.

  • 4. Процессы, CPU, память — PID/PPID, переключение контекста, load average, OOM Killer, память (RSS, VSZ, page cache, swap), nice/renice, cgroups (база); практика: процесс, съедающий память, разница high load vs high CPU, ограничение CPU/памяти через cgroups.

  • 5. Сеть в Linux — стек TCP/IP, iproute2 (ip, ss), ARP и маршрутизация, NAT/conntrack, DNS (resolv.conf, nsswitch.conf), iptables/nftables (концепции); практика: «доступен локально, но не извне», проблема с DNS, ss vs netstat.

  • 6. Логи и observability — journald, rsyslog, logrotate, логи ядра, auditd (база); практика: почему сервис не стартует, настройка logrotate, фильтр логов за период.

  • 7. Bash и shell scripting — пайпы и перенаправления, коды выхода, xargs, trap, подоболочки, переменные окружения, Bash strict mode; практика: скрипт проверки состояния сервиса, корректная обработка ошибок.

  • 8. Управление пакетами и сборка ПО — apt, yum/dnf, приоритеты репозиториев, основы rpm и deb, динамическая и статическая линковка (ldd).

  • 9. Linux и контейнеры — namespaces, cgroups, overlayfs, capabilities, chroot vs контейнер; практика: namespaces контейнера, ограничение ресурсов и сравнение с bare metal.

  • 10. Troubleshooting: подход production-инженера — типовые кейсы (тормозит, закончился диск, сервис не стартует, нет сети, упал после рестарта); алгоритм: CPU/память/диск, логи, сеть, права, последние изменения.

  • 11. Дополнительные материалы — практические разборы для интервью и эксплуатации: кто пишет в файл (lsof, fuser, strace).