Различия между версиями 4 и 5
Версия 4 от 2018-12-10 14:59:43
Размер: 2903
Редактор: FrBrGeorge
Комментарий:
Версия 5 от 2018-12-10 15:02:33
Размер: 2918
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 1: Строка 1:
= Организация операционной системы = = Организация операционной системы (часть 1) =

Организация операционной системы (часть 1)

  • Досистемная загрузка (не сегшодня)
  • Ядро+initrd (тоже не сегодня)
  • init

    • запускает все нужные системе процессы

Что нужно для работы системы

  • монтирование ФС (etc/fstab)

  • наполнение /dev/ (в т. ч. динамическое)

  • настройка сети (пользовательская vs системная)
  • регистрация пользователей (login)
  • прикладные службы (печать и т. п.)
  • запуск по расписанию
  • запуск сетевых служб по факту сетевого подключения
  • запуск нескольких экземпляров (например, несколько сетевых подключений)
  • запуск/останов по ручному запросу
  • журналирование всего
  • + Эшелонирование / зависимости компонентов (например, сетевые службы не раньше настройки сети)
    • +отладка/профилирование
  • ...

Межпроцессное взаимодействие

Традиционно: сигналы, сообщения, разделяемая память; + семафоры

В действительности: сигналы

  • kill и виды сигналов

  • Посылка сигналов с терминала, stty

Недостатки:

  • Нетипизированные
  • Малое пространство имён
  • простая логика обработки (на самом деле нет)

D-BUS:

  • Специальная служба («шина»)
  • Одна для системы + сколько хочешь для пользователя (по факту две)
  • Клиент регистрирует сервис, в котором есть методы по определённым путям

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

Примеры: qdbus-viewer, dbus-monitor, notify-send, qdbus -vv org.kde.kglobalaccel /component/kwin invokeShortcut 'Window Move',

Polkit: запуск некоторых заданий с иными привилегями

  • Демон, отвечающий за логику
  • Агент (суперпользователь)
  • Клиент (ходит к демону)

Пример gparted

Udev: заведение устройств udevadm monitor

Systemd: не успеем

  • TODO

LecturesCMC/LinuxIntro2018/11_SystemArchitecture (последним исправлял пользователь FrBrGeorge 2018-12-10 15:02:33)