Программный интерфейс GNU/Linux
Лектор: Георгий Курячий
Время и место проведения: пятница, 18:00, П-7
Первая лекция: 17/II 2017
Лицам, не имеющим пропуск на факультет ВМК МГУ, рекомендуется на первую лекцию принести одну матовую фотографию 3×4 и паспортные данные для оформления пропуска.
Аннотация
- Название: Программный интерфейс GNU/Linux
- Title: GNU/Linux program interface
TODO
Тематический план курса
Концепция: как программы взаимодействуют с компьютером под управлением Linux?
Возможно, стоит начать с командного интерфейса, а затем «спусититься» к ядру и далее в досистемную часть, после чего «подняться» к прикладным системообразующим компонентам.
- Досистемная загрузка: PC-style, EFI, embedded-style (пример — загрузка и запуск какой-нибудь standalone прогарммы)
- Ядро: программный интерфейс (пример — тривиальная программа, вызывающая system call)
- Минимальная программная начинка (примерно в объёме того, что видно а Android-е):
- Больше функций: приложения, утилиты+shell для управления
- Многзадачность: процессы, сигналы, /proc
- Много пользователей: права доступа, root
- Различное аппаратное обеспечение: /dev, /sys
- хранение настроек в /etc
- (пример — какой-нибудь busybox)
- Взаимодействие приложений: D-Bus (пример то же + dbus и приложения, которые через него общяются ??)
- Динамическое изменение аппаратной конфигурации (udev) — что видят приложения (то же + udev и приложения, которые на него реагируют ??)
- Старт всех процессов: (init) + перезапуск, запуск по событиям, прочее (systemd) (пример — minimal system)
- Проблема выдачи прав: root / sudo / демон+утилита / polkit / capabilities
- Проблема изоляции: просто права доступа, cgroups
- Графическая подсистема: XOrg, стандарты Freedesktop.org (seat), Wayland
- Ограниения доступа: SE (а также appArmor / RSBAC )
Материалы
Ссылки