Learning Platform
Глоссарий Troubleshooting
Урок 03.04 · 15 мин
Начальный
LinuxCloudServersData Engineering

Где работает Linux: облака, supercomputers, embedded

В прошлых уроках мы поняли, что такое ядро Linux, какие есть дистрибутивы и почему всё это устроено через unix-философию. Но возникает резонный вопрос: зачем именно DE так глубоко знать Linux? Может, достаточно поверхностного? Может, в реальной работе это редко нужно?

Короткий ответ: нет. Linux — это инфраструктурная основа практически всей DE-индустрии. В этом уроке посмотрим на цифры: где Linux работает, и почему DE сталкивается с ним каждый день.


Linux в облаке: 90%+

Когда вы поднимаете виртуальную машину в AWS, GCP или Azure — вероятность того, что это будет Linux, около 90-95%. Windows-серверов в облаке мало, в основном для legacy-приложений (старый .NET, AD-инфраструктура).

Все managed-сервисы под капотом тоже на Linux:

Managed-сервисы для DE — все на Linux под капотом
AWS RDS PostgresManaged PostgreSQL. Под капотом — Amazon Linux 2/2023, ядро 6.1, ext4 файловая система
GCP BigQueryПод капотом — Google Borg на Linux. Поверх него Dremel, F1, Capacitor. Всё в Linux-датацентрах Google
SnowflakeМногооблачный warehouse. Работает в AWS/GCP/Azure VMs — то есть на Linux под капотом
AWS MSK (Kafka)Managed Apache Kafka. Под капотом — Linux VMs с JVM, ZooKeeper, Kafka brokers
GCP ComposerManaged Airflow. Это Airflow в Kubernetes на Linux нодах. Кубер тоже Linux
AWS EMR / DataprocManaged Spark/Hadoop. Это кластеры Linux-машин с YARN, HDFS, Spark

Когда что-то не работает в managed-сервисе — например, RDS Postgres медленный, или Composer-pipeline валится — вы открываете логи. Логи — это файл в Linux. Метрики — это вывод systemd-сервиса в Linux. Если поддержка просит «сделайте select pg_stat_activity» — это команда на Linux-машине.

Даже если вы сами никогда не SSH-итесь на сервер (а managed-сервисы это часто и не дают), вы всё равно работаете с Linux через managed-интерфейс.


Linux в Docker и Kubernetes: 100%

Что такое контейнер: изоляция как ядерный механизм Namespaces и cgroups: ядерные примитивы изоляции Что такое Kubernetes и зачем он нужен

Docker — это контейнерная технология, которая работает только на Linux. Технически. Когда вы запускаете Docker на macOS, он внутри крутит Linux VM (Docker Desktop делает это автоматически). На Windows — то же самое (либо WSL2, либо Hyper-V VM).

Каждый контейнер — это процесс на Linux-машине с изолированным namespace (PID, mount, network) и cgroup для лимитов ресурсов. Это всё ядро Linux. Docker — это лишь удобный CLI над этими ядерными механизмами.

Kubernetes — оркестратор контейнеров. Каждая нода кластера — Linux-машина. На каждой ноде работает kubelet (Linux-процесс) и контейнеры (Linux-процессы).

Docker контейнер — это процесс на Linux
docker run python:3.13С точки зрения пользователя — 'запустил python в контейнере'
Linux ядроСоздаёт namespace (PID/mount/net/etc), накладывает cgroup для CPU/memory лимитов, запускает процесс
python3 (в namespace)Процесс думает, что он — единственный в системе (свой PID, своя FS, своя сеть)

Все DE-инструменты сегодня деплоятся в контейнерах: Airflow, Kafka, Spark, ClickHouse, Postgres. Когда вы делаете docker logs airflow-worker — вы читаете stdout/stderr Linux-процесса. Когда kubectl exec -it airflow-pod bash — вы заходите по shell в Linux-окружение.

Подробнее про процессы, namespace и cgroups — в модуле 10.


Linux в supercomputers: 100%

Топ-500 самых мощных компьютеров мира — это список TOP500.org, который обновляется два раза в год. На 2026 год: 100% супер-компьютеров работают на Linux.

