Раздел описывает принципы работы операционных систем и механизмы управления процессором, памятью, устройствами, файлами, пользователями и прикладными программами.
Основное внимание уделяется Linux как практической платформе для серверов, разработки, контейнеризации и эксплуатации программных систем. При этом общие механизмы рассматриваются независимо от конкретного дистрибутива.
Основные направления
Временная заметка. Нужно будет декомпозировать.
- Архитектура операционной системы — назначение ядра, пользовательское пространство, системные компоненты и границы ответственности операционной системы.
- Загрузка системы — этапы запуска компьютера, firmware, загрузчик, ядро, init-система и переход системы в рабочее состояние.
- Ядро операционной системы — управление аппаратными ресурсами, системными вызовами, драйверами, памятью, процессами и вводом-выводом.
- Процессы и потоки — создание и завершение процессов, состояния выполнения, дерево процессов, потоки, сигналы, приоритеты и планирование.
- Управление памятью — виртуальная память, страницы, swap, отображение памяти, разделение адресных пространств и обработка нехватки памяти.
- Файловые системы — организация файлов и каталогов, inode, точки монтирования, ссылки, права доступа, журналирование и использование дискового пространства.
- Устройства и ввод-вывод — блочные и символьные устройства, драйверы, файловые дескрипторы, буферизация и взаимодействие программ с оборудованием.
- Пользователи и права доступа — пользователи, группы, идентификаторы, разрешения, ACL, повышение привилегий и разграничение доступа.
- Службы и фоновые процессы — запуск, остановка, перезапуск и контроль системных и прикладных служб.
- Системное журналирование — сбор, хранение, фильтрация, ротация и анализ системных и прикладных журналов.
- Управление программным обеспечением — пакеты, репозитории, зависимости, установка, обновление и удаление программ.
- Командная оболочка — выполнение команд, переменные окружения, перенаправления, pipelines, обработка текста и автоматизация системных операций.
- Планирование задач — периодический и отложенный запуск команд, фоновые задания и системные таймеры.
- Хранение данных — разделы дисков, файловые системы, LVM, swap, подключение накопителей, контроль свободного пространства и восстановление данных.
- Сетевые функции операционной системы — сетевые интерфейсы, таблица маршрутизации, разрешение имён, сокеты, фильтрация трафика и диагностика соединений.
- Изоляция и управление ресурсами — namespaces, cgroups, limits и другие механизмы, лежащие в основе контейнеризации.
- Безопасность операционной системы — минимизация привилегий, управление доступом, защищённая удалённая работа, аудит и усиление конфигурации.
- Диагностика и восстановление — исследование проблем с загрузкой, процессами, памятью, дисками, сетью, службами и системными ресурсами.
Основные вопросы раздела
Материалы раздела должны помогать отвечать на следующие вопросы:
- Как операционная система управляет аппаратными ресурсами?
- Чем ядро отличается от пользовательского пространства?
- Что происходит при запуске операционной системы?
- Как создаются, выполняются и завершаются процессы?
- Как операционная система распределяет процессорное время и память?
- Как организовано хранение файлов и каталогов?
- Как работают пользователи, группы и права доступа?
- Как запускаются и контролируются системные службы?
- Как программа взаимодействует с файлами, сетью и устройствами?
- Как диагностировать высокую нагрузку, нехватку памяти или заполнение диска?
- Какие механизмы Linux используются для изоляции контейнеров?
- Как восстановить систему после ошибки конфигурации или отказа компонента?
Границы раздела
Раздел посвящён механизмам операционных систем и их практическому администрированию.
Аппаратные принципы работы процессора, памяти и устройств относятся к разделу вычислительных систем. Устройство сетевых протоколов рассматривается в разделе сетей и протоколов. Контейнерные платформы и облачная инфраструктура относятся к разделу инфраструктуры и платформ.