System Design Space
Граф знанийНастройки

Обновлено: 24 марта 2026 г. в 11:23

Linux: архитектура и популярность

medium

Почему Linux стал стандартом для серверов, его базовая архитектура и роль в системном дизайне.

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

На практике она помогает держать в голове процессную модель, файловую систему и сетевой стек Linux как часть архитектуры сервиса, а не как внешнюю операционную деталь.

В интервью и design review это особенно полезно, когда нужно показать, что вы понимаете не только код, но и то, как он ведет себя на реальном Linux-хосте.

Практическая польза главы

Платформенная база

Помогает понимать Linux как стандартный execution layer для backend и cloud-native систем.

Ops predictability

Учит учитывать filesystem, networking stack и process model в проектировании сервисов.

Диагностика инцидентов

Дает связь между архитектурой приложения и реальными системными симптомами в продакшене.

Interview practicality

На интервью помогает говорить не только про код, но и про реальное поведение сервиса на Linux-хосте.

Источник

Linux

Описание Linux, его архитектуры, распространённости и сценариев применения.

Перейти на сайт

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

Базовая архитектура Linux

Аппаратный слой

CPU, память, диски, сеть и контроллеры устройств.

Ядро Linux

Монолитное ядро с модульностью: управление процессами, памятью, I/O и сетью.

Системные библиотеки

Стандартные API и runtime, через которые приложения общаются с ядром.

User space

Сервисы, утилиты, демоны, контейнеры и пользовательские приложения.

User mode

User space

Приложения и сервисы

Приложения и оболочки

  • Shells (bash)
  • Браузеры и офисные приложения
  • Мультимедиа и инструменты

Системные компоненты

  • init (systemd/OpenRC)
  • Системные демоны (sshd/udevd)

Окна и графика

  • X11/Wayland/SurfaceFlinger
  • Mesa и драйверы графики

Библиотеки и runtime

  • glibc/musl/bionic
  • GTK/Qt/SDL и другие UI-библиотеки
System call boundary

Kernel mode

Kernel space

Ядро и драйверы

System Call Interface

  • Системные вызовы (open/read/write)
  • POSIX-совместимые API

Подсистемы ядра

  • Планирование процессов
  • Память и виртуальные адреса
  • IPC, VFS, сеть

Драйверы и модули

  • Device drivers
  • Loadable kernel modules

Security modules

  • SELinux
  • AppArmor
  • TOMOYO
Hardware

Hardware

Железо

CPURAMДиски и хранилищеСеть и периферия

Связанная глава

Модель OSI

Показывает, как запрос проходит по уровням сети и где Linux-стек обрабатывает трафик.

Открыть главу

Как проходит сетевой запрос (пример с curl)

Запрос проходит через границу user space → kernel mode, попадает в сетевой стек и возвращается обратно.

Как запрос проходит через Linux

Пример: curl -> kernel -> сеть -> kernel -> curl

User space

curllibcTLS/HTTP client
System call boundary

Kernel mode

syscallsTCP/IProutingbuffers
Driver

Network driver

net driverinterrupts
Network hardware

Hardware / Network

NICwirelessswitch/router

Активный шаг

Нажмите "Старт", чтобы пройти цепочку.

Возможности и сильные стороны

  • Многозадачность и многопользовательский режим.
  • Сетевой стек промышленного уровня и широкая поддержка протоколов.
  • Гибкая модель прав доступа и безопасность на уровне ядра.
  • Поддержка контейнеров и изоляции (namespaces, cgroups).
  • Масштабируемость: от встраиваемых устройств до дата-центров.

Связанная документалка

Linux и UNIX или кто породил ВСЕ современные системы!

Исторический контекст: как эволюция Unix-подходов привела к массовому распространению Linux.

Смотреть разбор

Почему Linux стал таким популярным

Открытый исходный код и огромная экосистема сообщества.

Стабильность и предсказуемое поведение в продакшене.

Гибкость настройки под любые сценарии: облака, bare metal, edge.

Хорошая производительность и эффективное использование ресурсов.

Поддержка со стороны облачных провайдеров и DevOps-инструментов.

Почему важно знать Linux в системном дизайне

  • Большинство серверных нагрузок разворачиваются на Linux — важно понимать поведение процессов и ресурсов.
  • Linux определяет сетевые и I/O ограничения, которые влияют на latency и throughput сервисов.
  • Контейнеризация и оркестрация (Docker, Kubernetes) завязаны на механизмы Linux.
  • Знание Linux помогает диагностировать инциденты и оптимизировать инфраструктуру.

Связанные главы

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