Где работает 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-сервисе — например, 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-процессы).
Все 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 работает в:
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 проводит 60-70% рабочего времени в той или иной форме взаимодействия с Linux. Прямо или косвенно. Из ноутбука или через UI managed-сервиса. Но фундамент один — Linux.
Зачем глубокое понимание
Можно спросить: «Хорошо, Linux везде. Но мне же не нужно администрировать. Я просто использую инструменты. Зачем мне понимать про syscalls и kernel space?»
Ответ простой: на «хорошем дне» вам действительно не нужно. На «плохом дне» — нужно очень.
В 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.