Обзор операционных систем полезен тем, что возвращает базовый вопрос: где заканчивается приложение и начинается системная среда, которая на самом деле управляет процессами, памятью, сетью и устройствами.
В реальной работе глава помогает видеть цену системных вызовов, переключений контекста и границ между user space и kernel space, когда service-level проблема оказывается системной.
В интервью и архитектурных обсуждениях она полезна тем, что позволяет объяснять сбои и деградации через реальные механизмы ОС, а не через расплывчатое «что-то тормозит на хосте».
Практическая польза главы
Kernel boundary
Показывает, где проходят границы ответственности между приложением и ОС в production-контуре.
Syscall cost
Помогает учитывать цену системных вызовов и переключений контекста в latency-чувствительных путях.
Resource isolation
Учит проектировать сервисы с учетом CPU/memory limits и поведения процессов при перегрузке.
Interview clarity
Дает сильный язык для объяснения, почему архитектурная проблема на самом деле системная.
Источник
Operating system
Роль операционных систем, ключевые функции и виды ОС.
Операционная система — это интерфейс между приложениями и компьютерным железом. Она управляет всей машинерией: процессами, памятью, файлами, устройствами, сетью и безопасностью.
Ключевые обязанности ОС
- Планирование процессов и потоков (CPU scheduling).
- Управление памятью и адресными пространствами.
- Файловые системы, доступ к данным и буферизация.
- Управление устройствами через драйверы.
- Сетевой стек и базовая безопасность (права, изоляция, учетные записи).
User space и kernel space
User space изолирует приложения, а kernel space содержит ядро и драйверы. Переход между ними происходит через системные вызовы.
User space vs kernel space
Выберите шаг, чтобы увидеть, где выполняется работа и как ОС взаимодействует с железом.
User space
Kernel space
Device drivers
Драйверы устройств переводят запросы ОС в команды железа.
Hardware
CPU, RAM, диски, сеть, периферия.
Активный шаг
Нажмите «Старт», чтобы пройти путь выполнения программы.
Как выполняются пользовательские программы
Жизненный цикл процесса
- Загрузка исполняемого файла и создание процесса.
- Выделение виртуального адресного пространства и страниц памяти.
- Планировщик ядра выдаёт квант CPU и переключает контекст.
- Системные вызовы переводят выполнение в kernel space для I/O.
- Прерывания возвращают результат и управление в user space.
Роль драйверов
- Драйвер получает запрос от ядра (например, запись файла или отправка пакета).
- Переводит универсальный запрос ОС в команды контроллера устройства.
- Обрабатывает прерывания и сообщает ядру о завершении операции.
Распространённые операционные системы
Связанная глава
Android: мобильная ОС
Архитектура Android, ограничения мобильной среды и практические паттерны.
Android
Смартфоны, планшеты, Android TV и часть embedded‑устройств.
Архитектурный фокус: Ядро Linux + Binder IPC + ART runtime + sandbox по UID.
- Жёсткие ограничения на фоновые задачи и энергопотребление.
- Сильная зависимость UX от качества сетевых API и кэширования.
- Фрагментация устройств и версий ОС влияет на совместимость.
Для System Design: Для мобильного бэкенда критичны offline-first, экономия трафика и устойчивость к нестабильной сети.
Связанная книга
Modern Operating Systems (short summary)
Фундаментальные механизмы ОС: процессы, память, I/O, виртуализация и безопасность.
Windows
Настольные ПК, корпоративные рабочие станции, игры.
Архитектурный фокус: Линейка Windows NT: гибридное ядро, развитая драйверная и enterprise‑экосистема.
- Максимальная совместимость с legacy‑ПО и периферией.
- Глубокая интеграция с AD/Group Policy в корпоративном контуре.
- Операционная модель часто завязана на централизованное управление endpoints.
Для System Design: В enterprise-системах важно учитывать доменную аутентификацию, политики безопасности и клиентские агенты.
iOS / iPadOS
Мобильные устройства Apple и планшеты.
Архитектурный фокус: XNU (Darwin): Mach + BSD, строгий sandbox, code signing и permission model.
- Сильная аппаратно-программная оптимизация и предсказуемая производительность.
- Контролируемая платформа: меньше фрагментации, но жёстче ограничения.
- Фоновая активность и сетевой доступ строго регулируются системой.
Для System Design: При проектировании клиент-серверных функций важны ограниченные фоновые окна и энергоэффективные протоколы.
Связанная документалка
Linux и UNIX или кто породил ВСЕ современные системы!
История UNIX-линейки и её влияние на Linux, BSD, Darwin и современную инфраструктуру.
macOS
Компьютеры Apple, разработка, креативные индустрии.
Архитектурный фокус: Darwin/XNU, POSIX-среда, тесная связка с экосистемой Apple и developer tooling.
- UNIX-подобная модель хорошо подходит для инженерных workflows.
- Сильная интеграция desktop-приложений, безопасности и аппаратных возможностей.
- Популярная рабочая среда для backend/frontend и mobile-разработки.
Для System Design: Для команд разработки это базовая рабочая платформа, где важны reproducible dev‑окружения и автоматизация.
Связанная глава
Linux: архитектура и популярность
Почему Linux стал стандартом в серверах и как его архитектура влияет на System Design.
Linux
Серверы, облака, контейнеры, десктопы.
Архитектурный фокус: Монолитное ядро с модулями, cgroups/namespaces, богатый стек сетевых и системных инструментов.
- Доминирует в серверной, облачной и контейнерной инфраструктуре.
- Гибкая кастомизация под конкретные workload'ы и hardware.
- Широкий выбор дистрибутивов и моделей сопровождения.
Для System Design: Почти весь production backend опирается на Linux: это база для Kubernetes, сервисов и SRE-практик.
Embedded / Real-time OS
Встроенные системы, промышленность, автомобилестроение.
Архитектурный фокус: Упор на deterministic scheduling, bounded latency и контроль над ресурсами в real-time.
- Приоритет предсказуемости времени отклика, а не максимальной пропускной способности.
- Часто работают на ограниченных CPU/памяти и специальных контроллерах.
- Примеры: QNX, VxWorks, RIOT, TinyOS, Zephyr.
Для System Design: Критичны для edge/IoT: архитектура строится вокруг SLA по времени реакции и отказобезопасности.
Практический вывод
Понимание того, как ОС управляет ресурсами, помогает проектировать приложения под реальные ограничения железа: планирование CPU, границы памяти, особенности хранения и стоимость I/O.
Связанные главы
- Зачем нужны фундаментальные знания - даёт общий контекст, почему поведение ОС влияет на архитектуру сервисов.
- Modern Operating Systems (short summary) - углубляет тему механизмами планирования, памяти, файловых систем и безопасности ОС.
- Linux: архитектура и популярность - показывает практическую сторону ОС в production-инфраструктуре.
- Виртуализация и виртуальные машины - расширяет тему изоляции и управления ресурсами на уровне гипервизора.
- Контейнеризация - связывает namespaces/cgroups и операционную модель современных платформ.
- RAM и persistent storage - дополняет ОС-тему иерархией памяти, page cache и storage latency.
- Structured Computer Organization (short summary) - даёт аппаратную базу для понимания границ и возможностей ОС.
