Основы

Что такое Linux: ядро, дистрибутивы и файловая система простыми словами

Обновлено: · Skillaria.Top

Linux — это ядро операционной системы с открытым исходным кодом, которое управляет процессором, памятью, дисками и сетью; вместе с утилитами, менеджером пакетов и системой инициализации ядро образует дистрибутив, например Ubuntu, Debian или Fedora. Linux работает на большинстве серверов, в контейнерах и облаках, поэтому умение работать в нём — базовый навык DevOps-инженера и администратора.

Linux — это ядро операционной системы с открытым исходным кодом, вокруг которого собирают полноценные системы: серверные, настольные, встраиваемые. Когда говорят «сервер на Linux», имеют в виду не одну программу, а дистрибутив — ядро плюс набор утилит, библиотек, менеджер пакетов и систему инициализации. Разберёмся, что такое Linux на самом деле, из чего он состоит и почему без него не обходится ни один DevOps-инженер.

Linux — это ядро, а не вся система

Строго говоря, Linux — это только ядро (kernel). Ядро — программа, которая запускается первой после загрузчика и остаётся в памяти всё время работы компьютера. Оно распределяет процессорное время между процессами, выделяет память, работает с дисками и сетевыми картами через драйверы, следит за правами доступа.

Обычные программы не трогают «железо» напрямую. Когда редактор сохраняет файл, он делает системный вызов (open, write, close), и уже ядро решает, на какой блок диска записать данные и есть ли у процесса право это сделать. Такое разделение делает систему устойчивой: упавшая программа не роняет весь компьютер.

Посмотреть версию ядра можно одной командой:

$ uname -r
6.8.0-45-generic

Ядро создал Линус Торвальдс в 1991 году, и с тех пор оно развивается открыто: исходный код распространяется под лицензией GNU GPL версии 2, любой может его читать, изменять и распространять на тех же условиях.

Что такое дистрибутив Linux

Одного ядра мало: нужна оболочка, чтобы вводить команды, утилиты для работы с файлами, библиотеки, установщик программ. Большую часть базовых утилит (ls, cp, bash, grep) дал проект GNU, поэтому систему иногда называют GNU/Linux. Ядро вместе со всем этим набором, собранное и протестированное одной командой, называется дистрибутивом.

Дистрибутивы отличаются прежде всего менеджером пакетов, политикой обновлений и тем, на кого рассчитаны.

СемействоПримерыПакетыГде встречается
DebianDebian, Ubuntu, Linux Mint.deb, aptсерверы, облака, рабочие станции
Red HatRHEL, Fedora, Rocky Linux, AlmaLinux.rpm, dnfкорпоративные серверы
AlpineAlpine LinuxapkDocker-образы, где важен малый размер
ArchArch Linux, Manjaropacmanэнтузиасты, свежие версии пакетов

Узнать, какой дистрибутив перед вами, можно из файла /etc/os-release:

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
ID=ubuntu
ID_LIKE=debian

Для обучения и серверов чаще всего выбирают Ubuntu LTS или Debian: у них много документации, а команды из инструкций в интернете почти всегда подходят без изменений.

Как устроена система: ядро, оболочка, пользовательское пространство

Linux удобно представлять слоями. Внизу — оборудование. Над ним ядро. Выше — пространство пользователя: системные службы, библиотеки (например, glibc) и программы. Между человеком и системой стоит оболочка (shell) — чаще всего bash, — которая принимает команды и запускает программы.

  • Ядро — процессы, память, файловые системы, сеть, драйверы.
  • Система инициализации — первый процесс с PID 1, в большинстве современных дистрибутивов это systemd. Он запускает остальные службы.
  • Службы (демоны) — веб-сервер, SSH-сервер, cron, журнал.
  • Оболочка и утилиты — то, с чем вы работаете в терминале.

На сервере графического интерфейса обычно нет вовсе: администратор подключается по SSH и работает в командной строке. Поэтому изучение Linux — это в первую очередь изучение терминала.

Файловая система Linux: всё начинается с корня /

В Linux нет дисков C: и D:. Есть одно дерево каталогов, которое начинается с корня — /. Все диски, флешки и сетевые папки подключаются (монтируются) в какой-то каталог этого дерева. Ещё один принцип: почти всё в Linux представлено как файл — обычные файлы, каталоги, устройства, даже сведения о процессах.

$ ls /
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr

Расположение каталогов описывает стандарт FHS (Filesystem Hierarchy Standard), поэтому в любом дистрибутиве конфиги лежат примерно в одних и тех же местах.

КаталогЧто там лежит
/etcконфигурация системы и служб: /etc/passwd, /etc/ssh/sshd_config, /etc/fstab
/homeдомашние каталоги пользователей: /home/alice
/rootдомашний каталог суперпользователя root
/varизменяемые данные: логи в /var/log, кэш пакетов, базы данных, очереди почты
/usrустановленные программы и библиотеки: /usr/bin, /usr/lib
/bin, /sbinбазовые команды; в современных дистрибутивах это ссылки на /usr/bin и /usr/sbin
/bootядро (vmlinuz-*), initramfs и файлы загрузчика
/devфайлы устройств: /dev/sda, /dev/null
/proc, /sysвиртуальные файловые системы: ядро показывает через них процессы и настройки
/tmpвременные файлы, часто очищается при перезагрузке
/optсторонние программы, поставляемые целиком
/mnt, /mediaточки монтирования дисков и съёмных носителей

Абсолютные и относительные пути

Абсолютный путь начинается с / и не зависит от того, где вы находитесь: /var/log/syslog. Относительный путь считается от текущего каталога: ../logs/app.log. Точка . — текущий каталог, две точки .. — родительский, тильда ~ — ваш домашний каталог.