Не 95%, не 99%. Ровно 100%. Последний non-Linux супер-компьютер (на FreeBSD) выпал из топа в 2017 году. С тех пор — только Linux.

Это связано с тем, что суперкомпьютеры строятся как кластеры тысяч узлов с общим хранилищем и MPI-сетью. Под такие нагрузки нужна гибкость, которой нет в Windows/proprietary Unix. И Linux исторически выработал инструменты для HPC (High Performance Computing): SLURM, openMPI, parallel file systems как Lustre/GPFS.

DE на суперкомпьютерах работают мало, но если ваша компания — в академическом мире (биоинформатика, физика частиц, климатическое моделирование) — вы будете работать именно с HPC-кластерами на Linux. SLURM-задачи, parallel-обработка, оптимизация под NUMA-архитектуру.


Linux на Android: миллиарды устройств

Android работает на ядре Linux. Это не «GNU/Linux» — там нет GNU userland, своя libc (Bionic), свой initd (init+zygote), своя графика (SurfaceFlinger). Но ядро — самое настоящее Linux, со всеми его syscalls, файловой системой, процессами.

На 2026 год Android — это 3+ миллиарда активных устройств. Это самая распространённая ОС в мире. Linux под капотом каждого Android-смартфона.

Для DE это значит: если вы работаете в мобильной аналитике (events с миллионов телефонов в день), вы парсите данные, сгенерированные Linux-процессами на телефонах.


Embedded Linux: миллиарды IoT-устройств

Помимо смартфонов, Linux работает в:

Где ещё работает Linux
РоутерыOpenWrt, DD-WRT, прошивки производителей. Почти все домашние и корпоративные роутеры
Smart TVLG webOS, Samsung Tizen — оба на ядре Linux. Android TV — тоже Linux
IoT / IndustrialПромышленные контроллеры, умные счётчики, медицинская техника, авто. Часто Yocto-based Linux
ChromeOSGoogle Chrome OS на Chromebook — ядро Linux, поверх Chrome browser как UI
Tesla / carsМногие автомобильные системы — Linux. Tesla MCU — modified Ubuntu
ISSМеждународная космическая станция перешла с Windows на Debian в 2013. Сейчас работает на Linux

DE редко работает с embedded напрямую. Но иногда — да, если ваш продукт собирает телеметрию с IoT-устройств. Тогда вы видите формат файлов, который генерится Linux-процессом на edge-устройстве.


Где НЕ работает Linux

Чтобы картина была честной: есть ниши, где Linux отсутствует или мал.

  • Desktop. На 2026 год Linux на десктопе — около 4% (vs Windows 70% и macOS 23%). У разработчиков значительно выше (40%+), но «обычные пользователи» в основном на Windows.
  • Game console. Xbox — кастомная Windows, PlayStation — кастомный FreeBSD, Nintendo Switch — кастомная ОС на NVIDIA Tegra. Steam Deck — Linux (Arch-based SteamOS), но это нишевое устройство.
  • iOS / macOS. У Apple свой Unix-родственник — Darwin (BSD-based). С Linux много общего (POSIX, shell), но ядро разное.
  • Legacy enterprise. Mainframes IBM z/OS, AS/400 — это закрытые экосистемы, переход на Linux идёт, но медленно.

Для DE это всё чаще не важно: даже если на десктопе разработчика Windows, сам код деплоится на Linux-сервер.


Сколько Linux в типичной DE-работе

Чтобы конкретизировать, вот разбивка типичного рабочего дня Junior DE:

Где Junior DE сталкивается с Linux каждый день
ТерминалОткрыт целый день: запуск тестов, копирование файлов, поиск в логах, git. Минимум 4 часа в день
SSH на серверыПодключение к dev/staging/prod серверам. Здесь — голый Linux, нужны навыки CLI
Dockerdocker exec, docker logs, docker run — это всё Linux команды внутри контейнеров
Airflow / SparkUI Airflow + bash-операторы внутри тасок. Spark — это JVM на Linux, его настройки и логи на Linux
journalctlКогда сервис упал — journalctl/dmesg/grep по логам. Linux-специфичные инструменты
bash-скриптыСвои скрипты, скрипты в Airflow DAG-ах, deployment-скрипты. Чтение/правка bash — еженедельная задача

