Что такое Linux: ядро, дистрибутивы и файловая система простыми словами
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. Ядро вместе со всем этим набором, собранное и протестированное одной командой, называется дистрибутивом.
Дистрибутивы отличаются прежде всего менеджером пакетов, политикой обновлений и тем, на кого рассчитаны.
| Семейство | Примеры | Пакеты | Где встречается |
|---|---|---|---|
| Debian | Debian, Ubuntu, Linux Mint | .deb, apt | серверы, облака, рабочие станции |
| Red Hat | RHEL, Fedora, Rocky Linux, AlmaLinux | .rpm, dnf | корпоративные серверы |
| Alpine | Alpine Linux | apk | Docker-образы, где важен малый размер |
| Arch | Arch Linux, Manjaro | pacman | энтузиасты, свежие версии пакетов |
Узнать, какой дистрибутив перед вами, можно из файла /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 загружается: от включения до приглашения
Понимание загрузки помогает, когда сервер «не поднимается» после перезагрузки. Упрощённо цепочка выглядит так:
- Прошивка (UEFI или BIOS) проверяет оборудование и находит загрузчик.
- Загрузчик GRUB показывает меню и загружает в память ядро из
/bootи образ initramfs. - Ядро инициализирует оборудование, с помощью initramfs находит и монтирует корневую файловую систему.
- systemd запускается как процесс с PID 1 и стартует службы в нужном порядке: сеть, журнал, SSH, cron и остальные.
- Приглашение входа — в консоли или по 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: с нуля до уверенного администрирования».
- Linux: с нуля до уверенного администрирования
- Как устроена файловая система Linux: от корня до загрузки ядра