$ pwd
/home/alice
$ cd /var/log
$ cd ..
$ pwd
/var
$ cd ~
$ pwd
/home/alice

/proc: система как набор файлов

Каталог /proc не хранится на диске — его на лету формирует ядро. Например, cat /proc/cpuinfo покажет процессоры, cat /proc/meminfo — память, а у каждого процесса есть каталог /proc/<PID> с его командной строкой и открытыми файлами. Многие утилиты вроде ps и top просто читают эти файлы.

Монтирование

Команда df -h показывает, какие файловые системы куда смонтированы и сколько на них места:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        40G   12G   26G  32% /
/dev/sda1       1.1G  6.1M  1.1G   1% /boot/efi
tmpfs           393M  1.2M  392M   1% /run

Постоянные точки монтирования описываются в /etc/fstab — система читает этот файл при загрузке.

Как Linux загружается: от включения до приглашения

Понимание загрузки помогает, когда сервер «не поднимается» после перезагрузки. Упрощённо цепочка выглядит так:

  1. Прошивка (UEFI или BIOS) проверяет оборудование и находит загрузчик.
  2. Загрузчик GRUB показывает меню и загружает в память ядро из /boot и образ initramfs.
  3. Ядро инициализирует оборудование, с помощью initramfs находит и монтирует корневую файловую систему.
  4. systemd запускается как процесс с PID 1 и стартует службы в нужном порядке: сеть, журнал, SSH, cron и остальные.
  5. Приглашение входа — в консоли или по SSH.

Сообщения ядра при загрузке можно посмотреть командой sudo dmesg или journalctl -k, а время загрузки по этапам — командой systemd-analyze.

Пользователи и права — встроенная защита

Linux изначально многопользовательская система. У каждого файла есть владелец, группа и права на чтение, запись и выполнение. Обычный пользователь не может испортить системные файлы, а административные действия выполняются через sudo. Суперпользователь root может всё, поэтому работать под ним постоянно не принято.

$ ls -l /etc/passwd
-rw-r--r-- 1 root root 2847 Oct  1 10:12 /etc/passwd

Строка читается так: обычный файл, владелец root может читать и писать, остальные — только читать.

Зачем Linux DevOps-инженеру

Для DevOps-инженера Linux — не одна из тем, а среда, в которой проходит почти вся работа. Вот где он встречается каждый день:

  • Серверы. Веб-серверы, базы данных, очереди в подавляющем большинстве случаев работают на Linux.
  • Контейнеры. Docker использует механизмы ядра Linux — namespaces и cgroups. Контейнер — это процесс Linux с изоляцией, а образ основан на дистрибутиве вроде Debian или Alpine.
  • Облака и Kubernetes. Виртуальные машины в облаке и узлы кластеров — тоже Linux.
  • CI/CD. Сборки в пайплайнах выполняются в Linux-раннерах, а скрипты сборки пишутся на bash.
  • Диагностика. Когда сервис падает, ответ ищут в journalctl, top, ss, df — без знания этих инструментов разбор инцидента невозможен.

Минимальный набор навыков: уверенно двигаться по файловой системе, понимать права, ставить пакеты, управлять службами через systemctl, читать логи, работать с процессами, сетью и SSH, писать простые bash-скрипты.

Как начать изучать Linux

Не обязательно ставить Linux вместо основной системы. Есть несколько безопасных способов попробовать:

  • Виртуальная машина (VirtualBox, VMware) с Ubuntu Server — можно ломать и восстанавливать из снимка.
  • WSL на Windows — полноценное окружение Ubuntu в терминале Windows: wsl --install.
  • Облачный сервер — самый близкий к реальной работе вариант, подключение по SSH.
  • Docker-контейнер — docker run -it --rm ubuntu bash даст оболочку за секунды.

Начните с навигации (pwd, ls, cd), затем файлы и права, затем пакеты, процессы и службы. Встроенная справка всегда под рукой: man ls или ls --help.

Итог

Linux — это ядро, а дистрибутив — ядро вместе с утилитами, библиотеками, менеджером пакетов и systemd. Вся система — одно дерево каталогов от корня /, где конфиги лежат в /etc, логи в /var/log, а программы в /usr. Понимая, что такое Linux и как он загружается, вы получаете фундамент для серверов, контейнеров и облаков. Файловая система, загрузка и администрирование разобраны на практике в курсе по Linux.

Частые вопросы

Linux — это операционная система или ядро?

Формально Linux — ядро, а операционную систему образует дистрибутив: ядро плюс утилиты GNU, библиотеки, менеджер пакетов и система инициализации. В разговоре «Linux» обычно означает всю систему.

Linux бесплатный?

Ядро и большинство дистрибутивов (Ubuntu, Debian, Fedora) распространяются бесплатно под свободными лицензиями. Платными бывают подписки на поддержку, например у Red Hat Enterprise Linux.

Какой дистрибутив Linux выбрать новичку?

Для серверов и обучения администрированию удобны Ubuntu LTS и Debian: у них стабильные версии и много документации. Знания переносятся между дистрибутивами, отличаются в основном менеджеры пакетов.

Нужно ли знать Linux, чтобы работать с Docker?

Да, хотя бы базово. Контейнеры построены на механизмах ядра Linux, внутри образов — дистрибутивы, а отладка идёт командами оболочки.

Чем Linux отличается от Unix?

Unix — семейство систем, появившееся в 1970-х, а Linux — независимо написанное ядро, повторяющее идеи и интерфейсы Unix (стандарт POSIX). Поэтому команды и принципы работы у них очень похожи.

Разберите тему на видео

Эта тема подробно разобрана с практикой в курсе «Linux: с нуля до уверенного администрирования».

Перейти к курсу