В сумме: Junior DE проводит 60-70% рабочего времени в той или иной форме взаимодействия с Linux. Прямо или косвенно. Из ноутбука или через UI managed-сервиса. Но фундамент один — Linux.


Зачем глубокое понимание

Можно спросить: «Хорошо, Linux везде. Но мне же не нужно администрировать. Я просто использую инструменты. Зачем мне понимать про syscalls и kernel space?»

Ответ простой: на «хорошем дне» вам действительно не нужно. На «плохом дне» — нужно очень.

WARNING

В 3 часа ночи в субботу падает production-сервис. PagerDuty звонит вам. Вы открываете VPN, подключаетесь по SSH, и видите: процесс postgres висит, CPU 100%, journalctl показывает ‘Out of memory: Killed process 12345’. Вам нужно за 10 минут понять: это OOM killer убил процесс, потому что кончилась память. Что делать? Если вы понимаете, что такое OOM, что такое cgroups, что такое /proc/meminfo — вы решаете за 5 минут. Если не понимаете — вы 2 часа ищете на Stack Overflow, что значит ‘OOM killer’, и продакшен лежит.

Junior DE с поверхностным Linux всё равно решает задачи — но в три раза медленнее и с большим стрессом. Junior DE с глубоким Linux чувствует себя как дома на любой Linux-системе. Это очень ценно профессионально.


Что дальше

В этом модуле мы прошли по верхам: что такое ядро, какие есть дистрибутивы, unix-философия, где работает Linux. Это база, на которой будем строить остальной курс.

Следующий модуль (02) — про сам инструмент работы: терминал, shell, конфигурация. Откроем терминал и начнём с нуля понимать, что в нём происходит.


Попробуй сам

Посмотрите, какие Linux-машины запускаются у вас:

# Если у вас macOS:
$ uname -a
Darwin user-MacBook-Pro.local 24.5.0 Darwin Kernel Version 24.5.0 ...
# Видите: macOS — это Darwin, BSD-based. НЕ Linux. Но многие команды совпадают (POSIX)

# Запустите Linux в Docker (если установлен):
$ docker run --rm ubuntu:latest uname -a
Linux abc123 6.14.0-23-generic #25-Ubuntu SMP ... GNU/Linux

# Сколько процессов работает в Linux-контейнере по умолчанию:
$ docker run --rm ubuntu:latest ps aux
USER   PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     1  0.0  0.0   2752  1184 ?        Rs   19:00   0:00 ps aux

Заметьте: всего один процесс! ps сам себя видит как PID 1. Это намекает на изоляцию через PID namespace, о которой мы поговорим в модуле 10.


Проверка знанийKnowledge check
Junior DE работает только с managed-сервисами (AWS RDS, Composer, BigQuery) и никогда не SSH-ится на серверы. Зачем ему всё равно знать Linux?
ОтветAnswer
Несколько причин. Первая: managed-сервисы под капотом — Linux. Когда что-то не работает, метрики и логи представлены в терминах Linux-процессов (CPU, memory, syscalls, file I/O). Понимание Linux ускоряет диагностику в разы. Вторая: managed-сервисы — это не всё. Айрфлоу-операторы запускают bash-команды, Spark-jobs выполняются на Linux-нодах, кастомные ETL пишутся на Python и крутятся в Docker (=Linux). Третья: профессиональный рост. Junior, который не понимает Linux, имеет потолок: на Middle/Senior уровне нужно работать с инфраструктурой напрямую (свой Kubernetes, свой Kafka, своя оптимизация Postgres). Четвёртая: переносимость. Управляемые сервисы меняются между компаниями (где-то AWS, где-то GCP, где-то on-prem). Linux — это инвариант, единственная константа во всём стеке DE. Знание Linux переносится на 100%, знание AWS RDS — на 30%.

Проверьте понимание

Результат: 0 из 0
Концептуальный
Вопрос 1 из 5. Какой процент supercomputers из TOP500 работает на Linux в 2026 году?

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 4