Как устроена Linux изнутри: карта системы

Рейтинг: 67.6% · 8 голосов
Вводный курс для новичков: что такое Linux и открытый код, командная строка, файлы и права, устройство ОС, учебный стенд. Мягкий старт перед LPIC-1.
Ответить
Аватара пользователя
Sergey_Sysadmin
Сообщения: 134
Зарегистрирован: 11 май 2026, 05:31

Как устроена Linux изнутри: карта системы

Сообщение Sergey_Sysadmin »

Урок 4. Как устроена Linux изнутри: карта системы

До этого мы ставили систему и щёлкали команды, не задумываясь, что происходит под капотом. Этот урок - карта. Не зубрёжка, а понимание: где живёт ядро, что такое процесс, почему служба запускается сама, куда положили твои файлы и как машина вообще доходит от кнопки питания до приглашения в терминале. Когда в голове есть эта карта, ты перестаёшь бояться слов "демон", "монтирование" и "systemd" и начинаешь понимать, что искать, когда что-то сломалось.

Изображение

Как это работает

Представь Linux как здание с двумя этажами. Внизу - ядро (kernel). Это единственная программа, которая напрямую командует железом: процессором, памятью, диском, сетевой картой. Только ядро имеет право трогать оборудование, и работает оно в защищённом режиме (kernel space).

Сверху - пространство пользователя (user space). Здесь живут все остальные программы: твой браузер, командная оболочка, веб-сервер. Они не лезут к железу руками. Когда программе нужно прочитать файл или отправить пакет в сеть, она вежливо просит ядро через системный вызов (syscall). Ядро проверяет права и делает работу. Такое разделение - причина, почему один кривой процесс обычно не роняет всю систему.

Любая запущенная программа - это процесс. У каждого есть номер PID (уникальный идентификатор) и владелец. Процессы рождаются от других процессов, образуя дерево. Корень дерева в современной системе - systemd с PID 1, он запускается первым и порождает всё остальное.

Программы, которые работают в фоне без терминала и обслуживают систему (логирование, сеть, печать, веб-сервер), называют демонами или службами. Их запуском, остановкой и перезапуском заведует systemd - менеджер служб. Ты говоришь ему "подними nginx", а он сам разруливает зависимости и порядок.

Ядро общается с железом через модули - драйверы, которые подгружаются по мере необходимости. Воткнул USB-флешку - ядро подхватило нужный модуль, и устройство появилось в системе.

Файлы в Linux - это одно общее дерево, растущее из корня /. Никаких C: и D:, как в Windows. Диски, разделы и даже флешки подключаются (монтируются) в какую-то папку этого дерева. Структура папок стандартизирована (FHS), поэтому /etc означает настройки на любом дистрибутиве.

Команды и примеры

Посмотреть, кто ты и как зовётся машина:

Код: Выделить всё

whoami        # имя текущего пользователя
hostname      # сетевое имя машины
uname -a      # ядро, версия, архитектура
Список процессов и живой монитор нагрузки:

Код: Выделить всё

ps aux            # снимок всех процессов: владелец, PID, CPU, память
ps aux | grep ssh # найти процессы по имени
top               # интерактивный монитор (выход - q)
Если стоит htop - он удобнее top, но его обычно ставят отдельно.

Службы через systemd (команды одинаковы во всех дистрибутивах):

Код: Выделить всё

systemctl status sshd    # состояние службы
systemctl start nginx    # запустить
systemctl enable nginx   # включить автозапуск при загрузке
journalctl -u nginx      # логи именно этой службы
Заглянуть в железо и модули:

Код: Выделить всё

lsblk            # диски и разделы деревом
lspci            # устройства на шине PCI
lsmod            # загруженные модули ядра
Дерево файловой системы - короткая шпаргалка:

Код: Выделить всё

/      корень всего
/etc   конфиги системы и служб
/home  домашние папки пользователей
/var   изменяемые данные: логи (/var/log), кеши
/usr   установленные программы и их файлы
Установка пакетов. Тут дистрибутивы расходятся - покажу оба семейства.

Debian 13 и Ubuntu 24.04 (менеджер apt):

Код: Выделить всё

sudo apt update            # обновить список пакетов
sudo apt install htop      # поставить пакет
RHEL 10 и Fedora 41+ (менеджер dnf, пришёл на смену старому yum):

Код: Выделить всё

sudo dnf install htop      # dnf сам обновит метаданные
Сеть в двух командах: какой у нас IP и куда уходит трафик.

Код: Выделить всё

ip a               # адреса всех интерфейсов
ip route           # таблица маршрутизации (где шлюз)
Частые грабли
  • Ищут диски C: и D:. Их нет. Всё - одно дерево от /, а флешки и диски монтируются в папки. Смотри lsblk.
  • Путают остановить и выключить службу. start/stop - прямо сейчас, на один сеанс. enable/disable - про автозапуск после перезагрузки. Это разные вещи, нужны обе.
  • Пробуют kill процесса с PID 1. Это systemd, его так просто не убить, и не надо. Чини конкретную службу через systemctl.
  • Учат команды из старых статей: service и yum. На современных системах это systemctl и dnf. Старое местами ещё работает как обёртка, но опирайся на новое.
  • Правят файл в /usr или /var вместо /etc. Настройки служб почти всегда в /etc. В /var лежат логи и данные, которые система пишет сама.
  • Лезут sudo куда попало. Системные команды (установка пакетов, управление службами) требуют прав, но свои файлы в /home трогай без sudo, иначе наставишь чужого владельца.
Мини-лаба

Сделай на своём стенде по шагам и просто посмотри на вывод, ничего ломать не нужно.
  • Выполни uname -a и hostname. Найди в выводе версию ядра.
  • Запусти ps aux и найди строку с PID 1. Убедись, что это systemd.
  • Открой top, посмотри 10 секунд, кто ест больше всего CPU, нажми q.
  • Сделай lsblk и нарисуй на бумаге, какие у тебя диски и разделы.
  • Глянь systemctl status на любую службу (например ssh или cron) и пойми, running она или нет.
  • Выполни ip a и найди свой IP-адрес в локальной сети.
Контрольные вопросы
  • Чем kernel space отличается от user space и зачем вообще их разделять?
  • Что такое PID и какой процесс имеет PID 1 в современной Linux?
  • В чём разница между systemctl start и systemctl enable?
  • В какой папке дерева лежат настройки служб, а в какой - логи?
  • Какой командой ставят пакет в Ubuntu и какой - в Fedora?
👍1 ❤️2 🔥3 😄 🤔1
Аватара пользователя
Bazar1
Сообщения: 1
Зарегистрирован: 12 май 2026, 16:03

Re: Как устроена Linux изнутри: карта системы

Сообщение Bazar1 »

а если top показывает 90% CPU у процесса kworker - это вирус или норма? первый раз вижу такое имя
👍 ❤️ 🔥 😄 🤔1
Аватара пользователя
classicrock
Сообщения: 1
Зарегистрирован: 31 май 2026, 04:30

Re: Как устроена Linux изнутри: карта системы

Сообщение classicrock »

спасибо, наконец понял разницу между start и enable. перезагрузил vm а nginx не поднялся, оказывается я его не enable, только start делал
👍1 ❤️1 🔥 😄 🤔
Ответить
← Предыдущая глава
Урок 3. Сила командной строки: файлы, потоки и первый скрипт
Следующая глава →
Пользователи, права и базовая безопасность

Все главы курса «Linux Essentials: основы Linux с нуля»

Поделиться темой: ✈ Telegram VK

Вернуться в «Linux Essentials: основы Linux с нуля»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость